From 808e4015d30ac7a7661f9df5ad8128617299708f Mon Sep 17 00:00:00 2001 From: Lenheart <947330670@qq.com> Date: Sun, 5 May 2024 13:25:40 +0800 Subject: [PATCH] 1111 --- .gitignore | 9 +- MagicGame.sln | 151 -- MagicGame.vcxproj | 183 -- MagicGame.vcxproj.filters | 58 - MagicGame.vcxproj.user | 7 - m_packages/include/sqconfig.h | 146 -- m_packages/include/sqstdaux.h | 18 - m_packages/include/sqstdblob.h | 20 - m_packages/include/sqstdio.h | 54 - m_packages/include/sqstdmath.h | 15 - m_packages/include/sqstdstring.h | 35 - m_packages/include/sqstdsystem.h | 15 - m_packages/include/squirrel.h | 411 ---- m_packages/kiwano | 1 - m_packages/lib/sqstdlib_static.lib | Bin 407616 -> 0 bytes m_packages/lib/squirrel_static.lib | Bin 2189884 -> 0 bytes m_packages/squirrel/.gitignore | 6 - m_packages/squirrel/.travis.yml | 17 - m_packages/squirrel/CMakeLists.txt | 148 -- m_packages/squirrel/COMPILE | 86 - m_packages/squirrel/COPYRIGHT | 21 - m_packages/squirrel/HISTORY | 535 ----- m_packages/squirrel/Makefile | 22 - m_packages/squirrel/README | 33 - m_packages/squirrel/appveyor.yml | 28 - m_packages/squirrel/build/ALL_BUILD.vcxproj | 204 -- .../squirrel/build/ALL_BUILD.vcxproj.filters | 8 - m_packages/squirrel/build/CMakeCache.txt | 431 ---- .../3.28.0-msvc1/CMakeCCompiler.cmake | 74 - .../3.28.0-msvc1/CMakeCXXCompiler.cmake | 85 - .../CMakeDetermineCompilerABI_C.bin | Bin 52736 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 52736 -> 0 bytes .../3.28.0-msvc1/CMakeRCCompiler.cmake | 6 - .../CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 880 -------- .../3.28.0-msvc1/CompilerIdC/CompilerIdC.exe | Bin 14848 -> 0 bytes .../CompilerIdC/CompilerIdC.vcxproj | 72 - .../CompilerIdC/Debug/CMakeCCompilerId.obj | Bin 2330 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 869 -------- .../CompilerIdCXX/CompilerIdCXX.exe | Bin 15360 -> 0 bytes .../CompilerIdCXX/CompilerIdCXX.vcxproj | 72 - .../Debug/CMakeCXXCompilerId.obj | Bin 2397 -> 0 bytes .../CMakeFiles/3.28.0-msvc1/VCTargetsPath.txt | 1 - .../3.28.0-msvc1/VCTargetsPath.vcxproj | 31 - .../INSTALL_force.rule | 1 - .../build/CMakeFiles/CMakeConfigureLog.yaml | 231 -- .../squirrel-targets-debug.cmake | 67 - .../squirrel-targets-minsizerel.cmake | 67 - .../squirrel-targets-release.cmake | 67 - .../squirrel-targets-relwithdebinfo.cmake | 67 - .../squirrel-targets.cmake | 148 -- .../build/CMakeFiles/TargetDirectories.txt | 12 - .../INSTALL_force.rule | 1 - .../build/CMakeFiles/cmake.check_cache | 1 - .../INSTALL_force.rule | 1 - .../generate.stamp.rule | 1 - .../INSTALL_force.rule | 1 - .../squirrel/build/CMakeFiles/generate.stamp | 1 - .../build/CMakeFiles/generate.stamp.depend | 110 - .../build/CMakeFiles/generate.stamp.list | 4 - m_packages/squirrel/build/INSTALL.vcxproj | 208 -- .../squirrel/build/INSTALL.vcxproj.filters | 13 - m_packages/squirrel/build/ZERO_CHECK.vcxproj | 178 -- .../squirrel/build/ZERO_CHECK.vcxproj.filters | 13 - m_packages/squirrel/build/cmake_install.cmake | 113 - .../build/sq/CMakeFiles/generate.stamp | 1 - .../build/sq/CMakeFiles/generate.stamp.depend | 2 - m_packages/squirrel/build/sq/INSTALL.vcxproj | 208 -- .../squirrel/build/sq/INSTALL.vcxproj.filters | 13 - .../squirrel/build/sq/cmake_install.cmake | 58 - m_packages/squirrel/build/sq/sq.vcxproj | 337 --- .../squirrel/build/sq/sq.vcxproj.filters | 16 - .../squirrel/build/sq/sq_static.vcxproj | 337 --- .../build/sq/sq_static.vcxproj.filters | 16 - .../build/sqstdlib/CMakeFiles/generate.stamp | 1 - .../sqstdlib/CMakeFiles/generate.stamp.depend | 2 - .../squirrel/build/sqstdlib/INSTALL.vcxproj | 208 -- .../build/sqstdlib/INSTALL.vcxproj.filters | 13 - .../build/sqstdlib/cmake_install.cmake | 70 - .../sqstdlib/sqstdlib.dir/Debug/objects.txt | 8 - .../sqstdlib.dir/MinSizeRel/objects.txt | 8 - .../sqstdlib.dir/RelWithDebInfo/objects.txt | 8 - .../sqstdlib/sqstdlib.dir/Release/objects.txt | 8 - .../squirrel/build/sqstdlib/sqstdlib.vcxproj | 413 ---- .../build/sqstdlib/sqstdlib.vcxproj.filters | 37 - .../sqstdlib_static.dir/Release/sqstdaux.obj | Bin 13721 -> 0 bytes .../sqstdlib_static.dir/Release/sqstdblob.obj | Bin 31006 -> 0 bytes .../sqstdlib_static.dir/Release/sqstdio.obj | Bin 34812 -> 0 bytes .../sqstdlib_static.Build.CppClean.log | 20 - .../Release/sqstdlib_static.lib.recipe | 7 - .../Release/sqstdlib_static.log | 10 - .../sqstdlib_static.tlog/CL.command.1.tlog | Bin 9770 -> 0 bytes .../sqstdlib_static.tlog/CL.read.1.tlog | Bin 44344 -> 0 bytes .../sqstdlib_static.tlog/CL.write.1.tlog | Bin 3006 -> 0 bytes .../CustomBuild.command.1.tlog | 10 - .../CustomBuild.read.1.tlog | 1 - .../CustomBuild.write.1.tlog | 2 - .../sqstdlib_static.tlog/Lib-link.read.1.tlog | Bin 3712 -> 0 bytes .../Lib-link.write.1.tlog | Bin 1954 -> 0 bytes .../sqstdlib_static.tlog/Lib.command.1.tlog | Bin 2728 -> 0 bytes .../sqstdlib_static.lastbuildstate | 2 - ...stdlib_static.vcxproj.FileListAbsolute.txt | 0 .../sqstdlib_static.dir/Release/sqstdmath.obj | Bin 17975 -> 0 bytes .../sqstdlib_static.dir/Release/sqstdrex.obj | Bin 28216 -> 0 bytes .../Release/sqstdstream.obj | Bin 24422 -> 0 bytes .../Release/sqstdstring.obj | Bin 35441 -> 0 bytes .../Release/sqstdsystem.obj | Bin 12122 -> 0 bytes .../build/sqstdlib/sqstdlib_static.vcxproj | 288 --- .../sqstdlib/sqstdlib_static.vcxproj.filters | 37 - m_packages/squirrel/build/squirrel.pc | 12 - m_packages/squirrel/build/squirrel.sln | 142 -- .../build/squirrel/CMakeFiles/generate.stamp | 1 - .../squirrel/CMakeFiles/generate.stamp.depend | 2 - .../squirrel/build/squirrel/INSTALL.vcxproj | 208 -- .../build/squirrel/INSTALL.vcxproj.filters | 13 - .../build/squirrel/cmake_install.cmake | 70 - .../squirrel/squirrel.dir/Debug/objects.txt | 12 - .../squirrel.dir/MinSizeRel/objects.txt | 12 - .../squirrel.dir/RelWithDebInfo/objects.txt | 12 - .../squirrel/squirrel.dir/Release/objects.txt | 12 - .../squirrel/build/squirrel/squirrel.vcxproj | 413 ---- .../build/squirrel/squirrel.vcxproj.filters | 49 - .../squirrel_static.dir/Release/sqapi.obj | Bin 166068 -> 0 bytes .../squirrel_static.dir/Release/sqbaselib.obj | Bin 154429 -> 0 bytes .../squirrel_static.dir/Release/sqclass.obj | Bin 51445 -> 0 bytes .../Release/sqcompiler.obj | Bin 120503 -> 0 bytes .../squirrel_static.dir/Release/sqdebug.obj | Bin 14752 -> 0 bytes .../Release/sqfuncstate.obj | Bin 63767 -> 0 bytes .../squirrel_static.dir/Release/sqlexer.obj | Bin 62885 -> 0 bytes .../squirrel_static.dir/Release/sqmem.obj | Bin 1298 -> 0 bytes .../squirrel_static.dir/Release/sqobject.obj | Bin 89158 -> 0 bytes .../squirrel_static.dir/Release/sqstate.obj | Bin 81527 -> 0 bytes .../squirrel_static.dir/Release/sqtable.obj | Bin 23949 -> 0 bytes .../squirrel_static.Build.CppClean.log | 24 - .../Release/squirrel_static.lib.recipe | 7 - .../Release/squirrel_static.log | 14 - .../squirrel_static.tlog/CL.command.1.tlog | Bin 14558 -> 0 bytes .../squirrel_static.tlog/CL.read.1.tlog | Bin 108620 -> 0 bytes .../squirrel_static.tlog/CL.write.1.tlog | Bin 4410 -> 0 bytes .../CustomBuild.command.1.tlog | 10 - .../CustomBuild.read.1.tlog | 1 - .../CustomBuild.write.1.tlog | 2 - .../squirrel_static.tlog/Lib-link.read.1.tlog | Bin 5388 -> 0 bytes .../Lib-link.write.1.tlog | Bin 2788 -> 0 bytes .../squirrel_static.tlog/Lib.command.1.tlog | Bin 3860 -> 0 bytes .../squirrel_static.lastbuildstate | 2 - ...uirrel_static.vcxproj.FileListAbsolute.txt | 0 .../squirrel_static.dir/Release/sqvm.obj | Bin 159035 -> 0 bytes .../build/squirrel/squirrel_static.vcxproj | 292 --- .../squirrel/squirrel_static.vcxproj.filters | 49 - m_packages/squirrel/doc/Makefile | 216 -- m_packages/squirrel/doc/make.bat | 263 --- .../squirrel/doc/source/_static/nut.ico | Bin 318 -> 0 bytes .../doc/source/_static/simple_nut.png | Bin 393 -> 0 bytes m_packages/squirrel/doc/source/conf.py | 288 --- m_packages/squirrel/doc/source/index.rst | 24 - m_packages/squirrel/doc/source/nut.ico | Bin 318 -> 0 bytes .../reference/api/bytecode_serialization.rst | 32 - .../doc/source/reference/api/calls.rst | 130 -- .../doc/source/reference/api/compiler.rst | 79 - .../source/reference/api/debug_interface.rst | 72 - .../reference/api/garbage_collector.rst | 27 - .../api/object_creation_and_handling.rst | 696 ------ .../reference/api/object_manipulation.rst | 451 ---- .../reference/api/raw_object_handling.rst | 163 -- .../source/reference/api/stack_operations.rst | 107 - .../source/reference/api/virtual_machine.rst | 341 --- .../doc/source/reference/api_reference.rst | 18 - .../embedding/build_configuration.rst | 59 - .../embedding/calling_a_function.rst | 27 - .../embedding/compiling_a_script.rst | 58 - .../embedding/creating_a_c_function.rst | 106 - .../reference/embedding/debug_interface.rst | 58 - .../reference/embedding/error_conventions.rst | 16 - .../reference/embedding/memory_management.rst | 28 - .../reference/embedding/references_from_c.rst | 21 - .../embedding/runtime_error_handling.rst | 17 - .../tables_and_arrays_manipulation.rst | 70 - .../embedding/the_registry_table.rst | 14 - .../source/reference/embedding/the_stack.rst | 104 - .../embedding/userdata_and_userpointers.rst | 33 - .../reference/embedding/vm_initialization.rst | 21 - .../source/reference/embedding_squirrel.rst | 29 - .../squirrel/doc/source/reference/index.rst | 34 - .../doc/source/reference/introduction.rst | 16 - .../doc/source/reference/language.rst | 23 - .../doc/source/reference/language/arrays.rst | 19 - .../reference/language/builtin_functions.rst | 693 ------ .../doc/source/reference/language/classes.rst | 429 ---- .../language/constants_and_enumerations.rst | 97 - .../source/reference/language/datatypes.rst | 162 -- .../source/reference/language/delegation.rst | 35 - .../reference/language/execution_context.rst | 95 - .../source/reference/language/expressions.rst | 374 ---- .../source/reference/language/functions.rst | 355 --- .../source/reference/language/generators.rst | 51 - .../reference/language/lexical_structure.rst | 156 -- .../source/reference/language/metamethods.rst | 270 --- .../source/reference/language/statements.rst | 386 ---- .../doc/source/reference/language/tables.rst | 71 - .../doc/source/reference/language/threads.rst | 106 - .../reference/language/weak_references.rst | 61 - m_packages/squirrel/doc/source/simple_nut.png | Bin 393 -> 0 bytes .../squirrel/doc/source/stdlib/index.rst | 39 - .../doc/source/stdlib/introduction.rst | 22 - .../squirrel/doc/source/stdlib/stdauxlib.rst | 31 - .../squirrel/doc/source/stdlib/stdbloblib.rst | 213 -- .../squirrel/doc/source/stdlib/stdiolib.rst | 264 --- .../squirrel/doc/source/stdlib/stdmathlib.rst | 111 - .../doc/source/stdlib/stdstringlib.rst | 323 --- .../doc/source/stdlib/stdsystemlib.rst | 82 - m_packages/squirrel/etc/minimal.c | 78 - m_packages/squirrel/etc/test.nut | 4 - m_packages/squirrel/include/sqconfig.h | 146 -- m_packages/squirrel/include/sqstdaux.h | 18 - m_packages/squirrel/include/sqstdblob.h | 20 - m_packages/squirrel/include/sqstdio.h | 54 - m_packages/squirrel/include/sqstdmath.h | 15 - m_packages/squirrel/include/sqstdstring.h | 35 - m_packages/squirrel/include/sqstdsystem.h | 15 - m_packages/squirrel/include/squirrel.h | 411 ---- m_packages/squirrel/samples/ackermann.nut | 23 - m_packages/squirrel/samples/array.nut | 29 - m_packages/squirrel/samples/class.nut | 49 - .../squirrel/samples/classattributes.nut | 35 - m_packages/squirrel/samples/coroutines.nut | 25 - m_packages/squirrel/samples/delegation.nut | 54 - m_packages/squirrel/samples/fibonacci.nut | 15 - m_packages/squirrel/samples/flow.nut | 33 - m_packages/squirrel/samples/generators.nut | 42 - m_packages/squirrel/samples/hello.nut | 1 - m_packages/squirrel/samples/list.nut | 40 - m_packages/squirrel/samples/loops.nut | 32 - m_packages/squirrel/samples/matrix.nut | 44 - m_packages/squirrel/samples/metamethods.nut | 115 - m_packages/squirrel/samples/methcall.nut | 68 - m_packages/squirrel/samples/regex.nut | 10 - m_packages/squirrel/samples/tailstate.nut | 24 - m_packages/squirrel/sq/CMakeLists.txt | 38 - m_packages/squirrel/sq/Makefile | 21 - m_packages/squirrel/sq/sq.c | 349 --- m_packages/squirrel/sq/sq.dsp | 101 - m_packages/squirrel/sqstdlib/CMakeLists.txt | 49 - m_packages/squirrel/sqstdlib/Makefile | 44 - m_packages/squirrel/sqstdlib/sqstdaux.cpp | 151 -- m_packages/squirrel/sqstdlib/sqstdblob.cpp | 283 --- m_packages/squirrel/sqstdlib/sqstdblobimpl.h | 108 - m_packages/squirrel/sqstdlib/sqstdio.cpp | 489 ----- m_packages/squirrel/sqstdlib/sqstdlib.dsp | 131 -- m_packages/squirrel/sqstdlib/sqstdmath.cpp | 107 - m_packages/squirrel/sqstdlib/sqstdrex.cpp | 666 ------ m_packages/squirrel/sqstdlib/sqstdstream.cpp | 336 --- m_packages/squirrel/sqstdlib/sqstdstream.h | 18 - m_packages/squirrel/sqstdlib/sqstdstring.cpp | 552 ----- m_packages/squirrel/sqstdlib/sqstdsystem.cpp | 154 -- m_packages/squirrel/squirrel-config.cmake.in | 4 - m_packages/squirrel/squirrel.dsw | 77 - m_packages/squirrel/squirrel.pc.in | 12 - m_packages/squirrel/squirrel/CMakeLists.txt | 52 - m_packages/squirrel/squirrel/Makefile | 53 - m_packages/squirrel/squirrel/sqapi.cpp | 1631 -------------- m_packages/squirrel/squirrel/sqarray.h | 94 - m_packages/squirrel/squirrel/sqbaselib.cpp | 1404 ------------ m_packages/squirrel/squirrel/sqclass.cpp | 213 -- m_packages/squirrel/squirrel/sqclass.h | 163 -- m_packages/squirrel/squirrel/sqclosure.h | 201 -- m_packages/squirrel/squirrel/sqcompiler.cpp | 1636 -------------- m_packages/squirrel/squirrel/sqcompiler.h | 79 - m_packages/squirrel/squirrel/sqdebug.cpp | 118 - m_packages/squirrel/squirrel/sqfuncproto.h | 154 -- m_packages/squirrel/squirrel/sqfuncstate.cpp | 649 ------ m_packages/squirrel/squirrel/sqfuncstate.h | 91 - m_packages/squirrel/squirrel/sqlexer.cpp | 563 ----- m_packages/squirrel/squirrel/sqlexer.h | 55 - m_packages/squirrel/squirrel/sqmem.cpp | 11 - m_packages/squirrel/squirrel/sqobject.cpp | 677 ------ m_packages/squirrel/squirrel/sqobject.h | 353 --- m_packages/squirrel/squirrel/sqopcodes.h | 132 -- m_packages/squirrel/squirrel/sqpcheader.h | 20 - m_packages/squirrel/squirrel/sqstate.cpp | 647 ------ m_packages/squirrel/squirrel/sqstate.h | 136 -- m_packages/squirrel/squirrel/sqstring.h | 32 - m_packages/squirrel/squirrel/sqtable.cpp | 221 -- m_packages/squirrel/squirrel/sqtable.h | 110 - m_packages/squirrel/squirrel/squirrel.dsp | 302 --- m_packages/squirrel/squirrel/squserdata.h | 40 - m_packages/squirrel/squirrel/squtils.h | 116 - m_packages/squirrel/squirrel/sqvm.cpp | 1811 ---------------- m_packages/squirrel/squirrel/sqvm.h | 213 -- packages.config | 4 - .../zlib-msvc-x64.1.2.11.8900/.signature.p7s | Bin 9465 -> 0 bytes packages/zlib-msvc-x64.1.2.11.8900/FAQ | 368 ---- packages/zlib-msvc-x64.1.2.11.8900/README | 115 - .../build/native/bin_debug/zlibd.dll | Bin 132608 -> 0 bytes .../build/native/bin_release/zlib.dll | Bin 86016 -> 0 bytes .../build/native/include/zconf.h | 536 ----- .../build/native/include/zlib.h | 1912 ----------------- .../build/native/lib_debug/zlibd.lib | Bin 16334 -> 0 bytes .../build/native/lib_debug/zlibstaticd.lib | Bin 179836 -> 0 bytes .../build/native/lib_release/zlib.lib | Bin 16228 -> 0 bytes .../build/native/lib_release/zlibstatic.lib | Bin 179882 -> 0 bytes .../build/native/share/man/man3/zlib.3 | 149 -- .../build/native/share/pkgconfig/zlib.pc | 13 - .../build/native/zlib-msvc-x64.targets | 29 - .../zlib-msvc-x64.1.2.11.8900.nupkg | Bin 290717 -> 0 bytes 305 files changed, 8 insertions(+), 37878 deletions(-) delete mode 100644 MagicGame.sln delete mode 100644 MagicGame.vcxproj delete mode 100644 MagicGame.vcxproj.filters delete mode 100644 MagicGame.vcxproj.user delete mode 100644 m_packages/include/sqconfig.h delete mode 100644 m_packages/include/sqstdaux.h delete mode 100644 m_packages/include/sqstdblob.h delete mode 100644 m_packages/include/sqstdio.h delete mode 100644 m_packages/include/sqstdmath.h delete mode 100644 m_packages/include/sqstdstring.h delete mode 100644 m_packages/include/sqstdsystem.h delete mode 100644 m_packages/include/squirrel.h delete mode 160000 m_packages/kiwano delete mode 100644 m_packages/lib/sqstdlib_static.lib delete mode 100644 m_packages/lib/squirrel_static.lib delete mode 100644 m_packages/squirrel/.gitignore delete mode 100644 m_packages/squirrel/.travis.yml delete mode 100644 m_packages/squirrel/CMakeLists.txt delete mode 100644 m_packages/squirrel/COMPILE delete mode 100644 m_packages/squirrel/COPYRIGHT delete mode 100644 m_packages/squirrel/HISTORY delete mode 100644 m_packages/squirrel/Makefile delete mode 100644 m_packages/squirrel/README delete mode 100644 m_packages/squirrel/appveyor.yml delete mode 100644 m_packages/squirrel/build/ALL_BUILD.vcxproj delete mode 100644 m_packages/squirrel/build/ALL_BUILD.vcxproj.filters delete mode 100644 m_packages/squirrel/build/CMakeCache.txt delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCCompiler.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCXXCompiler.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeDetermineCompilerABI_C.bin delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeRCCompiler.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CMakeCCompilerId.c delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.exe delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.vcxproj delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/Debug/CMakeCCompilerId.obj delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CompilerIdCXX.exe delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CompilerIdCXX.vcxproj delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.txt delete mode 100644 m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.vcxproj delete mode 100644 m_packages/squirrel/build/CMakeFiles/6f6c1b78d3fa4aa1fa866d53d1849ec9/INSTALL_force.rule delete mode 100644 m_packages/squirrel/build/CMakeFiles/CMakeConfigureLog.yaml delete mode 100644 m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-debug.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-minsizerel.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-release.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-relwithdebinfo.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake delete mode 100644 m_packages/squirrel/build/CMakeFiles/TargetDirectories.txt delete mode 100644 m_packages/squirrel/build/CMakeFiles/b34ac901fce3c2e1922e2b52d85c0d4c/INSTALL_force.rule delete mode 100644 m_packages/squirrel/build/CMakeFiles/cmake.check_cache delete mode 100644 m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/INSTALL_force.rule delete mode 100644 m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/generate.stamp.rule delete mode 100644 m_packages/squirrel/build/CMakeFiles/d91de6650e51076a2ccfc3e8eeefc1fd/INSTALL_force.rule delete mode 100644 m_packages/squirrel/build/CMakeFiles/generate.stamp delete mode 100644 m_packages/squirrel/build/CMakeFiles/generate.stamp.depend delete mode 100644 m_packages/squirrel/build/CMakeFiles/generate.stamp.list delete mode 100644 m_packages/squirrel/build/INSTALL.vcxproj delete mode 100644 m_packages/squirrel/build/INSTALL.vcxproj.filters delete mode 100644 m_packages/squirrel/build/ZERO_CHECK.vcxproj delete mode 100644 m_packages/squirrel/build/ZERO_CHECK.vcxproj.filters delete mode 100644 m_packages/squirrel/build/cmake_install.cmake delete mode 100644 m_packages/squirrel/build/sq/CMakeFiles/generate.stamp delete mode 100644 m_packages/squirrel/build/sq/CMakeFiles/generate.stamp.depend delete mode 100644 m_packages/squirrel/build/sq/INSTALL.vcxproj delete mode 100644 m_packages/squirrel/build/sq/INSTALL.vcxproj.filters delete mode 100644 m_packages/squirrel/build/sq/cmake_install.cmake delete mode 100644 m_packages/squirrel/build/sq/sq.vcxproj delete mode 100644 m_packages/squirrel/build/sq/sq.vcxproj.filters delete mode 100644 m_packages/squirrel/build/sq/sq_static.vcxproj delete mode 100644 m_packages/squirrel/build/sq/sq_static.vcxproj.filters delete mode 100644 m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp delete mode 100644 m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp.depend delete mode 100644 m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj delete mode 100644 m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj.filters delete mode 100644 m_packages/squirrel/build/sqstdlib/cmake_install.cmake delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/objects.txt delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/objects.txt delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/objects.txt delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/objects.txt delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj.filters delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdaux.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdblob.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdio.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.Build.CppClean.log delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.lib.recipe delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.log delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CL.command.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CL.read.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CL.write.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.command.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.read.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.write.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.read.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.write.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib.command.1.tlog delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/sqstdlib_static.lastbuildstate delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.vcxproj.FileListAbsolute.txt delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdmath.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdrex.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstream.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstring.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdsystem.obj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.vcxproj delete mode 100644 m_packages/squirrel/build/sqstdlib/sqstdlib_static.vcxproj.filters delete mode 100644 m_packages/squirrel/build/squirrel.pc delete mode 100644 m_packages/squirrel/build/squirrel.sln delete mode 100644 m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp delete mode 100644 m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp.depend delete mode 100644 m_packages/squirrel/build/squirrel/INSTALL.vcxproj delete mode 100644 m_packages/squirrel/build/squirrel/INSTALL.vcxproj.filters delete mode 100644 m_packages/squirrel/build/squirrel/cmake_install.cmake delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.dir/Debug/objects.txt delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/objects.txt delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/objects.txt delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.dir/Release/objects.txt delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.vcxproj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel.vcxproj.filters delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqapi.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqbaselib.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqclass.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqcompiler.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqdebug.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqfuncstate.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqlexer.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqmem.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqobject.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqstate.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqtable.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.Build.CppClean.log delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.lib.recipe delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.log delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.command.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.read.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.write.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.command.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.read.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.write.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib-link.read.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib-link.write.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib.command.1.tlog delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/squirrel_static.lastbuildstate delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.vcxproj.FileListAbsolute.txt delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqvm.obj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.vcxproj delete mode 100644 m_packages/squirrel/build/squirrel/squirrel_static.vcxproj.filters delete mode 100644 m_packages/squirrel/doc/Makefile delete mode 100644 m_packages/squirrel/doc/make.bat delete mode 100644 m_packages/squirrel/doc/source/_static/nut.ico delete mode 100644 m_packages/squirrel/doc/source/_static/simple_nut.png delete mode 100644 m_packages/squirrel/doc/source/conf.py delete mode 100644 m_packages/squirrel/doc/source/index.rst delete mode 100644 m_packages/squirrel/doc/source/nut.ico delete mode 100644 m_packages/squirrel/doc/source/reference/api/bytecode_serialization.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/calls.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/compiler.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/debug_interface.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/garbage_collector.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/object_creation_and_handling.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/object_manipulation.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/raw_object_handling.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/stack_operations.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api/virtual_machine.rst delete mode 100644 m_packages/squirrel/doc/source/reference/api_reference.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/build_configuration.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/calling_a_function.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/compiling_a_script.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/creating_a_c_function.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/debug_interface.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/error_conventions.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/memory_management.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/references_from_c.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/runtime_error_handling.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/tables_and_arrays_manipulation.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/the_registry_table.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/the_stack.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/userdata_and_userpointers.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding/vm_initialization.rst delete mode 100644 m_packages/squirrel/doc/source/reference/embedding_squirrel.rst delete mode 100644 m_packages/squirrel/doc/source/reference/index.rst delete mode 100644 m_packages/squirrel/doc/source/reference/introduction.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/arrays.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/builtin_functions.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/classes.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/constants_and_enumerations.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/datatypes.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/delegation.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/execution_context.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/expressions.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/functions.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/generators.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/lexical_structure.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/metamethods.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/statements.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/tables.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/threads.rst delete mode 100644 m_packages/squirrel/doc/source/reference/language/weak_references.rst delete mode 100644 m_packages/squirrel/doc/source/simple_nut.png delete mode 100644 m_packages/squirrel/doc/source/stdlib/index.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/introduction.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdauxlib.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdbloblib.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdiolib.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdmathlib.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdstringlib.rst delete mode 100644 m_packages/squirrel/doc/source/stdlib/stdsystemlib.rst delete mode 100644 m_packages/squirrel/etc/minimal.c delete mode 100644 m_packages/squirrel/etc/test.nut delete mode 100644 m_packages/squirrel/include/sqconfig.h delete mode 100644 m_packages/squirrel/include/sqstdaux.h delete mode 100644 m_packages/squirrel/include/sqstdblob.h delete mode 100644 m_packages/squirrel/include/sqstdio.h delete mode 100644 m_packages/squirrel/include/sqstdmath.h delete mode 100644 m_packages/squirrel/include/sqstdstring.h delete mode 100644 m_packages/squirrel/include/sqstdsystem.h delete mode 100644 m_packages/squirrel/include/squirrel.h delete mode 100644 m_packages/squirrel/samples/ackermann.nut delete mode 100644 m_packages/squirrel/samples/array.nut delete mode 100644 m_packages/squirrel/samples/class.nut delete mode 100644 m_packages/squirrel/samples/classattributes.nut delete mode 100644 m_packages/squirrel/samples/coroutines.nut delete mode 100644 m_packages/squirrel/samples/delegation.nut delete mode 100644 m_packages/squirrel/samples/fibonacci.nut delete mode 100644 m_packages/squirrel/samples/flow.nut delete mode 100644 m_packages/squirrel/samples/generators.nut delete mode 100644 m_packages/squirrel/samples/hello.nut delete mode 100644 m_packages/squirrel/samples/list.nut delete mode 100644 m_packages/squirrel/samples/loops.nut delete mode 100644 m_packages/squirrel/samples/matrix.nut delete mode 100644 m_packages/squirrel/samples/metamethods.nut delete mode 100644 m_packages/squirrel/samples/methcall.nut delete mode 100644 m_packages/squirrel/samples/regex.nut delete mode 100644 m_packages/squirrel/samples/tailstate.nut delete mode 100644 m_packages/squirrel/sq/CMakeLists.txt delete mode 100644 m_packages/squirrel/sq/Makefile delete mode 100644 m_packages/squirrel/sq/sq.c delete mode 100644 m_packages/squirrel/sq/sq.dsp delete mode 100644 m_packages/squirrel/sqstdlib/CMakeLists.txt delete mode 100644 m_packages/squirrel/sqstdlib/Makefile delete mode 100644 m_packages/squirrel/sqstdlib/sqstdaux.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdblob.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdblobimpl.h delete mode 100644 m_packages/squirrel/sqstdlib/sqstdio.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdlib.dsp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdmath.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdrex.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdstream.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdstream.h delete mode 100644 m_packages/squirrel/sqstdlib/sqstdstring.cpp delete mode 100644 m_packages/squirrel/sqstdlib/sqstdsystem.cpp delete mode 100644 m_packages/squirrel/squirrel-config.cmake.in delete mode 100644 m_packages/squirrel/squirrel.dsw delete mode 100644 m_packages/squirrel/squirrel.pc.in delete mode 100644 m_packages/squirrel/squirrel/CMakeLists.txt delete mode 100644 m_packages/squirrel/squirrel/Makefile delete mode 100644 m_packages/squirrel/squirrel/sqapi.cpp delete mode 100644 m_packages/squirrel/squirrel/sqarray.h delete mode 100644 m_packages/squirrel/squirrel/sqbaselib.cpp delete mode 100644 m_packages/squirrel/squirrel/sqclass.cpp delete mode 100644 m_packages/squirrel/squirrel/sqclass.h delete mode 100644 m_packages/squirrel/squirrel/sqclosure.h delete mode 100644 m_packages/squirrel/squirrel/sqcompiler.cpp delete mode 100644 m_packages/squirrel/squirrel/sqcompiler.h delete mode 100644 m_packages/squirrel/squirrel/sqdebug.cpp delete mode 100644 m_packages/squirrel/squirrel/sqfuncproto.h delete mode 100644 m_packages/squirrel/squirrel/sqfuncstate.cpp delete mode 100644 m_packages/squirrel/squirrel/sqfuncstate.h delete mode 100644 m_packages/squirrel/squirrel/sqlexer.cpp delete mode 100644 m_packages/squirrel/squirrel/sqlexer.h delete mode 100644 m_packages/squirrel/squirrel/sqmem.cpp delete mode 100644 m_packages/squirrel/squirrel/sqobject.cpp delete mode 100644 m_packages/squirrel/squirrel/sqobject.h delete mode 100644 m_packages/squirrel/squirrel/sqopcodes.h delete mode 100644 m_packages/squirrel/squirrel/sqpcheader.h delete mode 100644 m_packages/squirrel/squirrel/sqstate.cpp delete mode 100644 m_packages/squirrel/squirrel/sqstate.h delete mode 100644 m_packages/squirrel/squirrel/sqstring.h delete mode 100644 m_packages/squirrel/squirrel/sqtable.cpp delete mode 100644 m_packages/squirrel/squirrel/sqtable.h delete mode 100644 m_packages/squirrel/squirrel/squirrel.dsp delete mode 100644 m_packages/squirrel/squirrel/squserdata.h delete mode 100644 m_packages/squirrel/squirrel/squtils.h delete mode 100644 m_packages/squirrel/squirrel/sqvm.cpp delete mode 100644 m_packages/squirrel/squirrel/sqvm.h delete mode 100644 packages.config delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/.signature.p7s delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/FAQ delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/README delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_debug/zlibd.dll delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_release/zlib.dll delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/include/zconf.h delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/include/zlib.h delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibd.lib delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibstaticd.lib delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlib.lib delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlibstatic.lib delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/share/man/man3/zlib.3 delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/share/pkgconfig/zlib.pc delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/build/native/zlib-msvc-x64.targets delete mode 100644 packages/zlib-msvc-x64.1.2.11.8900/zlib-msvc-x64.1.2.11.8900.nupkg diff --git a/.gitignore b/.gitignore index f3558747..3b20a416 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,12 @@ .vs/ x64/ *.recipe -/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/Debug/CompilerIdC.tlog/CL.command.1.tlog *.tlog +*.vcxproj +*.sln +*.log +*.filters +*.user +*.config +m_packages/ +packages/ diff --git a/MagicGame.sln b/MagicGame.sln deleted file mode 100644 index 9b9d28a2..00000000 --- a/MagicGame.sln +++ /dev/null @@ -1,151 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.4.33122.133 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MagicGame", "MagicGame.vcxproj", "{6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqstdlib_static", "m_packages\squirrel\build\sqstdlib\sqstdlib_static.vcxproj", "{C76C34C2-5D15-3AC8-9F90-65164B0953F5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "squirrel_static", "m_packages\squirrel\build\squirrel\squirrel_static.vcxproj", "{172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kiwano", "..\..\..\Yosin_Game\kiwano\projects\kiwano\kiwano.vcxproj", "{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kiwano-audio", "..\..\..\Yosin_Game\kiwano\projects\kiwano-audio\kiwano-audio.vcxproj", "{1B97937D-8184-426C-BE71-29A163DC76C9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "..\..\..\Yosin_Game\kiwano\projects\3rd-party\libogg\libogg.vcxproj", "{D8A5E8EC-3983-4028-9BA9-B1E337E75917}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "..\..\..\Yosin_Game\kiwano\projects\3rd-party\vorbis\libvorbis.vcxproj", "{B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - MinSizeRel|x64 = MinSizeRel|x64 - MinSizeRel|x86 = MinSizeRel|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - RelWithDebInfo|x64 = RelWithDebInfo|x64 - RelWithDebInfo|x86 = RelWithDebInfo|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Debug|x64.ActiveCfg = Debug|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Debug|x64.Build.0 = Debug|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Debug|x86.ActiveCfg = Debug|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Debug|x86.Build.0 = Debug|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.MinSizeRel|x64.Build.0 = Debug|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.MinSizeRel|x86.ActiveCfg = Debug|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.MinSizeRel|x86.Build.0 = Debug|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Release|x64.ActiveCfg = Release|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Release|x64.Build.0 = Release|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Release|x86.ActiveCfg = Release|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.Release|x86.Build.0 = Release|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.RelWithDebInfo|x64.Build.0 = Release|x64 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 - {6E33BD8E-CDD0-4735-8A8F-6CE93B1BD8BE}.RelWithDebInfo|x86.Build.0 = Release|Win32 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Debug|x64.ActiveCfg = Debug|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Debug|x64.Build.0 = Debug|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Debug|x86.ActiveCfg = Debug|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Debug|x86.Build.0 = Debug|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.MinSizeRel|x86.Build.0 = MinSizeRel|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Release|x64.ActiveCfg = Release|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Release|x64.Build.0 = Release|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Release|x86.ActiveCfg = Release|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.Release|x86.Build.0 = Release|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 - {C76C34C2-5D15-3AC8-9F90-65164B0953F5}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Debug|x64.ActiveCfg = Debug|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Debug|x64.Build.0 = Debug|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Debug|x86.ActiveCfg = Debug|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Debug|x86.Build.0 = Debug|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.MinSizeRel|x86.Build.0 = MinSizeRel|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Release|x64.ActiveCfg = Release|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Release|x64.Build.0 = Release|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Release|x86.ActiveCfg = Release|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.Release|x86.Build.0 = Release|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.ActiveCfg = Debug|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.Build.0 = Debug|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.ActiveCfg = Debug|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x86.Build.0 = Debug|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.MinSizeRel|x64.ActiveCfg = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.MinSizeRel|x64.Build.0 = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.MinSizeRel|x86.ActiveCfg = Debug|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.MinSizeRel|x86.Build.0 = Debug|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.ActiveCfg = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.Build.0 = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.ActiveCfg = Release|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x86.Build.0 = Release|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.RelWithDebInfo|x64.Build.0 = Release|x64 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 - {FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.RelWithDebInfo|x86.Build.0 = Release|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|x64.ActiveCfg = Debug|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|x64.Build.0 = Debug|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|x86.ActiveCfg = Debug|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|x86.Build.0 = Debug|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.MinSizeRel|x64.ActiveCfg = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.MinSizeRel|x64.Build.0 = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.MinSizeRel|x86.ActiveCfg = Debug|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.MinSizeRel|x86.Build.0 = Debug|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Release|x64.ActiveCfg = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Release|x64.Build.0 = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Release|x86.ActiveCfg = Release|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.Release|x86.Build.0 = Release|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.RelWithDebInfo|x64.Build.0 = Release|x64 - {1B97937D-8184-426C-BE71-29A163DC76C9}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 - {1B97937D-8184-426C-BE71-29A163DC76C9}.RelWithDebInfo|x86.Build.0 = Release|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Debug|x64.ActiveCfg = Debug|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Debug|x64.Build.0 = Debug|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Debug|x86.ActiveCfg = Debug|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Debug|x86.Build.0 = Debug|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.MinSizeRel|x64.ActiveCfg = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.MinSizeRel|x64.Build.0 = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.MinSizeRel|x86.ActiveCfg = Debug|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.MinSizeRel|x86.Build.0 = Debug|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Release|x64.ActiveCfg = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Release|x64.Build.0 = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Release|x86.ActiveCfg = Release|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.Release|x86.Build.0 = Release|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.RelWithDebInfo|x64.Build.0 = Release|x64 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 - {D8A5E8EC-3983-4028-9BA9-B1E337E75917}.RelWithDebInfo|x86.Build.0 = Release|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Debug|x64.ActiveCfg = Debug|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Debug|x64.Build.0 = Debug|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Debug|x86.ActiveCfg = Debug|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Debug|x86.Build.0 = Debug|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.MinSizeRel|x64.ActiveCfg = Debug|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.MinSizeRel|x64.Build.0 = Debug|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.MinSizeRel|x86.ActiveCfg = Debug|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.MinSizeRel|x86.Build.0 = Debug|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Release|x64.ActiveCfg = Release|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Release|x64.Build.0 = Release|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Release|x86.ActiveCfg = Release|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.Release|x86.Build.0 = Release|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.RelWithDebInfo|x64.ActiveCfg = Release|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.RelWithDebInfo|x64.Build.0 = Release|x64 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 - {B62E3DE6-812D-4CE6-90D9-18FD4FEA8EB2}.RelWithDebInfo|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {594C166C-2E69-4A69-90C2-4F1892DF8847} - EndGlobalSection -EndGlobal diff --git a/MagicGame.vcxproj b/MagicGame.vcxproj deleted file mode 100644 index ec807527..00000000 --- a/MagicGame.vcxproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - {d8a5e8ec-3983-4028-9ba9-b1e337e75917} - - - {1b97937d-8184-426c-be71-29a163dc76c9} - - - {ff7f943d-a89c-4e6c-97cf-84f7d8ff8edf} - - - {c76c34c2-5d15-3ac8-9f90-65164b0953f5} - - - {172df2be-82a2-31eb-b041-9cba46e8e9a3} - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {6e33bd8e-cdd0-4735-8a8f-6ce93b1bd8be} - MagicGame - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - $(ProjectDir)m_packages\kiwano\src\3rd-party;$(ProjectDir)m_packages\kiwano\src;$(ProjectDir)m_packages\include;$(ProjectDir)include;$(IncludePath) - $(SolutionDir)..\..\Magic_Game\ - $(ProjectDir)src;$(SourcePath) - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - TurnOffAllWarnings - true - true - true - NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;NOMINMAX;%(PreprocessorDefinitions) - true - Disabled - stdcpp17 - - - Console - true - true - true - $(ProjectDir)m_packages\lib;%(AdditionalLibraryDirectories) - %(AdditionalDependencies) - - - - - - - - - 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 - - - - \ No newline at end of file diff --git a/MagicGame.vcxproj.filters b/MagicGame.vcxproj.filters deleted file mode 100644 index 358360ac..00000000 --- a/MagicGame.vcxproj.filters +++ /dev/null @@ -1,58 +0,0 @@ - - - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {66405c6e-b3b9-4351-911d-be83e2e43672} - - - {197e8fb4-5a03-49a4-b0c5-074f60435887} - - - {a9cb3856-1c9a-49da-902e-487ff2b6b530} - - - - - - - - src - - - src - - - src - - - src - - - - - include - - - include - - - include - - - SqrRegister - - - SqrRegister - - - SqrRegister - - - SqrRegister - - - \ No newline at end of file diff --git a/MagicGame.vcxproj.user b/MagicGame.vcxproj.user deleted file mode 100644 index d2d6f749..00000000 --- a/MagicGame.vcxproj.user +++ /dev/null @@ -1,7 +0,0 @@ - - - - $(SolutionDir)..\..\Magic_Game\ - WindowsLocalDebugger - - \ No newline at end of file diff --git a/m_packages/include/sqconfig.h b/m_packages/include/sqconfig.h deleted file mode 100644 index 58bc9793..00000000 --- a/m_packages/include/sqconfig.h +++ /dev/null @@ -1,146 +0,0 @@ - -#ifdef _SQ64 - -#ifdef _MSC_VER -typedef __int64 SQInteger; -typedef unsigned __int64 SQUnsignedInteger; -typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/ -#else -typedef long long SQInteger; -typedef unsigned long long SQUnsignedInteger; -typedef unsigned long long SQHash; /*should be the same size of a pointer*/ -#endif -typedef int SQInt32; -typedef unsigned int SQUnsignedInteger32; -#else -typedef int SQInteger; -typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/ -typedef unsigned int SQUnsignedInteger32; /*must be 32 bits(also on 64bits processors)*/ -typedef unsigned int SQUnsignedInteger; -typedef unsigned int SQHash; /*should be the same size of a pointer*/ -#endif - - -#ifdef SQUSEDOUBLE -typedef double SQFloat; -#else -typedef float SQFloat; -#endif - -#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) -#ifdef _MSC_VER -typedef __int64 SQRawObjectVal; //must be 64bits -#else -typedef long long SQRawObjectVal; //must be 64bits -#endif -#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; } -#else -typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise -#define SQ_OBJECT_RAWINIT() -#endif - -#ifndef SQ_ALIGNMENT // SQ_ALIGNMENT shall be less than or equal to SQ_MALLOC alignments, and its value shall be power of 2. -#if defined(SQUSEDOUBLE) || defined(_SQ64) -#define SQ_ALIGNMENT 8 -#else -#define SQ_ALIGNMENT 4 -#endif -#endif - -typedef void* SQUserPointer; -typedef SQUnsignedInteger SQBool; -typedef SQInteger SQRESULT; - -#ifdef SQUNICODE -#include -#include - - -typedef wchar_t SQChar; - - -#define scstrcmp wcscmp -#ifdef _WIN32 -#define scsprintf _snwprintf -#else -#define scsprintf swprintf -#endif -#define scstrlen wcslen -#define scstrtod wcstod -#ifdef _SQ64 -#define scstrtol wcstoll -#else -#define scstrtol wcstol -#endif -#define scstrtoul wcstoul -#define scvsprintf vswprintf -#define scstrstr wcsstr -#define scprintf wprintf - -#ifdef _WIN32 -#define WCHAR_SIZE 2 -#define WCHAR_SHIFT_MUL 1 -#define MAX_CHAR 0xFFFF -#else -#define WCHAR_SIZE 4 -#define WCHAR_SHIFT_MUL 2 -#define MAX_CHAR 0xFFFFFFFF -#endif - -#define _SC(a) L##a - - -#define scisspace iswspace -#define scisdigit iswdigit -#define scisprint iswprint -#define scisxdigit iswxdigit -#define scisalpha iswalpha -#define sciscntrl iswcntrl -#define scisalnum iswalnum - - -#define sq_rsl(l) ((l)<=0) - -#ifdef __GNUC__ -# define SQ_UNUSED_ARG(x) x __attribute__((__unused__)) -#else -# define SQ_UNUSED_ARG(x) x -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*_SQUIRREL_H_*/ diff --git a/m_packages/kiwano b/m_packages/kiwano deleted file mode 160000 index 0f3ab573..00000000 --- a/m_packages/kiwano +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0f3ab5732d6c23a4353b36ddb67845e8293279f0 diff --git a/m_packages/lib/sqstdlib_static.lib b/m_packages/lib/sqstdlib_static.lib deleted file mode 100644 index b1cd61f308f28ca3f4ff69417e42ab6ae4538a27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407616 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%0DCWsuzj*86Eqk&HDif>= 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 JqHG?+^ diff --git a/m_packages/lib/squirrel_static.lib b/m_packages/lib/squirrel_static.lib deleted file mode 100644 index c5f559c484b26d02bc999397450e4eb64bd10f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2189884 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

Q%suEG+ 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


?v5=6Yl&nL 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%0D;#kpHqQ}fb1f>ZRJ*Mnp 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

q(9 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

${{2HhHTJ}6uFLlLi9f5_=dMa2$q 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 diff --git a/m_packages/squirrel/.gitignore b/m_packages/squirrel/.gitignore deleted file mode 100644 index 6e97beb7..00000000 --- a/m_packages/squirrel/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -# Folders created at compilation -bin/ -lib/ - -# Folders created at documentation generation -doc/build/ diff --git a/m_packages/squirrel/.travis.yml b/m_packages/squirrel/.travis.yml deleted file mode 100644 index 1e31c1d6..00000000 --- a/m_packages/squirrel/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: cpp -compiler: - - gcc - - clang - -# Travis VMs are 64-bit but we compile both for 32 and 64 bit. To enable the -# 32-bit builds to work, we need gcc-multilib. -addons: - apt: - packages: - - gcc-multilib - - g++-multilib - -# Enable container-based builds. -sudo: false - -script: mkdir build && cd build && cmake .. && make -j2 diff --git a/m_packages/squirrel/CMakeLists.txt b/m_packages/squirrel/CMakeLists.txt deleted file mode 100644 index 474e99df..00000000 --- a/m_packages/squirrel/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -cmake_minimum_required(VERSION 3.12) -project(squirrel - VERSION 3.2 - DESCRIPTION "The Squirrel programming language" - HOMEPAGE_URL "http://squirrel-lang.org/" - LANGUAGES C CXX - ) - -option(DISABLE_STATIC "Avoid building/installing static libraries.") -option(LONG_OUTPUT_NAMES "Use longer names for binaries and libraries: squirrel3 (not sq).") - -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release") -endif () - -include(GNUInstallDirs) - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") -set(CMAKE_CXX_STANDARD 11) - -if(CMAKE_COMPILER_IS_GNUCXX) - add_compile_options( - "$<$:-fno-rtti;-fno-exceptions>" - -fno-strict-aliasing - -Wall - -Wextra - -pedantic - -Wcast-qual - "$<$:-O3>" - "$<$:-O3;-g>" - "$<$:-Os>" - "$<$:-pg;-pie;-gstabs;-g3;-Og>" - ) -elseif(MSVC) - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) -endif() - -# Need to be defined here to be visible to squirrel.pc.in -if(LONG_OUTPUT_NAMES) - set(LIBSQUIRREL_NAME squirrel3) - set(SQSTDLIB_NAME sqstdlib3) -else() - set(LIBSQUIRREL_NAME squirrel) - set(SQSTDLIB_NAME sqstdlib) -endif() - -add_subdirectory(squirrel) -add_subdirectory(sqstdlib) -if(NOT SQ_DISABLE_INTERPRETER) - add_subdirectory(sq) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(tgts) - if(NOT DISABLE_DYNAMIC) - list(APPEND tgts squirrel sqstdlib) - if(NOT SQ_DISABLE_INTERPRETER) - list(APPEND tgts sq) - endif() - endif() - if(NOT DISABLE_STATIC) - list(APPEND tgts squirrel_static sqstdlib_static) - if(NOT SQ_DISABLE_INTERPRETER) - list(APPEND tgts sq_static) - endif() - endif() - foreach(t ${tgts}) - target_compile_definitions(${t} PUBLIC -D_SQ64) - endforeach() -endif() - -if(NOT DISABLE_DYNAMIC) - set_target_properties(squirrel sqstdlib PROPERTIES SOVERSION 0 VERSION 0.0.0) -endif() - -if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_HEADER_INSTALLER) - install(FILES - include/sqconfig.h - include/squirrel.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT Development - ) - install(FILES - include/sqstdaux.h - include/sqstdblob.h - include/sqstdio.h - include/sqstdmath.h - include/sqstdstring.h - include/sqstdsystem.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT Development - ) -endif() - -include(CMakePackageConfigHelpers) - -write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config-version.cmake" - VERSION "${squirrel_VERSION}" - COMPATIBILITY AnyNewerVersion - ) - -configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/squirrel-config.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel" - ) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/squirrel.pc.in" - ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc - @ONLY -) - -if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_CMAKE_INSTALLER) - export(EXPORT squirrel - NAMESPACE squirrel:: - FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-targets.cmake" - ) - - install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config-version.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/squirrel/squirrel-config.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel" - COMPONENT Development - ) - - # pc(5) only allows static variant to have extra flags, not an entirely new - # set of flags. While it's uncommon, a way to do it would be to generate a - # ${PROJECT_NAME}_static.pc file. - if(NOT DISABLE_DYNAMIC) - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig - COMPONENT Development - ) - endif() - - install(EXPORT squirrel - NAMESPACE squirrel:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/squirrel" - FILE "squirrel-targets.cmake" - COMPONENT Development - ) -endif() diff --git a/m_packages/squirrel/COMPILE b/m_packages/squirrel/COMPILE deleted file mode 100644 index 53881db7..00000000 --- a/m_packages/squirrel/COMPILE +++ /dev/null @@ -1,86 +0,0 @@ -Squirrel 3.2 stable --------------------------------------------------------- -What is in this distribution? - -squirrel - static library implementing the compiler and interpreter of the language - -sqstdlib - the standard utility libraries - -sq - stand alone interpreter - -doc - The manual - -etc - a minimalistic embedding sample - -samples - samples programs - - -HOW TO COMPILE ---------------------------------------------------------- -CMAKE USERS -......................................................... -If you want to build the shared libraries under Windows using Visual -Studio, you will have to use CMake version 3.4 or newer. If not, an -earlier version will suffice. For a traditional out-of-source build -under Linux, type something like - - $ mkdir build # Create temporary build directory - $ cd build - $ cmake .. # CMake will determine all the necessary information, - # including the platform (32- vs. 64-bit) - $ make - $ make install - $ cd ..; rm -r build - -The default installation directory will be /usr/local on Unix platforms, -and C:/Program Files/squirrel on Windows. The binaries will go into bin/ -and the libraries into lib/. You can change this behavior by calling CMake like -this: - - $ cmake .. -DCMAKE_INSTALL_PREFIX=/some/path/on/your/system - -With the CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_LIBDIR options, the directories -the binaries & libraries will go in (relative to CMAKE_INSTALL_PREFIX) -can be specified. For instance, - - $ cmake .. -DCMAKE_INSTALL_LIBDIR=lib64 - -will install the libraries into a 'lib64' subdirectory in the top -source directory. The public header files will be installed into the directory -the value of CMAKE_INSTALL_INCLUDEDIR points to. If you want only the -binaries and no headers, just set -DSQ_DISABLE_HEADER_INSTALLER=ON, and no -header files will be installed. - -Under Windows, it is probably easiest to use the CMake GUI interface, -although invoking CMake from the command line as explained above -should work as well. - -GCC USERS -......................................................... -There is a very simple makefile that compiles all libraries and exes -from the root of the project run 'make' - -for 32 bits systems - - $ make - -for 64 bits systems - - $ make sq64 - -VISUAL C++ USERS -......................................................... -Open squirrel.dsw from the root project directory and build(dho!) - -DOCUMENTATION GENERATION -......................................................... -To be able to compile the documentation, make sure that you have Python -installed and the packages sphinx and sphinx_rtd_theme. Browse into doc/ -and use either the Makefile for GCC-based platforms or make.bat for -Windows platforms. diff --git a/m_packages/squirrel/COPYRIGHT b/m_packages/squirrel/COPYRIGHT deleted file mode 100644 index 4a8e5815..00000000 --- a/m_packages/squirrel/COPYRIGHT +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2003-2022 Alberto Demichelis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. ------------------------------------------------------ -END OF COPYRIGHT diff --git a/m_packages/squirrel/HISTORY b/m_packages/squirrel/HISTORY deleted file mode 100644 index d09d9eea..00000000 --- a/m_packages/squirrel/HISTORY +++ /dev/null @@ -1,535 +0,0 @@ -***version 3.2 stable*** --added new inline bind env syntax for closures --added sq_tailcall --added rawcall keyword --added post call initializer syntax --added table.keys() and table.values() --added table.filter() --added skipempty in split() --additional parameters in array.map() and array.apply() --additional optional initializer in array.reduce() --added sqstd_pushstringf and sqstd_throwerrorf --closure.call() is now a "native tailcall" and the invoked function can now be suspended --fixed sq_newmember and sq_rawnewmember properly pop parameters --fixed capturing free variable on for loop counter before a break statement --fixed \u in lexer --various bugfixes --sq_gettypetag doesn't set last error(it's treated as SQBool function but keeps a SQRESULT for backward compatibility) --fixed _set method in userdata delegates --fixed some warnings - -***2016-03-27 *** -***version 3.1 stable*** --added slice range for tolower and toupper --added startswith() and endswith() in string lib --added SQ_EXCLUDE_DEFAULT_MEMFUNCTIONS to exclude default mem fuction from compilation --added sq_getreleasehook --added thread.wakeupthrow() --added sq_pushthread --added \u and \U escape sequence for UTF8,UTF16 or UCS4 characters --added CMake scripts(thx Fabian Wolff) --the escape character \x is based on sizeof(SQChar) --fixed several warnings(thx Markus Oberhumer) --fixed optimizer bug in compound arith oprators(+=,-= etc...) --fixed sq_getrefvmcount() (thx Gerrit) --fixed sq_getrefcount() when no references were added with sq_addref() (thx Gerrit) --fixed bug in string.tointeger() (thx Domingo) --fixed weakref comparison in 32bit builds using doubles(thx Domingo) --fixed compiler bug(thx Peter) --fixed some error in the documentation(thx Alexander) --fixed some error reporting in compiler(thx Alexander) --fixed incorrect optional semicolon after "if block"(thx Alexander) --fixed crash bug in compiler related to compound arith operators(+=,-= etc...) (thx Jeff1) - -***2015-01-10 *** -***version 3.1 RC 1*** --added new header sqconfig.h for all optional type declarations(unicode, 64bits etc..) --added sq_setsharedforeignptr sq_getsharedforeignptr --added sq_setsharedreleasehook sq_getsharedreleasehook --added escape() in sqstd string library --added __LINE__ and __FILE__ (thx mingodad) --widechar support on gcc builds --now boolean can be used in constants --reduced dependencies on C runtime library --newthread and sq_newthread() no longer reinitialize the root table on friend VMs(thx Lucas Cardellini) --exceptions in the _inherited metamethod are propagated(thx Lucas Cardellini) --'in' operator performance improvement(thx unagipai and mingodad) --fixes crash in compiler when trying to write 'base' --fixed bug in switch statement when using locals as case values (thx mingodad) --fixed bug in print()(thx Lucas Cardellini) - -***2013-08-30 *** -***version 3.1 beta 1*** --added new scoping rule(root attached to closures) --added closure.setroot() closure.getroot() --added sq_setclosureroot() and sq_getclosureroot() --added sq_setvmreleasehook() and sq_getvmreleasehook() --added documentaion for sq_getbase() --now string.tointeger() accepts an optional parameter 'base' --now format accepts zeroes in the format string (thx mingodad) --fixed bug in sqstd_createfile() (thx mingodad) --minor buxfixes - -***2012-11-10 *** -***version 3.0.4 stable*** --sq_deleteslot slot now pops the key in case of failure --fixed bug when _get metamethod throws null --fixed a bug in rstrip --added some error handling --minor bugfixes - -***2012-06-19 *** -***version 3.1.0 alpha 1*** --changed in and instanceof operator precendence --root object in closures --added closure.setroot closure.getroot --added sq_setclosureroot and sq_getclosureroot - -***version 3.0.3 stable*** --improved error messages for _cmp(when a non integer value is returned) (thx Yexo) --added class.newmember() built in method (thx Nam) --added class.rawnewmember() built in method (thx Nam) --added sq_rawnewmember() (thx Nam) --added sq_getversion() --added sq_typeof() --added sq_getclosurename() --added file.close() in stdlib --documented closure.getinfos() built-in method --fixed string iteration doesn't return negative numbers for characters > 127 --fixed bug in tofloat() when converting a string with scientific notation without a decimal point (thx wr2) --fixed potential infinite loop in array.sort() when the _cmp function is inconsistent (thx Yexo) --fixed obscure bug in the compiler(thx yishin) --fixed some minor bug - -***2011-11-28 *** -***version 3.0.2 stable*** --added sq_gethash API --now array.sort() is implemented with heapsort --now floats in scientific notation also accept numbers with no '.' (eg. 1e+6 or 1e6) --fixed some warning --fixed some documentation --fixed bug in GC - -***2011-09-08 *** -***version 3.0.1 stable*** --added # as alternative symbol for "line comment"(mostly useful for shell scripts) --added sq_throwobject() to throw an arbitrary object from the C API --added alignement flag for userdata types, SQ_ALIGNMENT (thx Shigemasa) --added rawset() and rawget() to class and instance default delegate --changed bytecode format now ensures matching integer size and float size --now inherited classes also inherit userdatasize --added SQUIRREL_VERSION_NUMBER in squirrel.h and _versionnumber_ global symbol --fixed sq_getmemberhandle --fixed sq_getrefcount --refactored some sqstdio code --refactored some clone code --refactored some stuff in the string lib --added -s and -fno-exceptions in GCC makefile(better performance when using GCC) - -***2011-03-13 *** -***version 3.0 stable*** --added sq_getcallee() --sq_getfreevariable() also works for native closures --minior optimizations --removed several warning when compiling with GCC 4.x --fixed some errors in the documentation --fixed bug when using SQUSEDOUBLE and 32bits intengers --fixed bug when invoking generators with closure.call() (thx huntercool) - -***2010-12-19 *** -***version 3.0 release candidate 1(RC 1)*** --improved metamethods error handling --added parameter 'isstatic' to _newmember metamethod(thx G.Meyer) --added sq_getrefcount() to return number of refences from C++(thx G.Meyer) - -***2010-11-07 *** -***version 3.0 beta 3*** --license changed to "MIT license" --added sq_resurrectunreachable() and resurrectunreachable() --added callee() built in function, returns the current running closure --added thread.getstackinfos() --added sq_objtouserpointer() --added sq_newtableex() --various refactoring and optimizations --fixed several 64bits issues regarding integer to string conversions --fixed some bugs when SQUSEDOUBLE is used in 32bits systems - -***2010-08-18 *** -***version 3.0 beta 2.1*** --fixed bug in class constructor --fixed bug in compound arith - -***2010-08-12 *** -***version 3.0 beta 2*** --class methods can be added or replaced after the class as been instantiated --JSON compliant table syntax, this is currently an experimental feature (thx atai) --sq_getsize() now returns userdatasize for classes and instances --now setroottable() and setconsttable() return the previous value of the respective table --fixed bug in compound arith operators when used on a free variable (thx ellon) --fixed some x64 minor bugs --fixed minor bug in the compiler --refactored some VM internals --documented sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes - -***2009-11-15 *** -***version 3.0 beta 1*** --various refactoring and optimizations --fixed bug in free variables (thx mokehehe) --fixed bug in functions with default parameters (thx ara & Yexo) --fixed bug in exception handling --improved error propagation in _set and _get metamethods ( and 'throw null' for clean failure) --added sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes - -***2009-06-30 *** -***version 3.0 alpha 2*** --added real free variables(thx Paul Ruizendaal) --added refactored function call implementation and compiler(thx Paul Ruizendaal) --added sq_getfunctioninfo --added compile time flag SQUSEDOUBLE to use double precision floats --added global slot _floatsize_ int the base lib to recognize single precision and double precision builds --sq_wakeupvm can now resume the vm with an exception --added sqstd_format --now blobs can be cloned --generators can now be instantiated by calling sq_call() or closure.call() --fixed debughook bug --fixed cooroutine error propagation - -***2008-07-23 *** -***version 3.0 alpha 1*** --first branch from 2.x source tree --added 'base' keyword --removed 'delegate' keyword --now compiled scripts are vararg functions --added setdelegate() and getdelegate() table builtin methods --added <=> 3 ways compare operator --added lambda expression @(a,b) a + b --added local function statement --added array built-in map(),reduce(),apply(),filter() and find() --generators hold only a weak reference of the enviroment object --removed 'vargv' and 'vargc' keywords --now var args are passed as an array called vargv(as a paramter) --removed 'parent' keyword --added class getbase() built in method --instanceof doesn't throw an exception if the left expression is not a class --lexical scoping for free variables(free variables are no longer in the second parameter list) --sq_setprintfunc accept error func --sq_geterrorfunc() --added sq_arrayremove() and sq_arrayinsert() --error() built in function(works like print but prints using the errorfunc) --added native debug hook - -***2008-02-17 *** -***version 2.2 stable*** --added _newslot metamethod in classes --added enums added constants --added sq_pushconsttable, sq_setconsttable --added default param --added octal literals(thx Dinosaur) --fixed debug hook, 'calls' and 'returns' are properly notified in the same number. --fixed a coroutine bug - -***2007-07-29 *** -***version 2.1.2 stable*** --new behaviour for generators iteration using foreach -now when a generator is iterated by foreach the value returned by a 'return val' statement -will terminate the iteration but will not be returned as foreach iteration --added sq_setclassudsize() --added sq_clear() --added table.clear(), array.clear() --fixed sq_cmp() (thx jyuill) --fixed minor bugs - -***2006-08-21 *** -***version 2.1.1 stable*** --vm refactoring --optimized internal function memory layout --new global symbol _version_ (is the version string) --code size optimization for float literals(on 32bits float builts) --now the raw ref API(sq_addref etc...) is fully reentrant. --fixed a bug in sq_getdelegate() now pushes null if the object doesn't have a delegate(thx MatzeB) --improved C reference performances in NO_GARBAGE_COLLECTOR builds --sq_getlocal() now enumerates also outer values. --fixed regexp library for GCC users. - -***2006-03-19 *** -***version 2.1 stable*** --added static class fields, new keyword static --added 64bits architecture support --added global slot _intsize_ int the base lib to recognize 32bits and 64bits builds --added functions with fixed environment, closure.bindenv() built-in function --all types except userdata and null implement the tostring() method --string concatenation now invokes metamethod _tostring --new metamethods for class objects _newmember and _inherited --sq_call() sq_resume() sq_wakeupvm() have a new signature --new C referencing implementation(scales more with the amount of references) --refactored hash table --new api functions sq_newslot(),sq_tobool(),sq_getbase(), sq_instanceof(), sq_bindenv() --the api func sq_createslot was deprecated but still supported in form of C macro on top of sq_newslot --sq_setreleasehook() now also works for classes --stream.readstr() and stream.writestr() have been deprecated(this affects file and blob) --fixed squirrel.h undeclared api calls --fixed few minor bugs --SQChar is now defined as wchar_t --removed warning when building with -Wall -pedantic for GCC users --added new std io function writeclosuretofile() --added new std string functions strip(),rstrip(),lstrip() and split() --regular expressions operators (+,*) now have more POSIX greedyness behaviour --class constructors are now invoked as normal functions - -***2005-10-02 *** -***version 2.0.5 stable*** --fixed some 64bits incompatibilities (thx sarge) --fixed minor bug in the stdlib format() function (thx Rick) --fixed a bug in dofile() that was preventing to compile empty files --added new API sq_poptop() & sq_getfreevariable() --some performance improvements - -***2005-08-14 *** -***version 2.0.4 stable*** --weak references and related API calls --added sq_objtobool() --class instances memory policies improved(1 mem allocation for the whole instance) --typetags are now declared as SQUserPointer instead of unsigned int --first pass for 64bits compatibility --fixed minor bug in the stdio stream --fixed a bug in format() --fixed bug in string.tointeger() and string.tofloat() - -***2005-06-24 *** -***version 2.0.3 stable*** --dofile() and loadfile() in the iolib now can decode ASCII, UTF8 files UCS2 big-endian and little-endian --sq_setparamscheck() : now typemesk can check for null --added string escape sequence \xhhhh --fixed some C++ standard incompatibilities - -***2005-05-15 *** -***version 2.0.2 stable*** --performances improvements (expecially for GCC users) --removed all dependencies from C++ exception handling --various bugfixes - -***2005-04-12 *** -***version 2.0.1 stable*** --various bugfixes --sq_setparamscheck() now allows spaces in the typemask - -***2005-04-03 *** -***version 2.0 stable*** --added API sq_gettypetag() --added built-in function to the bool type(tointeger, tostring etc...) - -***2005-02-27 *** -***version 2.0 release candidate 1(RC 1)*** --added API sq_reseterror() --modified sq_release() --now class instances can be cloned --various bufixes - -***2005-01-26 *** -***version 2.0 beta 1*** --added bool type --class properties can be redefined in a derived class --added ops *= /= and %= --new syntax for class attributes declaration instead of ( and ) --increased the max number of literals per function from 65535 to 16777215 --now free variables have proper lexical scoping --added API sq_createinstance(), sq_pushbool(), sq_getbool() --added built-in function type() --added built-in function obj.rawin(key) in table,class and instance --sq_rawget() and sq_rawset() now work also on classes and instances --the VM no longer uses C++ exception handling (more suitable for embedded devices) --various bufixes - -***2004-12-21 *** -***version 2.0 alpha 2*** --globals scoping changed, now if :: is omitted the VM automatically falls back on the root table --various bufixes --added class level attributes - -***2004-12-12 *** -***version 2.0 alpha 1*** --codebase branch from version 1.x --added classes --added functions with variable number of parameters(vargc & vargv and the ...) --0 and 0.0 are now considered 'false' by all conditional statements(if,while,for,?,do-while) --added new api functions sq_newclass() sq_setinstanceup() sq_getinstanceup() sq_getattributes() sq_setattributes() --modified api sq_settypetag() - -***2004-11-01 *** -***version 1.0 stable*** --fixed some minor bug --improved operator 'delete' performances --added scientific notation for float numbers( eg. 2.e16 or 2.e-2) - -***2004-08-30 *** -***version 1.0 release candidate 2(RC 2)*** --fixed bug in the vm(thx Pierre Renaux) --fixed bug in the optimizer(thx Pierre Renaux) --fixed some bug in the documentation(thx JD) --added new api functions for raw object handling --removed nested multiline comments --reduced memory footprint in C references - -***2004-08-23 *** -***version 1.0 release candidate 1(RC 1)*** --fixed division by zero --the 'in' operator and obj.rawget() do not query the default delegate anymore --added function sq_getprintfunc() --added new standard library 'auxlib'(implements default error handlers) - -***2004-07-12 *** -***version 1.0 beta 4*** --fixed a bug in the integer.tochar() built-in method --fixed unary minus operator --fixed bug in dofile() --fixed inconsistency between != and == operators(on float/integer comparison) --added javascript style unsigned right shift operator '>>>' --added array(size) constructor built-in function --array.resize(size,[fill]) built-in function accepts an optional 'fill' value --improved debug API, added sq_getclosureinfo() and sq_setnativeclosurename() - -***2004-05-23 *** -***version 1.0 beta 3*** --minor vm bug fixes --string allocation is now faster --tables and array memory usage is now less conservative(they shrink) --added regular expression routines in the standard library --The 'c' expression now accepts only 1 character(thx irbrian) --multiline strings <[ ]> have been substituted with C# style verbatim strings (eg. @"string") --added new keyword 'parent' for accessing the delegate of tables and unserdata --The metamethod '_clone' has been renamed '_cloned' --the _delslot metamethod's behaviour and prototype have been changed --new default function in the integer and float object 'tochar()' --the built-in function chcode2string has been removed --the default method [table].getdelegate() has been removed --new api sq_rawdeleteslot() --new table built-in method rawdelete(key) --the dynamic mudule loading has been removed from the standard distribution --some optimizations in the VM - -***2004-04-21 *** -***version 1.0 beta 2*** --minor compiler/parser bug fixes --sq_newclosure has a different prototype, the "paramscheck" of paramter has been moved to the new function sq_setparamscheck() --sq_setparamscheck allows to add automatic parameters type checking in native closures --sq_compile() lost the lineinfo parameter --new api sq_enabledebuginfo() globally sets compiler's debug info generation --added consistency check on bytecode serialization --fixed += operator, now works on strings like + --added global slot in the base lib _charsize_ to recognize unicode builds from ascii builds runtime --added registry table --new api call sq_pushregistrytable() --added type tag to the userdata type sq_settypetag() --sq_getuserdata now queries the userdata typetag --the built in function collect_garbage() as been renamed collectgarbage() for consistency reasons --new standard libraries(sqlibs are now obsolete) - -***2004-02-20 *** -***version 1.0 beta 1*** --fixed a bug in the compiler (thanks Martin Kofler) --fixed bug in the switch case statement --fixed the _unm metamethod --fixed minor bugs in the API --fixed automatic stack resizing --first beta version - first pass code clean up in the VM and base lib - first pass code coverege test has been done on VM and built-in lib --new VM creation API sq_open() sq_close() (sq_newvm and sq_releasevm are now obsolete) --new api allows to specifiy a "print" function to output text(sq_printfunc) --added some small optimizations --new cooperative multi-threading capabilities in the base library(coroutines), VMs are now a built in type("thread") --new built in functions have been added for manipulating the new "thread" type --friend virtual machines share the same root table, error handler and debug hook by default --new compile time options - -***2004-01-19 *** -***version 0.9 alpha*** --fixed a garbage collection bug --fixed some API bugs(thanks to Joshua Jensen) --fixed tail calls (in the version 0.8 the tail call optimization was erroneously disabled) --new function parameters semantic, now passing a wrong number of parameters generates an exception --native closures have now a built in parameter number checking --sq_rawget and sq_rawset now work also on arrays --sq_getsize now woks also on userdata --the userdata release hook prototype is changed(now passes the size of the userdata) --the lexer reader function now returns an integer instead of a char that allows better error checking on the input(thx Joshua Jensen) --faster compiler --try/catch blocks do not cause any runtime memory allocation anymore - -***2003-12-06 *** -***version 0.8 alpha*** --fixed a bug that was preventing to have callable userdata throught the metamethod _call --fixed a garbage collection bug --fixed == operator now can compare correctly different types --new built in method getstackinfos(level) --improved line informations precision for the debug hook --new api call sq_compilebuffer() --new built-in api function compilestring() --new syntactic sugar for function declarations inside tables --the debug API has been finalized - -***2003-11-17 *** -***version 0.7 alpha*** --fixed critical bug SQInteger the tail call system --fixed bug in the continue statement code generation --fixed func call param issue(thanks to Rewoonenco Andrew) --added _delslot metamethod(thanks to Rewoonenco Andrew) --new multiline string expression ( delimited by <[ and ]> ) --normal strings ("") do not allow embedded new line anymore --reduced vm memory footprint(C refs are shared between friend VMs) --new api method sq_deleteslot() --new debug hook event 'r' is triggered when a function returns - -***2003-11-04 *** -***version 0.6 alpha*** --fixed switch statement(was executing the default case after a break) --sq_call() doesn't pop the closure (just the params) --the vm execution can be suspended from the C API anytime (micro-threads) --new api calls sq_suspendvm() sq_wakeupvm() sq_getvmstate() and sq_reservestack() - -***2003-10-13 *** -***version 0.5 alpha*** --fixed some minor bug --tested with non ASCII identifiers in unicode mode(I've tried chinese chars) --added built-in function string.find() --the built-in function array.sort() optionally accepts a cmp(a,b) function --the debug hook function now has a new prototype debug_hook(event_type,sourcefile,line,functionname) --fixed some debug info imprecision - -***2003-10-01 *** -***version 0.4 alpha*** --faster VM --sq_call will pop arguments and closure also in case of failure --fixed a bug in sq_remove --now the VM detects delegation cycles(and throws an exception) --new operators ++ and -- --new operator ',' comma operator --fixed some expression precedence issue --fixed bug in sq_arraypop - -***2003-09-15 *** -***version 0.3 alpha*** --fixed a bug in array::insert() --optional Unicode core(define SQUNICODE or _UNICODE on Win32) --sq_compiler uses a new reader function SQLEXREADFUNC --the debug hook passes 'l' instead of 'line' for line callbacks - and 'c' instead of 'call' for call callbacks --new array.extend() bulit-in function --new API sq_clone() - -***2003-09-10 *** -***version 0.2 pre-alpha*** --new completely reentrant VM (sq_open and sq_close are now obsolete) --sq_newvm() has a new prototype --allocators are now global and linked in the VM --_newslot meta method added --rawset creates a slot if doesn't exists --the compiler error callback pass the vm handle(thanks Pierre Renaux) --sq_setforeignptr() sq_getforeingptr() are now public --sq_resume() now is possible to resume generators from C --sq_getlasterror() retrieve the last thrown error --improved docs - -***2003-09-06 *** -***version 0.1 pre-alpha*** -first release diff --git a/m_packages/squirrel/Makefile b/m_packages/squirrel/Makefile deleted file mode 100644 index 2ed97e26..00000000 --- a/m_packages/squirrel/Makefile +++ /dev/null @@ -1,22 +0,0 @@ - -SQUIRREL=. -MAKE=make - -sq32: folders - cd squirrel; $(MAKE) - cd sqstdlib; $(MAKE) - cd sq; $(MAKE) - -sqprof: folders - cd squirrel; $(MAKE) sqprof - cd sqstdlib; $(MAKE) sqprof - cd sq; $(MAKE) sqprof - -sq64: folders - cd squirrel; $(MAKE) sq64 - cd sqstdlib; $(MAKE) sq64 - cd sq; $(MAKE) sq64 - -folders: - mkdir -p lib - mkdir -p bin diff --git a/m_packages/squirrel/README b/m_packages/squirrel/README deleted file mode 100644 index de37cad0..00000000 --- a/m_packages/squirrel/README +++ /dev/null @@ -1,33 +0,0 @@ -The programming language SQUIRREL 3.2 stable - --------------------------------------------------- -This project has successfully been compiled and run on - * Windows (x86 and amd64) - * Linux (x86, amd64 and ARM) - * Illumos (x86 and amd64) - * FreeBSD (x86 and ARM) - -The following compilers have been confirmed to be working: - MS Visual C++ 6.0 (all on x86 and amd64) - 7.0 | - 7.1 v - 8.0 - 9.0 - 10.0 - 12.0 --- - MinGW gcc 3.2 (mingw special 20020817-1) - Cygnus gcc 3.2 - Linux gcc 3.2.3 - 4.0.0 (x86 and amd64) - 5.3.1 (amd64) - Illumos gcc 4.0.0 (x86 and amd64) - ARM Linux gcc 4.6.3 (Raspberry Pi Model B) - - -Feedback and suggestions are appreciated -project page - http://www.squirrel-lang.org -community forums - http://forum.squirrel-lang.org -wiki - http://wiki.squirrel-lang.org -author - alberto@demichelis.net - -END OF README diff --git a/m_packages/squirrel/appveyor.yml b/m_packages/squirrel/appveyor.yml deleted file mode 100644 index 4da9b37b..00000000 --- a/m_packages/squirrel/appveyor.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: 0.0.{build} - -platform: - - x86 - - x64 - -configuration: - - Debug - - Release - -clone_folder: c:\sq - -before_build: - - mkdir build - - cd build - - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %platform% - - echo %platform% - - if %platform%==X64 (cmake .. -G "Visual Studio 14 2015 Win64") - - if %platform%==x86 (cmake .. -G "Visual Studio 14 2015") - -build_script: - - cmake --build . --config %configuration% -- /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" - -artifacts: - - path: build\*\%configuration%\*.exe - - path: build\*\%configuration%\*.dll - -test: off diff --git a/m_packages/squirrel/build/ALL_BUILD.vcxproj b/m_packages/squirrel/build/ALL_BUILD.vcxproj deleted file mode 100644 index 7a0ecd79..00000000 --- a/m_packages/squirrel/build/ALL_BUILD.vcxproj +++ /dev/null @@ -1,204 +0,0 @@ - - - - x64 - - - false - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {3A945C97-C785-35A2-B03C-822543E0A519} - Win32Proj - 10.0.22621.0 - x64 - ALL_BUILD - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp - false - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184} - sq - - - {7453F643-9077-3653-9215-251A8BBC9911} - sq_static - - - {A08064B5-BCE0-3321-89AE-9702449A7DAB} - sqstdlib - - - {55256B84-34E3-30E3-8A7C-2F5F832AEA13} - sqstdlib_static - - - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - squirrel - - - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} - squirrel_static - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/ALL_BUILD.vcxproj.filters b/m_packages/squirrel/build/ALL_BUILD.vcxproj.filters deleted file mode 100644 index 8387fda8..00000000 --- a/m_packages/squirrel/build/ALL_BUILD.vcxproj.filters +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/m_packages/squirrel/build/CMakeCache.txt b/m_packages/squirrel/build/CMakeCache.txt deleted file mode 100644 index 62eb6d69..00000000 --- a/m_packages/squirrel/build/CMakeCache.txt +++ /dev/null @@ -1,431 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: f:/Magic_Game/project/Magic_Game/m_packages/squirrel/build -# It was generated by CMake: F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Path to a program. -CMAKE_AR:FILEPATH=F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/lib.exe - -//Semicolon separated list of supported configuration types, only -// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything -// else will be ignored. -CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//Value Computed by CMake. -CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/pkgRedirects - -//User executables (bin) -CMAKE_INSTALL_BINDIR:PATH=bin - -//Read-only architecture-independent data (DATAROOTDIR) -CMAKE_INSTALL_DATADIR:PATH= - -//Read-only architecture-independent data root (share) -CMAKE_INSTALL_DATAROOTDIR:PATH=share - -//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) -CMAKE_INSTALL_DOCDIR:PATH= - -//C header files (include) -CMAKE_INSTALL_INCLUDEDIR:PATH=include - -//Info documentation (DATAROOTDIR/info) -CMAKE_INSTALL_INFODIR:PATH= - -//Object code libraries (lib) -CMAKE_INSTALL_LIBDIR:PATH=lib - -//Program executables (libexec) -CMAKE_INSTALL_LIBEXECDIR:PATH=libexec - -//Locale-dependent data (DATAROOTDIR/locale) -CMAKE_INSTALL_LOCALEDIR:PATH= - -//Modifiable single-machine data (var) -CMAKE_INSTALL_LOCALSTATEDIR:PATH=var - -//Man documentation (DATAROOTDIR/man) -CMAKE_INSTALL_MANDIR:PATH= - -//C header files for non-gcc (/usr/include) -CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=C:/Program Files (x86)/squirrel - -//Run-time variable data (LOCALSTATEDIR/run) -CMAKE_INSTALL_RUNSTATEDIR:PATH= - -//System admin executables (sbin) -CMAKE_INSTALL_SBINDIR:PATH=sbin - -//Modifiable architecture-independent data (com) -CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com - -//Read-only single-machine data (etc) -CMAKE_INSTALL_SYSCONFDIR:PATH=etc - -//Path to a program. -CMAKE_LINKER:FILEPATH=F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/link.exe - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//Path to a program. -CMAKE_MT:FILEPATH=CMAKE_MT-NOTFOUND - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC=The Squirrel programming language - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC=http://squirrel-lang.org/ - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=squirrel - -//Value Computed by CMake -CMAKE_PROJECT_VERSION:STATIC=3.2 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MAJOR:STATIC=3 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MINOR:STATIC=2 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_PATCH:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_TWEAK:STATIC= - -//RC compiler -CMAKE_RC_COMPILER:FILEPATH=rc - -//Flags for Windows Resource Compiler during all build types. -CMAKE_RC_FLAGS:STRING=-DWIN32 - -//Flags for Windows Resource Compiler during DEBUG builds. -CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG - -//Flags for Windows Resource Compiler during MINSIZEREL builds. -CMAKE_RC_FLAGS_MINSIZEREL:STRING= - -//Flags for Windows Resource Compiler during RELEASE builds. -CMAKE_RC_FLAGS_RELEASE:STRING= - -//Flags for Windows Resource Compiler during RELWITHDEBINFO builds. -CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Avoid building/installing static libraries. -DISABLE_STATIC:BOOL=OFF - -//Use longer names for binaries and libraries: squirrel3 (not sq). -LONG_OUTPUT_NAMES:BOOL=OFF - -//Value Computed by CMake -squirrel_BINARY_DIR:STATIC=F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build - -//Value Computed by CMake -squirrel_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -squirrel_SOURCE_DIR:STATIC=F:/Magic_Game/project/Magic_Game/m_packages/squirrel - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=f:/Magic_Game/project/Magic_Game/m_packages/squirrel/build -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=28 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Visual Studio 17 2022 -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL=F:/App/VisualStudio/IDE -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=F:/Magic_Game/project/Magic_Game/m_packages/squirrel -//ADVANCED property for variable: CMAKE_INSTALL_BINDIR -CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DATADIR -CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR -CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR -CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR -CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_INFODIR -CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR -CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR -CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR -CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR -CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_MANDIR -CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR -CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR -CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR -CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR -CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR -CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MT -CMAKE_MT-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=4 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//noop for ranlib -CMAKE_RANLIB:INTERNAL=: -//ADVANCED property for variable: CMAKE_RC_COMPILER -CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 -CMAKE_RC_COMPILER_WORKS:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS -CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG -CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL -CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE -CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO -CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//CMAKE_INSTALL_PREFIX during last run -_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=C:/Program Files (x86)/squirrel - diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCCompiler.cmake b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCCompiler.cmake deleted file mode 100644 index 5cbbf0b3..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCCompiler.cmake +++ /dev/null @@ -1,74 +0,0 @@ -set(CMAKE_C_COMPILER "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "MSVC") -set(CMAKE_C_COMPILER_VERSION "19.39.33523.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "OFF") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "") - -set(CMAKE_C_PLATFORM_ID "Windows") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC") -set(CMAKE_C_SIMULATE_VERSION "") -set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) - -set(MSVC_C_ARCHITECTURE_ID x64) - -set(CMAKE_AR "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/lib.exe") -set(CMAKE_C_COMPILER_AR "") -set(CMAKE_RANLIB ":") -set(CMAKE_C_COMPILER_RANLIB "") -set(CMAKE_LINKER "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/link.exe") -set(CMAKE_MT "CMAKE_MT-NOTFOUND") -set(CMAKE_TAPI "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) -set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCXXCompiler.cmake b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCXXCompiler.cmake deleted file mode 100644 index c372852a..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,85 +0,0 @@ -set(CMAKE_CXX_COMPILER "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "MSVC") -set(CMAKE_CXX_COMPILER_VERSION "19.39.33523.0") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "OFF") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") - -set(CMAKE_CXX_PLATFORM_ID "Windows") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC") -set(CMAKE_CXX_SIMULATE_VERSION "") -set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64) - -set(MSVC_CXX_ARCHITECTURE_ID x64) - -set(CMAKE_AR "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/lib.exe") -set(CMAKE_CXX_COMPILER_AR "") -set(CMAKE_RANLIB ":") -set(CMAKE_CXX_COMPILER_RANLIB "") -set(CMAKE_LINKER "F:/App/VisualStudio/IDE/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/link.exe") -set(CMAKE_MT "CMAKE_MT-NOTFOUND") -set(CMAKE_TAPI "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) -set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeDetermineCompilerABI_C.bin b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeDetermineCompilerABI_C.bin deleted file mode 100644 index c37b5ef1cb3ff2a5e4eeecbd238ceae9d046f6b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52736 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 zau�AkzZ)V{2)eXoXZtI&zB)t8`snbv8-){%KgM5tJH8Tc;10|*h|y?}2bv;k-5 zGG;<(1ug(qBK(5r=iyICB5d0Y{Cw;w5VivE2Ap~UV->)yfXxU^z}o=7iO>Li7hoSk z8}LCu!-dcRco|>xBkTZwnHhgU5uuatX^dTh zunRc-adQVk7w}HNUn6t_XP4kRa)cwmBY=4ojGZJLum_R;m2+H$PpI&_D*ToT zx2Uj9g>e`Pga1|1zfj?m zD%_#M%_@wjQ2*xX<$qGSx2g8ttitvK6<({tg({q@!kH?(P=ym!IH=nBxC$RrVW$eWs_+Xc461Oo3Vo{n zpOjtyQaP4i4@R z-UM!vgyL?0tJkl*RCE4VR5#w7i2GaPtZ2--+@Y`{0QX7V?)Bbi+IJ z%lwgWG|mj!=~X!O=ecA4CU;{Xh_{8%EjYjLyO9rEB#ev8`^U5nGhEjrjvdl5j(@`u(3qTx_8OvhNY&b=1$Rj#pE;))C? z)XWmYxZBTMdVeeZarM_3R0Z;^qHAL_UWZ_~)$Ddh+-}mu%h`Q$T&9V^Qx1nm{^v)FO$k0g5(eAgiUsId?-UPismRV>&^nwQ|`m!D^ z<;Jxq?>eQS?6U?kW*`J6Hq!vF_C_|i@hU(C$31bvo2Z}TzCajV3*|%Z^)bBi5{fq> z^Bei@mS)_WiogMgw+rc51TU$m1fQYB8&hQ_pv@W&UdZ7d7}4`f+b(|;Z-O;@LSFx3 zyyyjOSY;lZez7v3T+y%>SMzIp?8*#k9q$tmS#dsimv2B%HPfpNwipc)!q{E;HAC*U z+=;#v(T(g~{jzv)u_qFTe=b(X;-84-42RbxB1_aarW~PobOTQJ2IQ;^MB{kxW<{ta z5JHWe`86?q0c@>5>Y_Iq;JW`~SP@dD3!g)q0H6pphTUga?vI}``)z6!UNk@zks3@b ztJn_6S6dy9F7bOvQ>~tVC2nOp(1twwl75*d5W~H9ZQ@}Q^|g4ZE3gP}6xM}T1$=(I zXcT2v7HDW)cqpIUP7ZHS-)A-eQEAZ5XDA~Qr4jSq-?^9(n_F2cWr4DE19PT7+A;Y^P@Sl%2qvuNH zEb#Yhfk|cA_W(zx?--GP{fDGST4M3?Z22SebLqb&3*e3c)In&=)=I~8AmCB?D0-0| z&z_MN(dpRj#FYD-)&dK!Zf(YU>i%d9FE&?CzkIf3y5JAtg<8B}TRnY6-I7^V(}h?Z zdu>k;8?EZ;8~m~9S6@|HywDSi`J30^jcN!8#j2+#qM`XQZ<8PI1J7y>(CgUY#`rAk zp5}XE&9m2EJ{@lthXRc_MXb!M4Wa~LVLY0M#c3~~N}Kv2(kiF&awr+YCNPTkgVi)B zQU5Io)Z+KKqJj0;8R6RdP-bSfgYO^FY^Q&{KPUt#uAc6R)r8iE*ZHH|X1A zuKR^YDju;sQuT=Sk&2y`omD%nJH?%@ovahz&w;1@frbZ;Jka-m{J`c1w?4S-!OjPF oJb3ayk+BPR2mmU+gJ@8BZ;*ACbqbx9PHSgFC#bp4->3!tA6k{tQvd(} diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeRCCompiler.cmake b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeRCCompiler.cmake deleted file mode 100644 index 0f619610..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeRCCompiler.cmake +++ /dev/null @@ -1,6 +0,0 @@ -set(CMAKE_RC_COMPILER "rc") -set(CMAKE_RC_COMPILER_ARG1 "") -set(CMAKE_RC_COMPILER_LOADED 1) -set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC) -set(CMAKE_RC_OUTPUT_EXTENSION .res) -set(CMAKE_RC_COMPILER_ENV_VAR "RC") diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake deleted file mode 100644 index 9c49cbb3..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Windows-10.0.22631") -set(CMAKE_HOST_SYSTEM_NAME "Windows") -set(CMAKE_HOST_SYSTEM_VERSION "10.0.22631") -set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64") - - - -set(CMAKE_SYSTEM "Windows-10.0.22631") -set(CMAKE_SYSTEM_NAME "Windows") -set(CMAKE_SYSTEM_VERSION "10.0.22631") -set(CMAKE_SYSTEM_PROCESSOR "AMD64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CMakeCCompilerId.c b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 0a0ec9b1..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,880 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif __STDC_VERSION__ > 201710L -# define C_VERSION "23" -#elif __STDC_VERSION__ >= 201710L -# define C_VERSION "17" -#elif __STDC_VERSION__ >= 201000L -# define C_VERSION "11" -#elif __STDC_VERSION__ >= 199901L -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.exe b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.exe deleted file mode 100644 index d4e004f5ea07dc0b01014ee0fd56d755497a0e14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14848 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 If9V$ZKinPeF8}}l diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.vcxproj b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.vcxproj deleted file mode 100644 index 38f433ed..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.vcxproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - - Debug - x64 - - - - {CAE07175-D007-4FC3-BFE8-47B392814159} - CompilerIdC - Win32Proj - - - 10.0.22621.0 - - - - - - - - - x64 - - - Application - v143 - - MultiByte - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\ - $(Configuration)\ - false - - - - Disabled - %(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - - - TurnOffAllWarnings - - - - - - false - Console - - - - for %%i in (cl.exe) do %40echo CMAKE_C_COMPILER=%%~$PATH:i - - - - - - - - - - diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/Debug/CMakeCCompilerId.obj b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/Debug/CMakeCCompilerId.obj deleted file mode 100644 index c2e7376f41e4d2d307b346007bbd9579a26ccea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2330 zcmb_dT}&KR6h6ajv0{a#wGZ`=k&dyNblkH12>LLvus~#?vJ@J3&34$Cg@N6fWp)-w z9~z|ENYJEFAF4iBjg3ASH9ncf)ZfHPOsa_w#y-`=M3cT4^u;FDbMBqlox%8GJjp%x zyXSuQ-2Zd*GfmJm-CY>p1@I7XQFO=1yUT{xgcyRi1i$6gO;J#EW41acr~RI95PZLb zr$Tf<(KT1|NmyUNa=rmzNaRMG8dOj}Rh%&KQM9jk9L{7sRdJ0~S1wt;?IMB?kyngx zOCwei96h0|hW+hE`#Tdc8Og4hUF5LH4s|KSF$gg(&o&3ZdfZB*|K9V;1vf=rCeFdFKTl} zC0kjlnvP=>v$IvRsAm%?ZP7@YMeK0ltNO@BnPDL#tfMnci4{ zQumL~&af(`ZB=T_iDZ&f@t#1yX9v*2kcyg4UV!7M_c64FdOt&o+XCs8rhhVqZ?!L?wOI(*P~xWWON84`9WD4*}R=_%cY30xknZ+Z+^BB zk^g(o3;&b1O~iX{R)sGAvj0(F$3MbtE71fE5`m!a2D-@%a3+yKpc zo66V#`tQEng+RnH036YuyqDQf)#Lyo`ki&T6QKa>_wT>_xY+vZYgbzioD%N4a4`Pe zd+I0cFTdSZSUU6S)|Folp8Yw~c5VpM4Il1 zggCS&fHo`=mb&MzSPTw%7P0~y#-d^gaynqdvv3Z*5BfGiPA8lQai+1g=2`eIx?BQDE9Fcy>gNy^gymJfohyrCE+OxgYJ?v4jI`2Wo!P}{4A)1BHC3qbFCIH^` zER4fPc{z#x;J=Of+#AI>pae1$1vpWl92J%yuxVNaJLgAd-tuA^Z}@?kwl>eby diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 9c9c90ea..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,869 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > 202002L - "23" -#elif CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CompilerIdCXX.exe b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CompilerIdCXX.exe deleted file mode 100644 index 462aca3b06829480714f4d55aa2a89fbe3df2e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15360 zcmeHOe{fqzonOh4<2ZJ#wsCQRq%VnFyEJhWJ1K4&w{mT#&&6p);-sM|$g=!w=^{(& z)01QO=!}Dt5}oj!;mXnS2es2O^%af_g{DsFfYRh*2NK4^aM!{y)O7BcSKOO1l%x5h zp!h%x5Co6Ryd1xSyVr@ucj zQN8-+mshiIuDrB<%GPmdeP<|~P~v*5PY?7f!9X+`Gn8&k(UVan993E$*sJu%dbGOo z@=~`Hz0viRU-domZxh!0<%M(OJt%*9Au}H5@XUBWhvzwd)5>$>K~8^eVguk4?_|b% zIovTJ;50Aq2?s+Y)9Qh*jj^7`i`lCExA$7O1-5~$vahaT?*~RI>XYa}On(k(?&?H^1RTYo{{DGRe}@D+pm|p%Y|!C6 z29}wx!Ai$l-Rno1-oA@5Te3`8XbvsT9~fzR4M>)}Z`%1is-fYK23J?SZK?f0h2L#j3QE=0&oOe>Iwu)07?)By?7#8zhG^D0l-5xbf$w(tJ zn$&cM+hdknqh@Rpb!kqhQb8paUt2@wWs=%(fpETT+;y2RWE{mc^(0)e&WQ?QFL)JkyFn&qgiI0cpAJ5F;gN)12wy3MSIY7kyKza3m| zQVzB~c)eKXa>zbmR zu!+YUKp{M?vhc;~p$t0R0Zfh^Wuizq-1B8>nwAQXphW0e^$v&I z*i7iOw@keQ9;L6fO0>i^m!vZsohT;sykq_qJ}bE)todd2R~`AJ+ryHM`pkTsq%tZDZ{j2Tq5k1N5uS>|3;Q+6M{5xqRpNbw2h*hs=)(ad6Jt4QQ3I6Wt@pS0yU zjfMuQX@8dM3ip>Ul+y&|x^W$c&eAi2$gTJiPk2(M7T z6lPpcYA9rl+N9&84YoK}pOHS5=ROxLa|mm!IPZKOLT#po`Dl(?Q;%zMlR1_vuWGnp z+OI>PkeM&+4wtu|_M%Y5DQ6dCVWC-Z()QNR(8ZBg+`|COSR->btlOBC%)AAuIU!cu z9Tr)V`sjuT^D&o@Q=fV3DUbtQP3Yc5^rwKHKderp&oCG4C7qBPjJqRWt9Y(a9d%y1 zgT!F9P}7&y^e<0SH1*E2IW})Dr{;1#uzgLkp+1l8ymJ6}8z0w@{}XZ~g_W(TbAaS@ z(FjrVyG-aP#*VQz|xHa7yu${uk?DOxVwbBC)`+OO^X|#L-;hOqs>7>UIURXRB z(NWZaw48VvsTH(vBkc?x^H#QG z%V($|aOE!+7(y@kvKNaNca?_BX>8r>o#(mlWGnw3@q-vGQaf8YfHKw~G^MBw*3bdJ ze_1>U@nkDgR7o@X%pABVvxJ{oSFS)#k)zX*Pt4VD1vr)VJMWF&!`jf>ez z#ia)1_HW4K=EM}mBe~MWi+NRi!b~x5K|S=Z#i;Lt>}+LCVJt-qCvADcP=1v$F2_nR z*=_}IjtJ%T1!dYlU(5BJ_Xhj($PBg|8pV{&ydZ09#Ypp7JJn(#rdd+pG0?Yar0KKU z(97gXgyYoR`4uuQPt%5Wt}3Stlq7xbEYxphewo(iX{Wv&V(^^h>+6H+k+&DHVxE2< zP}$0lA;N)6uSy?v(=j(abLrO82oRZ>A;m|JB6g#3x(w%?#R^W&`x%bQR{oSC0`OH~ zbE2WA=u92$bYr!`%*2RwQ z*Z64W9%#6btsIuEU54&zO126fULMI{hdb&f{~$TT)CSl2N#x#nep;a50A6H|0!Nl5 z-7RTjC}%6(Xk+BEEx7_QtJlUuS1*qSy$G0_bCRK9SH8L-(yxm2!<_8OR#qYlnpSkX zl_hVW<*pfPRH-m*-|t}9Bj;!gtaD7x-{7xi&0;7;^N(bI72!S^2}=y^&&d_o%Z~6K z09O!lL{%6~u|g|lG3XHfmltZZ5@jtStg6N6f^T!RBU5Cd)rV>EUpGZd7GkZ{+-FB# zu^mTQL_T8k&Uaur-(Y7La|J0qQgG(UTTfwN8OkbLE#xw9px(ceZXN+AfI#% znT87$Cps|Ul;#v`P91PGr__?>l&@?G6Pv~u8;L`Kh&2|%Mu_eAYSH9rL2{ue-BG3- z`DHk&wXZs3A?*SgHMGd8Gvw%KvW#XJ-yac}i9=D@afiE5a&yuMSwf^_Eoy|XkQ{8@ z-I|l^%1K59CnUQtJxloJ@W*!1QE|%QK9;FCdJH1eY3E&A0Ec<@PGqt6W#KrE>V>1<*s5oGrWuCIF&t%WnXa-GnB=07nNO$pUU^Q5?;*$?g(G|xZ>bcG0wu@0-l*`3c(`g;P4Yls$YS~lH zW@M(FAE*<{<+QUBIZ)+PB}Pv*-6WDF={{iE`9GTlP1-q++{lb0<$Mzvs}B|nDHECY2M}#8lXKZ?L5reEJ-<| zd2LdMJtK1pdiRNGX9sGq^n&<4POPAxONr5^qFLP07R^$aNi9~-fkkbiGtJcU3}ZMbND7G8=a!FMokx>7ua{e2%;nDNK#?;Y5{l@8u-x~a34 zPrjC8d-NhM?ZozqrLNJW$-t*T-kN(QEB0n=y=gWwcNt<8Ds_=zA&KM9nD&u58!UAz zM_?mykoYdSksupSx0k&8BQkxooz(; zd<4!wK@hI3D28!fN9DBhZwREE|9P9B^dkQTSf`yY0z*1XJO33qS_-F~r)AFCt0A!b z>%=+ju<`jS_izX_p}}6r+q32B#EnO8X3|>Cd=_(RQ}- zM|AgwK#EFgdiXK{473khfERf-UrM8z&CuXux$@c{>st~gJ}qzWtT3^qAWZBM4h0K^ zD2I`kZK1GSnD{YBo44cdIP@Ppo2{M%B3u1Mo_>a>`!OonYL%xuc)E$F>v-zoshy|4 z=JY@3>FYfGE>BDPEV&ePBF^e9gUcuM!c+3JUQ+QHMic?+Bikkj~n%eDE(`|U^j<5~Kkv4C7H^8j<9)@-d zwoyKQwt!v*4PHT?ZgV$bk<8!}(nbdWI)$_;G@j`;MKV+A+VfX!0avq7{}u^%O1NLb zh=juueo?}&N$90z6VE0If8*svRwc{tNxGj(_^O103R~#iBDX-lIpBF+!fwegu#A1* zD{?PL_)ii(F5!TLT@uzySS#T=30)G}CH%E)|7{8XOTzz<@VgRDO8B^h5eW}Ss7iRd zgg=q;nS4&(EPkf7;CPKFXO=*V{?ig~mB+3t{F&FnXIuh5e3g2O?rO08{#_632* z;fSUm+`V^y%f~rs0p35L>4|VGdeFn4t#{OkOasp}G;FVLkQk3gurtmdj|7a~nBITz z!Em%Eb~u4Ljt}U;(80mmw^`+c5s3B#^d5hY)*DDhjDuULYEcjTWUWO>fkcktfnB>e ziCHiDU(z68ql7*Qhb7!=1cHZ@cr1(~imn7>x}J<1kSLpBErEog7%?T$ABeybiZK+| z@C8FM5svmLkys+3#CjF^TQ~6tdHq^{OdrY@*AWW_BFaEO4+pv2^c?}CW0X>$C_9%X|4Sq|W)`K77w~2mvw+q;HyMV(IPDyA=XpB(0jdD1USZo+!zIZy9kk%;p!lPRwtMI-Z4jZ9ZlD_gFRIZC!kCY(zBT0?y z*S6Qko1xD_@Rdkh(<4JlA}|0O1%f&mIiU0=qd~F{j30^ADGL9j1Z^f0Ng#$mp=$~F z2+1Q7YBrCnM+-&*Is}qpN-Ro)D2Rfw=l~rpA)43aF$5&IGmv=-C=`xAbwX&SG2)Ee>|e?P?Yl0mBCN|j;}N+ zwPEEJ#WT2T*R6M!m$rlg(LS;vmy3^c=tCW;*ANU9i6}H$0T?2P34-Px!8nACA+kRe z#b}U(7$#JI_)+vV$UpMo_9>Vr1ukaUk32qa#t==xtTCj8isKcPy`GT)y!N9=v~xi-LFYmfZp- z9Kh$+0HFK>jPo#bqI;QHzS zVOm|>+esG2mVX+By*Jp~$JjW^bk3`5*@GMNmS&=vT!JIy$wJ&iL^oA{Yv;U~B{)LP zEWxz^H(Q9~@?I~%`MA8fLL8?v3vivBZUH!$N%o_Y)A4W0U`*?~G)7}iH2ga?_dqOS z^kci^zCb=9@sB?GXiqmx!xr$P2)B)H1l{e;yq(JhxQ9eLJM-u|1zkx2PSCl4qYKWu zK@k+t_k2KE<5Q0;I{+N{mmISO!o`8h8%J_E9`im?l%vDXOL%?ODx;d0xxNoZK zP9&(Bb&2lrM?1mG7RkqxDh2u%bH{mlFE9-G1t{?VbJmvX> z@TM2@3pg56>*>4)IpD7LTsv;u3DlR5=; zer+(Qi9^5#m&5uIG4iiv_qXiXcYkO5?zXMlJgs#-kqA3$_b0TFzc(DgX##RIcAhYX zAF-I9jt=Y~Bm#j*M(+@^$bdrqEV-EXYs}}+2E&l?3kFq@`JT|Vm%hcui42;?{eIFU z$k=_0CFu1mG#0#1BPX~|+5NiK7fw*mjgYPddi*?uBQy9BgQ5jL#oXOEa546x)n`G< zDK++ep+QtT?B`1C7OmnODs<8d?13nrgc@|Bg2cS`WsP-aV6UPz9izatU>|XkF~U(4 zSrYi}00MD7esRY~lbSx{({wtX2BJZ&1qU!tvj+RUn$aR0#HYuCS|ZWj!#xh8JA6@lqE+io_VsDH50N*y#?PJmqQbp< z+AN2LBGei7taGnsT(x=<(qtcF`YtU%dRbCGPd(lp>q$m5mCv0A@wHZ-6(k=!=j^m> zY@ygk+VSpf=LtS9^Ctn%%KR)~6fvI%^l`vrc!_rm@Jlj34oF`K)dD{U_>RQW|C7+C)e7(m z;C8&k>jm74_W<%;fVbcr_EqFPfG^`E{48KS&SoUj3rHWpjUhh<_ypp~apcDVZ$n%e zN8SVI$4fL_fKTInl4teFgaiz)!7Z>>S|%zl4|Q#{qY(6ZAg7Uc7{l1D4`kN$t7-_u!pHz6XsX#-=c!S&C@u(bW7t%)uXESt#u_ET@Bbr+=9+4T zv_#F_ca@j!3?vd-e>ZM?At0J)s!8h69f@E_!~N#w{xDq^$9j#;2pM+-68&`pTWfGz z8V&bq31feLYY?R~8N(x#d~qCGkgJEZ9~N;2FWqyV$2rZ*5tXf?`~oSdCo zuHMSdEd@I5+>+}Y*mrKR?1n<&ATD3Rpwjq-CgKx=6T=h7C!U;`oXAYfOk_^XoR~fF z`iZ#{ - - - - Debug - x64 - - - - {CAE07175-D007-4FC3-BFE8-47B392814159} - CompilerIdCXX - Win32Proj - - - 10.0.22621.0 - - - - - - - - - x64 - - - Application - v143 - - MultiByte - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\ - $(Configuration)\ - false - - - - Disabled - %(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - - - TurnOffAllWarnings - - - - - - false - Console - - - - for %%i in (cl.exe) do %40echo CMAKE_CXX_COMPILER=%%~$PATH:i - - - - - - - - - - diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj deleted file mode 100644 index 68cc2721452ee82a3123a13ff4d10c616e4f3547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2397 zcmb_eO>7%Q6n>j^(vp_cNvXt7TUKTf0m0(LX%Yewj_o+Hh?6vSnh3ix8}B;V*j~Hq zbsF`6O41fZ0jcV};zzwBgg5{ye+5x0esbW%4IvN+4nWik1x4bW1`G4;01tsBl47WNb5*s65Jck==Zx&W(+`rOF4mXCl;hb(xv0jq5_&>X|F9H%q+DCg_hqA%aurb{p+pxJvN5^~78i$2 zpHx{~ff0D3n_C3fhW+pW?5snhPilFiQmYh9p?CH{VY+H+W$l!vF9}WtTKvBdIy(;N zWcD%3kD4}sgF8|0XO@8a0J9QP@#&Gg{T&(F*W-u-c<|h+YSgrfo(VGPdrY#75Hmud zBmE&82?nijE52Hi%|gW}XXZ6sshq5#kL8t({BmY(aKIVYOj%cCL&+&>L9Um~Odq+J zFg{*(Ri_2i8jR_9{5VW(rbYkeq_}&2V&iB3Cq9uvCh{>+nAp0V?0xV0xUIb+e|77F zO`rJRJum)G*|u;I8z1>|R}SIgZo}q-A=F*WI*OVO%Lhf&G@}pBqV8eVOQ`Q)7T47V zT|J#u9Izig^(6OT<1xmu=n5QW7^;Tcg_gHM-OZ5o`wv`witqk0P`tvwSxjGic;Jge zzdgS3g7C&KbK370p8w&#^WSAUp8Yg1upW#NJn{@=G3`yKMWmX|Sc{Pzf z9MK6_nXRZ{SnzNXIHD7GafX9H2iwd;KLpC`=Jdm959b_?1Z-~30KANdmB;;D&>rv{ zJs9*zjNI^zVuwCbJGalrim?LrUFQ5mD}sazWzx2f2DZJUgP=hb|U*j}@_xCY(&27vEv#5xc6<3ztf zYlXK){b5Hj4oI%23ST6Qnz8-Ot_PDmsp*AE&Z(&3aA;;M5*v%yxLrsQJ{pNRpi?GW z$y6p=v68GW)$xtWwbsmkB;Hy)o7CKFI+{!9ni-L6DzH&%xo%>u)|%)Q Q4}xWTf*MEQ32toh-x2h#$N&HU diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.txt b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.txt deleted file mode 100644 index 13abbbb2..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.txt +++ /dev/null @@ -1 +0,0 @@ -F:/App/VisualStudio/IDE/MSBuild/Microsoft/VC/v170 diff --git a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.vcxproj b/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.vcxproj deleted file mode 100644 index ccb7d625..00000000 --- a/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/VCTargetsPath.vcxproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - - Debug - x64 - - - - {F3FC6D86-508D-3FB1-96D2-995F08B142EC} - Win32Proj - x64 - 10.0.22621.0 - - - - x64 - - - Utility - MultiByte - v143 - - - - - echo VCTargetsPath=$(VCTargetsPath) - - - - diff --git a/m_packages/squirrel/build/CMakeFiles/6f6c1b78d3fa4aa1fa866d53d1849ec9/INSTALL_force.rule b/m_packages/squirrel/build/CMakeFiles/6f6c1b78d3fa4aa1fa866d53d1849ec9/INSTALL_force.rule deleted file mode 100644 index 2d3998c9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/6f6c1b78d3fa4aa1fa866d53d1849ec9/INSTALL_force.rule +++ /dev/null @@ -1 +0,0 @@ -# generated from CMake diff --git a/m_packages/squirrel/build/CMakeFiles/CMakeConfigureLog.yaml b/m_packages/squirrel/build/CMakeFiles/CMakeConfigureLog.yaml deleted file mode 100644 index a63b9003..00000000 --- a/m_packages/squirrel/build/CMakeFiles/CMakeConfigureLog.yaml +++ /dev/null @@ -1,231 +0,0 @@ - ---- -events: - - - kind: "message-v1" - backtrace: - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)" - - "CMakeLists.txt:2 (project)" - message: | - The system is: Windows - 10.0.22631 - AMD64 - - - kind: "message-v1" - backtrace: - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. - Compiler: - Build flags: - Id flags: - - The output was: - 0 - 适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857 - 生成启动时间为 2024/5/4 23:36:41。 - - 节点 1 上的项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdC\\CompilerIdC.vcxproj”(默认目标)。 - PrepareForBuild: - 正在创建目录“Debug\\”。 - 已启用结构化输出。编译器诊断的格式设置将反映错误层次结构。有关详细信息,请参阅 https://aka.ms/cpp/structured-output。 - 正在创建目录“Debug\\CompilerIdC.tlog\\”。 - InitializeBuildStatus: - 正在创建“Debug\\CompilerIdC.tlog\\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 - 正在对“Debug\\CompilerIdC.tlog\\unsuccessfulbuild”执行 Touch 任务。 - ClCompile: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\\\" /Fd"Debug\\vc143.pdb" /external:W0 /Gd /TC /FC /errorReport:queue CMakeCCompilerId.c - CMakeCCompilerId.c - Link: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:".\\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\\CompilerIdC.lib" /MACHINE:X64 Debug\\CMakeCCompilerId.obj - CompilerIdC.vcxproj -> F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdC\\CompilerIdC.exe - PostBuildEvent: - for %%i in (cl.exe) do @echo CMAKE_C_COMPILER=%%~$PATH:i - :VCEnd - CMAKE_C_COMPILER=F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\cl.exe - FinalizeBuildStatus: - 正在删除文件“Debug\\CompilerIdC.tlog\\unsuccessfulbuild”。 - 正在对“Debug\\CompilerIdC.tlog\\CompilerIdC.lastbuildstate”执行 Touch 任务。 - 已完成生成项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdC\\CompilerIdC.vcxproj”(默认目标)的操作。 - - 已成功生成。 - 0 个警告 - 0 个错误 - - 已用时间 00:00:00.77 - - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CompilerIdC.exe" - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CompilerIdC.vcxproj" - - The C compiler identification is MSVC, found in: - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdC/CompilerIdC.exe - - - - kind: "message-v1" - backtrace: - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. - Compiler: - Build flags: - Id flags: - - The output was: - 0 - 适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857 - 生成启动时间为 2024/5/4 23:36:42。 - - 节点 1 上的项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdCXX\\CompilerIdCXX.vcxproj”(默认目标)。 - PrepareForBuild: - 正在创建目录“Debug\\”。 - 已启用结构化输出。编译器诊断的格式设置将反映错误层次结构。有关详细信息,请参阅 https://aka.ms/cpp/structured-output。 - 正在创建目录“Debug\\CompilerIdCXX.tlog\\”。 - InitializeBuildStatus: - 正在创建“Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 - 正在对“Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild”执行 Touch 任务。 - ClCompile: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\\\" /Fd"Debug\\vc143.pdb" /external:W0 /Gd /TP /FC /errorReport:queue CMakeCXXCompilerId.cpp - CMakeCXXCompilerId.cpp - Link: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:".\\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\\CompilerIdCXX.lib" /MACHINE:X64 Debug\\CMakeCXXCompilerId.obj - CompilerIdCXX.vcxproj -> F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdCXX\\CompilerIdCXX.exe - PostBuildEvent: - for %%i in (cl.exe) do @echo CMAKE_CXX_COMPILER=%%~$PATH:i - :VCEnd - CMAKE_CXX_COMPILER=F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64\\cl.exe - FinalizeBuildStatus: - 正在删除文件“Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild”。 - 正在对“Debug\\CompilerIdCXX.tlog\\CompilerIdCXX.lastbuildstate”执行 Touch 任务。 - 已完成生成项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\3.28.0-msvc1\\CompilerIdCXX\\CompilerIdCXX.vcxproj”(默认目标)的操作。 - - 已成功生成。 - 0 个警告 - 0 个错误 - - 已用时间 00:00:00.50 - - - Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.exe" - - Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.vcxproj" - - The CXX compiler identification is MSVC, found in: - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CompilerIdCXX/CompilerIdCXX.exe - - - - kind: "try_compile-v1" - backtrace: - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - checks: - - "Detecting C compiler ABI info" - directories: - source: "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-u9cfaw" - binary: "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-u9cfaw" - cmakeVariables: - CMAKE_C_FLAGS: "/DWIN32 /D_WINDOWS /W3" - CMAKE_C_FLAGS_DEBUG: "/MDd /Zi /Ob0 /Od /RTC1" - CMAKE_EXE_LINKER_FLAGS: "/machine:x64" - buildResult: - variable: "CMAKE_C_ABI_COMPILED" - cached: true - stdout: | - Change Dir: 'F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-u9cfaw' - - Run Build Command(s): F:/App/VisualStudio/IDE/MSBuild/Current/Bin/amd64/MSBuild.exe cmTC_3b6af.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n - 适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857 - 生成启动时间为 2024/5/4 23:36:43。 - - 节点 1 上的项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-u9cfaw\\cmTC_3b6af.vcxproj”(默认目标)。 - PrepareForBuild: - 正在创建目录“cmTC_3b6af.dir\\Debug\\”。 - 已启用结构化输出。编译器诊断的格式设置将反映错误层次结构。有关详细信息,请参阅 https://aka.ms/cpp/structured-output。 - 正在创建目录“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-u9cfaw\\Debug\\”。 - 正在创建目录“cmTC_3b6af.dir\\Debug\\cmTC_3b6af.tlog\\”。 - InitializeBuildStatus: - 正在创建“cmTC_3b6af.dir\\Debug\\cmTC_3b6af.tlog\\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 - 正在对“cmTC_3b6af.dir\\Debug\\cmTC_3b6af.tlog\\unsuccessfulbuild”执行 Touch 任务。 - ClCompile: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\CL.exe /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\\"Debug\\"" /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_3b6af.dir\\Debug\\\\" /Fd"cmTC_3b6af.dir\\Debug\\vc143.pdb" /external:W3 /Gd /TC /errorReport:queue "F:\\App\\VisualStudio\\IDE\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\share\\cmake-3.28\\Modules\\CMakeCCompilerABI.c" - 用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.39.33523 版 - 版权所有(C) Microsoft Corporation。保留所有权利。 - cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\\"Debug\\"" /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_3b6af.dir\\Debug\\\\" /Fd"cmTC_3b6af.dir\\Debug\\vc143.pdb" /external:W3 /Gd /TC /errorReport:queue "F:\\App\\VisualStudio\\IDE\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\share\\cmake-3.28\\Modules\\CMakeCCompilerABI.c" - CMakeCCompilerABI.c - Link: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:"F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-u9cfaw\\Debug\\cmTC_3b6af.exe" /INCREMENTAL /ILK:"cmTC_3b6af.dir\\Debug\\cmTC_3b6af.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-u9cfaw/Debug/cmTC_3b6af.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-u9cfaw/Debug/cmTC_3b6af.lib" /MACHINE:X64 /machine:x64 cmTC_3b6af.dir\\Debug\\CMakeCCompilerABI.obj - cmTC_3b6af.vcxproj -> F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-u9cfaw\\Debug\\cmTC_3b6af.exe - FinalizeBuildStatus: - 正在删除文件“cmTC_3b6af.dir\\Debug\\cmTC_3b6af.tlog\\unsuccessfulbuild”。 - 正在对“cmTC_3b6af.dir\\Debug\\cmTC_3b6af.tlog\\cmTC_3b6af.lastbuildstate”执行 Touch 任务。 - 已完成生成项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-u9cfaw\\cmTC_3b6af.vcxproj”(默认目标)的操作。 - - 已成功生成。 - 0 个警告 - 0 个错误 - - 已用时间 00:00:00.49 - - exitCode: 0 - - - kind: "try_compile-v1" - backtrace: - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" - - "F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - checks: - - "Detecting CXX compiler ABI info" - directories: - source: "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-eg9cwy" - binary: "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-eg9cwy" - cmakeVariables: - CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /W3 /GR /EHsc" - CMAKE_CXX_FLAGS_DEBUG: "/MDd /Zi /Ob0 /Od /RTC1" - CMAKE_EXE_LINKER_FLAGS: "/machine:x64" - buildResult: - variable: "CMAKE_CXX_ABI_COMPILED" - cached: true - stdout: | - Change Dir: 'F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-eg9cwy' - - Run Build Command(s): F:/App/VisualStudio/IDE/MSBuild/Current/Bin/amd64/MSBuild.exe cmTC_003f8.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n - 适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857 - 生成启动时间为 2024/5/4 23:36:44。 - - 节点 1 上的项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-eg9cwy\\cmTC_003f8.vcxproj”(默认目标)。 - PrepareForBuild: - 正在创建目录“cmTC_003f8.dir\\Debug\\”。 - 已启用结构化输出。编译器诊断的格式设置将反映错误层次结构。有关详细信息,请参阅 https://aka.ms/cpp/structured-output。 - 正在创建目录“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-eg9cwy\\Debug\\”。 - 正在创建目录“cmTC_003f8.dir\\Debug\\cmTC_003f8.tlog\\”。 - InitializeBuildStatus: - 正在创建“cmTC_003f8.dir\\Debug\\cmTC_003f8.tlog\\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 - 正在对“cmTC_003f8.dir\\Debug\\cmTC_003f8.tlog\\unsuccessfulbuild”执行 Touch 任务。 - ClCompile: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\CL.exe /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\\"Debug\\"" /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_003f8.dir\\Debug\\\\" /Fd"cmTC_003f8.dir\\Debug\\vc143.pdb" /external:W3 /Gd /TP /errorReport:queue "F:\\App\\VisualStudio\\IDE\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\share\\cmake-3.28\\Modules\\CMakeCXXCompilerABI.cpp" - 用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.39.33523 版 - 版权所有(C) Microsoft Corporation。保留所有权利。 - cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\\"Debug\\"" /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_003f8.dir\\Debug\\\\" /Fd"cmTC_003f8.dir\\Debug\\vc143.pdb" /external:W3 /Gd /TP /errorReport:queue "F:\\App\\VisualStudio\\IDE\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\share\\cmake-3.28\\Modules\\CMakeCXXCompilerABI.cpp" - CMakeCXXCompilerABI.cpp - Link: - F:\\App\\VisualStudio\\IDE\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:"F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-eg9cwy\\Debug\\cmTC_003f8.exe" /INCREMENTAL /ILK:"cmTC_003f8.dir\\Debug\\cmTC_003f8.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-eg9cwy/Debug/cmTC_003f8.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/CMakeScratch/TryCompile-eg9cwy/Debug/cmTC_003f8.lib" /MACHINE:X64 /machine:x64 cmTC_003f8.dir\\Debug\\CMakeCXXCompilerABI.obj - cmTC_003f8.vcxproj -> F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-eg9cwy\\Debug\\cmTC_003f8.exe - FinalizeBuildStatus: - 正在删除文件“cmTC_003f8.dir\\Debug\\cmTC_003f8.tlog\\unsuccessfulbuild”。 - 正在对“cmTC_003f8.dir\\Debug\\cmTC_003f8.tlog\\cmTC_003f8.lastbuildstate”执行 Touch 任务。 - 已完成生成项目“F:\\Magic_Game\\project\\Magic_Game\\m_packages\\squirrel\\build\\CMakeFiles\\CMakeScratch\\TryCompile-eg9cwy\\cmTC_003f8.vcxproj”(默认目标)的操作。 - - 已成功生成。 - 0 个警告 - 0 个错误 - - 已用时间 00:00:00.47 - - exitCode: 0 -... diff --git a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-debug.cmake b/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-debug.cmake deleted file mode 100644 index e2a420d0..00000000 --- a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-debug.cmake +++ /dev/null @@ -1,67 +0,0 @@ -#---------------------------------------------------------------- -# Generated CMake target import file for configuration "Debug". -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Import target "squirrel::squirrel" for configuration "Debug" -set_property(TARGET squirrel::squirrel APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::squirrel PROPERTIES - IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/squirrel.lib" - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/squirrel.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel "${_IMPORT_PREFIX}/lib/squirrel.lib" "${_IMPORT_PREFIX}/bin/squirrel.dll" ) - -# Import target "squirrel::squirrel_static" for configuration "Debug" -set_property(TARGET squirrel::squirrel_static APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::squirrel_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/squirrel_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel_static ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel_static "${_IMPORT_PREFIX}/lib/squirrel_static.lib" ) - -# Import target "squirrel::sqstdlib" for configuration "Debug" -set_property(TARGET squirrel::sqstdlib APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::sqstdlib PROPERTIES - IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/sqstdlib.lib" - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/sqstdlib.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib "${_IMPORT_PREFIX}/lib/sqstdlib.lib" "${_IMPORT_PREFIX}/bin/sqstdlib.dll" ) - -# Import target "squirrel::sqstdlib_static" for configuration "Debug" -set_property(TARGET squirrel::sqstdlib_static APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::sqstdlib_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib_static ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib_static "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" ) - -# Import target "squirrel::interpreter" for configuration "Debug" -set_property(TARGET squirrel::interpreter APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::interpreter PROPERTIES - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/sq.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter "${_IMPORT_PREFIX}/bin/sq.exe" ) - -# Import target "squirrel::interpreter_static" for configuration "Debug" -set_property(TARGET squirrel::interpreter_static APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(squirrel::interpreter_static PROPERTIES - IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/sq_static.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter_static ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter_static "${_IMPORT_PREFIX}/bin/sq_static.exe" ) - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) diff --git a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-minsizerel.cmake b/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-minsizerel.cmake deleted file mode 100644 index 501b9e3f..00000000 --- a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-minsizerel.cmake +++ /dev/null @@ -1,67 +0,0 @@ -#---------------------------------------------------------------- -# Generated CMake target import file for configuration "MinSizeRel". -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Import target "squirrel::squirrel" for configuration "MinSizeRel" -set_property(TARGET squirrel::squirrel APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::squirrel PROPERTIES - IMPORTED_IMPLIB_MINSIZEREL "${_IMPORT_PREFIX}/lib/squirrel.lib" - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/bin/squirrel.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel "${_IMPORT_PREFIX}/lib/squirrel.lib" "${_IMPORT_PREFIX}/bin/squirrel.dll" ) - -# Import target "squirrel::squirrel_static" for configuration "MinSizeRel" -set_property(TARGET squirrel::squirrel_static APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::squirrel_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_MINSIZEREL "CXX" - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/lib/squirrel_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel_static ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel_static "${_IMPORT_PREFIX}/lib/squirrel_static.lib" ) - -# Import target "squirrel::sqstdlib" for configuration "MinSizeRel" -set_property(TARGET squirrel::sqstdlib APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::sqstdlib PROPERTIES - IMPORTED_IMPLIB_MINSIZEREL "${_IMPORT_PREFIX}/lib/sqstdlib.lib" - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/bin/sqstdlib.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib "${_IMPORT_PREFIX}/lib/sqstdlib.lib" "${_IMPORT_PREFIX}/bin/sqstdlib.dll" ) - -# Import target "squirrel::sqstdlib_static" for configuration "MinSizeRel" -set_property(TARGET squirrel::sqstdlib_static APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::sqstdlib_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_MINSIZEREL "CXX" - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib_static ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib_static "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" ) - -# Import target "squirrel::interpreter" for configuration "MinSizeRel" -set_property(TARGET squirrel::interpreter APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::interpreter PROPERTIES - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/bin/sq.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter "${_IMPORT_PREFIX}/bin/sq.exe" ) - -# Import target "squirrel::interpreter_static" for configuration "MinSizeRel" -set_property(TARGET squirrel::interpreter_static APPEND PROPERTY IMPORTED_CONFIGURATIONS MINSIZEREL) -set_target_properties(squirrel::interpreter_static PROPERTIES - IMPORTED_LOCATION_MINSIZEREL "${_IMPORT_PREFIX}/bin/sq_static.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter_static ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter_static "${_IMPORT_PREFIX}/bin/sq_static.exe" ) - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) diff --git a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-release.cmake b/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-release.cmake deleted file mode 100644 index 5eb6a10c..00000000 --- a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-release.cmake +++ /dev/null @@ -1,67 +0,0 @@ -#---------------------------------------------------------------- -# Generated CMake target import file for configuration "Release". -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Import target "squirrel::squirrel" for configuration "Release" -set_property(TARGET squirrel::squirrel APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::squirrel PROPERTIES - IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/squirrel.lib" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/squirrel.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel "${_IMPORT_PREFIX}/lib/squirrel.lib" "${_IMPORT_PREFIX}/bin/squirrel.dll" ) - -# Import target "squirrel::squirrel_static" for configuration "Release" -set_property(TARGET squirrel::squirrel_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::squirrel_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/squirrel_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel_static ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel_static "${_IMPORT_PREFIX}/lib/squirrel_static.lib" ) - -# Import target "squirrel::sqstdlib" for configuration "Release" -set_property(TARGET squirrel::sqstdlib APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::sqstdlib PROPERTIES - IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/sqstdlib.lib" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/sqstdlib.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib "${_IMPORT_PREFIX}/lib/sqstdlib.lib" "${_IMPORT_PREFIX}/bin/sqstdlib.dll" ) - -# Import target "squirrel::sqstdlib_static" for configuration "Release" -set_property(TARGET squirrel::sqstdlib_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::sqstdlib_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib_static ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib_static "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" ) - -# Import target "squirrel::interpreter" for configuration "Release" -set_property(TARGET squirrel::interpreter APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::interpreter PROPERTIES - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/sq.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter "${_IMPORT_PREFIX}/bin/sq.exe" ) - -# Import target "squirrel::interpreter_static" for configuration "Release" -set_property(TARGET squirrel::interpreter_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(squirrel::interpreter_static PROPERTIES - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/sq_static.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter_static ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter_static "${_IMPORT_PREFIX}/bin/sq_static.exe" ) - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) diff --git a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-relwithdebinfo.cmake b/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-relwithdebinfo.cmake deleted file mode 100644 index 585211d9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-relwithdebinfo.cmake +++ /dev/null @@ -1,67 +0,0 @@ -#---------------------------------------------------------------- -# Generated CMake target import file for configuration "RelWithDebInfo". -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Import target "squirrel::squirrel" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::squirrel APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::squirrel PROPERTIES - IMPORTED_IMPLIB_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/squirrel.lib" - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/bin/squirrel.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel "${_IMPORT_PREFIX}/lib/squirrel.lib" "${_IMPORT_PREFIX}/bin/squirrel.dll" ) - -# Import target "squirrel::squirrel_static" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::squirrel_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::squirrel_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELWITHDEBINFO "CXX" - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/squirrel_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::squirrel_static ) -list(APPEND _cmake_import_check_files_for_squirrel::squirrel_static "${_IMPORT_PREFIX}/lib/squirrel_static.lib" ) - -# Import target "squirrel::sqstdlib" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::sqstdlib APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::sqstdlib PROPERTIES - IMPORTED_IMPLIB_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/sqstdlib.lib" - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/bin/sqstdlib.dll" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib "${_IMPORT_PREFIX}/lib/sqstdlib.lib" "${_IMPORT_PREFIX}/bin/sqstdlib.dll" ) - -# Import target "squirrel::sqstdlib_static" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::sqstdlib_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::sqstdlib_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELWITHDEBINFO "CXX" - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" - ) - -list(APPEND _cmake_import_check_targets squirrel::sqstdlib_static ) -list(APPEND _cmake_import_check_files_for_squirrel::sqstdlib_static "${_IMPORT_PREFIX}/lib/sqstdlib_static.lib" ) - -# Import target "squirrel::interpreter" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::interpreter APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::interpreter PROPERTIES - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/bin/sq.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter "${_IMPORT_PREFIX}/bin/sq.exe" ) - -# Import target "squirrel::interpreter_static" for configuration "RelWithDebInfo" -set_property(TARGET squirrel::interpreter_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO) -set_target_properties(squirrel::interpreter_static PROPERTIES - IMPORTED_LOCATION_RELWITHDEBINFO "${_IMPORT_PREFIX}/bin/sq_static.exe" - ) - -list(APPEND _cmake_import_check_targets squirrel::interpreter_static ) -list(APPEND _cmake_import_check_files_for_squirrel::interpreter_static "${_IMPORT_PREFIX}/bin/sq_static.exe" ) - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) diff --git a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake b/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake deleted file mode 100644 index d51978c6..00000000 --- a/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake +++ /dev/null @@ -1,148 +0,0 @@ -# Generated by CMake - -if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8) - message(FATAL_ERROR "CMake >= 2.8.0 required") -endif() -if(CMAKE_VERSION VERSION_LESS "2.8.3") - message(FATAL_ERROR "CMake >= 2.8.3 required") -endif() -cmake_policy(PUSH) -cmake_policy(VERSION 2.8.3...3.26) -#---------------------------------------------------------------- -# Generated CMake target import file. -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Protect against multiple inclusion, which would fail when already imported targets are added once more. -set(_cmake_targets_defined "") -set(_cmake_targets_not_defined "") -set(_cmake_expected_targets "") -foreach(_cmake_expected_target IN ITEMS squirrel::squirrel squirrel::squirrel_static squirrel::sqstdlib squirrel::sqstdlib_static squirrel::interpreter squirrel::interpreter_static) - list(APPEND _cmake_expected_targets "${_cmake_expected_target}") - if(TARGET "${_cmake_expected_target}") - list(APPEND _cmake_targets_defined "${_cmake_expected_target}") - else() - list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}") - endif() -endforeach() -unset(_cmake_expected_target) -if(_cmake_targets_defined STREQUAL _cmake_expected_targets) - unset(_cmake_targets_defined) - unset(_cmake_targets_not_defined) - unset(_cmake_expected_targets) - unset(CMAKE_IMPORT_FILE_VERSION) - cmake_policy(POP) - return() -endif() -if(NOT _cmake_targets_defined STREQUAL "") - string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}") - string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}") - message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n") -endif() -unset(_cmake_targets_defined) -unset(_cmake_targets_not_defined) -unset(_cmake_expected_targets) - - -# Compute the installation prefix relative to this file. -get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -if(_IMPORT_PREFIX STREQUAL "/") - set(_IMPORT_PREFIX "") -endif() - -# Create imported target squirrel::squirrel -add_library(squirrel::squirrel SHARED IMPORTED) - -set_target_properties(squirrel::squirrel PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target squirrel::squirrel_static -add_library(squirrel::squirrel_static STATIC IMPORTED) - -set_target_properties(squirrel::squirrel_static PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target squirrel::sqstdlib -add_library(squirrel::sqstdlib SHARED IMPORTED) - -set_target_properties(squirrel::sqstdlib PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "squirrel::squirrel" -) - -# Create imported target squirrel::sqstdlib_static -add_library(squirrel::sqstdlib_static STATIC IMPORTED) - -set_target_properties(squirrel::sqstdlib_static PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target squirrel::interpreter -add_executable(squirrel::interpreter IMPORTED) - -set_target_properties(squirrel::interpreter PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target squirrel::interpreter_static -add_executable(squirrel::interpreter_static IMPORTED) - -set_target_properties(squirrel::interpreter_static PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "_SQ64" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -if(CMAKE_VERSION VERSION_LESS 2.8.12) - message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") -endif() - -# Load information for each installed configuration. -file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/squirrel-targets-*.cmake") -foreach(_cmake_config_file IN LISTS _cmake_config_files) - include("${_cmake_config_file}") -endforeach() -unset(_cmake_config_file) -unset(_cmake_config_files) - -# Cleanup temporary variables. -set(_IMPORT_PREFIX) - -# Loop over all imported files and verify that they actually exist -foreach(_cmake_target IN LISTS _cmake_import_check_targets) - foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}") - if(NOT EXISTS "${_cmake_file}") - message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file - \"${_cmake_file}\" -but this file does not exist. Possible reasons include: -* The file was deleted, renamed, or moved to another location. -* An install or uninstall procedure did not complete successfully. -* The installation package was faulty and contained - \"${CMAKE_CURRENT_LIST_FILE}\" -but not all the files it references. -") - endif() - endforeach() - unset(_cmake_file) - unset("_cmake_import_check_files_for_${_cmake_target}") -endforeach() -unset(_cmake_target) -unset(_cmake_import_check_targets) - -# This file does not depend on other imported targets which have -# been exported from the same project but in a separate export set. - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) -cmake_policy(POP) diff --git a/m_packages/squirrel/build/CMakeFiles/TargetDirectories.txt b/m_packages/squirrel/build/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index bfaccccf..00000000 --- a/m_packages/squirrel/build/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,12 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/INSTALL.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/ALL_BUILD.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/ZERO_CHECK.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/squirrel.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/squirrel_static.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/INSTALL.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/sqstdlib.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/sqstdlib_static.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/INSTALL.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/sq.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/sq_static.dir -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/INSTALL.dir diff --git a/m_packages/squirrel/build/CMakeFiles/b34ac901fce3c2e1922e2b52d85c0d4c/INSTALL_force.rule b/m_packages/squirrel/build/CMakeFiles/b34ac901fce3c2e1922e2b52d85c0d4c/INSTALL_force.rule deleted file mode 100644 index 2d3998c9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/b34ac901fce3c2e1922e2b52d85c0d4c/INSTALL_force.rule +++ /dev/null @@ -1 +0,0 @@ -# generated from CMake diff --git a/m_packages/squirrel/build/CMakeFiles/cmake.check_cache b/m_packages/squirrel/build/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd731..00000000 --- a/m_packages/squirrel/build/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/INSTALL_force.rule b/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/INSTALL_force.rule deleted file mode 100644 index 2d3998c9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/INSTALL_force.rule +++ /dev/null @@ -1 +0,0 @@ -# generated from CMake diff --git a/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/generate.stamp.rule b/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/generate.stamp.rule deleted file mode 100644 index 2d3998c9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/d5d6cdf48f9ac7620d3df431553ba7c5/generate.stamp.rule +++ /dev/null @@ -1 +0,0 @@ -# generated from CMake diff --git a/m_packages/squirrel/build/CMakeFiles/d91de6650e51076a2ccfc3e8eeefc1fd/INSTALL_force.rule b/m_packages/squirrel/build/CMakeFiles/d91de6650e51076a2ccfc3e8eeefc1fd/INSTALL_force.rule deleted file mode 100644 index 2d3998c9..00000000 --- a/m_packages/squirrel/build/CMakeFiles/d91de6650e51076a2ccfc3e8eeefc1fd/INSTALL_force.rule +++ /dev/null @@ -1 +0,0 @@ -# generated from CMake diff --git a/m_packages/squirrel/build/CMakeFiles/generate.stamp b/m_packages/squirrel/build/CMakeFiles/generate.stamp deleted file mode 100644 index 9b5f49fa..00000000 --- a/m_packages/squirrel/build/CMakeFiles/generate.stamp +++ /dev/null @@ -1 +0,0 @@ -# CMake generation timestamp file for this directory. diff --git a/m_packages/squirrel/build/CMakeFiles/generate.stamp.depend b/m_packages/squirrel/build/CMakeFiles/generate.stamp.depend deleted file mode 100644 index f0e5fd3f..00000000 --- a/m_packages/squirrel/build/CMakeFiles/generate.stamp.depend +++ /dev/null @@ -1,110 +0,0 @@ -# CMake generation dependency list for this directory. -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCCompiler.cmake.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCCompilerABI.c -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCInformation.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCXXCompiler.cmake.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCXXInformation.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeCompilerIdDetection.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompileFeatures.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineRCCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeFindBinUtils.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeGenericSystem.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeInitializeConfigs.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakePackageConfigHelpers.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeParseImplicitIncludeInfo.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeParseImplicitLinkInfo.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeParseLibraryArchitecture.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeRCCompiler.cmake.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeRCInformation.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeSystem.cmake.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeSystemSpecificInformation.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeSystemSpecificInitialize.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CMakeTestRCCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/ADSP-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/ARMCC-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/ARMClang-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/AppleClang-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Borland-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Bruce-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Compaq-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Cray-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/CrayClang-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Embarcadero-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Fujitsu-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/GHS-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/GNU-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/HP-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/HP-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IAR-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Intel-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/LCC-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/MSVC-C.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/MSVC-CXX.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/MSVC-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/MSVC.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/NVHPC-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/NVIDIA-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/OrangeC-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/PGI-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/PathScale-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/SCO-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/SDCC-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/SunPro-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/TI-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Tasking-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/Watcom-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/XL-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/XL-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/XLClang-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/zOS-C-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/CompilerId/VS-10.vcxproj.in -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/GNUInstallDirs.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Internal/FeatureTesting.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows-Determine-CXX.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows-Initialize.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows-MSVC-C.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows-MSVC-CXX.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows-MSVC.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/Windows.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/Platform/WindowsPaths.cmake -F:/App/VisualStudio/IDE/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/WriteBasicConfigVersionFile.cmake -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/CMakeLists.txt -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCCompiler.cmake -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeCXXCompiler.cmake -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeRCCompiler.cmake -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/3.28.0-msvc1/CMakeSystem.cmake -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel-config.cmake.in -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel.pc.in diff --git a/m_packages/squirrel/build/CMakeFiles/generate.stamp.list b/m_packages/squirrel/build/CMakeFiles/generate.stamp.list deleted file mode 100644 index 1398424e..00000000 --- a/m_packages/squirrel/build/CMakeFiles/generate.stamp.list +++ /dev/null @@ -1,4 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/generate.stamp -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp diff --git a/m_packages/squirrel/build/INSTALL.vcxproj b/m_packages/squirrel/build/INSTALL.vcxproj deleted file mode 100644 index 4b75d440..00000000 --- a/m_packages/squirrel/build/INSTALL.vcxproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9} - Win32Proj - 10.0.22621.0 - x64 - INSTALL - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\INSTALL_force - false - false - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {3A945C97-C785-35A2-B03C-822543E0A519} - ALL_BUILD - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/INSTALL.vcxproj.filters b/m_packages/squirrel/build/INSTALL.vcxproj.filters deleted file mode 100644 index 90d40387..00000000 --- a/m_packages/squirrel/build/INSTALL.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Rules - - - - - {8BED4A11-8ACD-34FD-9D19-3930C61B3F88} - - - diff --git a/m_packages/squirrel/build/ZERO_CHECK.vcxproj b/m_packages/squirrel/build/ZERO_CHECK.vcxproj deleted file mode 100644 index 243c2d76..00000000 --- a/m_packages/squirrel/build/ZERO_CHECK.vcxproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - x64 - - - false - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - Win32Proj - 10.0.22621.0 - x64 - ZERO_CHECK - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - %(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - - - Always - true - Checking Build System - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel.sln -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sq\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sqstdlib\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel\CMakeLists.txt;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - true - Checking Build System - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel.sln -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sq\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sqstdlib\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel\CMakeLists.txt;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - true - Checking Build System - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel.sln -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sq\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sqstdlib\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel\CMakeLists.txt;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - true - Checking Build System - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel.sln -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCCompilerABI.c;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXCompilerABI.cpp;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCXXInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCommonLanguageInclude.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeCompilerIdDetection.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompileFeatures.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerABI.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineCompilerId.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeDetermineSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeFindBinUtils.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeGenericSystem.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeInitializeConfigs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeLanguageInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakePackageConfigHelpers.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitIncludeInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseImplicitLinkInfo.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeParseLibraryArchitecture.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCCompiler.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeRCInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystem.cmake.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInformation.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeSystemSpecificInitialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCXXCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestCompilerCommon.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CMakeTestRCCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ADSP-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMCC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\ARMClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\AppleClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Borland-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Bruce-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CMakeCommonCompilerMacros.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Clang-DetermineCompilerInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Comeau-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Cray-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\CrayClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Embarcadero-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Fujitsu-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GHS-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\HP-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IAR-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Intel-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVHPC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\NVIDIA-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\OrangeC-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PGI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\PathScale-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SCO-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SDCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TI-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Tasking-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\Watcom-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XL-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-C-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\CompilerId\VS-10.vcxproj.in;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\GNUInstallDirs.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Internal\FeatureTesting.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Determine-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-Initialize.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-C.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC-CXX.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows-MSVC.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\Windows.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\Platform\WindowsPaths.cmake;F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\share\cmake-3.28\Modules\WriteBasicConfigVersionFile.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeCXXCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeRCCompiler.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\3.28.0-msvc1\CMakeSystem.cmake;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sq\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\sqstdlib\CMakeLists.txt;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel-config.cmake.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel.pc.in;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\squirrel\CMakeLists.txt;%(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp;F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - - - - - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/ZERO_CHECK.vcxproj.filters b/m_packages/squirrel/build/ZERO_CHECK.vcxproj.filters deleted file mode 100644 index 8962805c..00000000 --- a/m_packages/squirrel/build/ZERO_CHECK.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Rules - - - - - {8BED4A11-8ACD-34FD-9D19-3930C61B3F88} - - - diff --git a/m_packages/squirrel/build/cmake_install.cmake b/m_packages/squirrel/build/cmake_install.cmake deleted file mode 100644 index 87f8abbc..00000000 --- a/m_packages/squirrel/build/cmake_install.cmake +++ /dev/null @@ -1,113 +0,0 @@ -# Install script for directory: F:/Magic_Game/project/Magic_Game/m_packages/squirrel - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/squirrel") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE FILE FILES - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqconfig.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/squirrel.h" - ) -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE FILE FILES - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdaux.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdblob.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdio.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdmath.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdstring.h" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/include/sqstdsystem.h" - ) -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/cmake/squirrel/squirrel-config-version.cmake" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/cmake/squirrel/squirrel-config.cmake" - ) -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel.pc") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel/squirrel-targets.cmake") - file(DIFFERENT _cmake_export_file_changed FILES - "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel/squirrel-targets.cmake" - "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake") - if(_cmake_export_file_changed) - file(GLOB _cmake_old_config_files "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel/squirrel-targets-*.cmake") - if(_cmake_old_config_files) - string(REPLACE ";" ", " _cmake_old_config_files_text "${_cmake_old_config_files}") - message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel/squirrel-targets.cmake\" will be replaced. Removing files [${_cmake_old_config_files_text}].") - unset(_cmake_old_config_files_text) - file(REMOVE ${_cmake_old_config_files}) - endif() - unset(_cmake_old_config_files) - endif() - unset(_cmake_export_file_changed) - endif() - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets.cmake") - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-debug.cmake") - endif() - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-minsizerel.cmake") - endif() - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-relwithdebinfo.cmake") - endif() - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/squirrel" TYPE FILE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/CMakeFiles/Export/dafcadaba40601724742fc9ee142f030/squirrel-targets-release.cmake") - endif() -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/cmake_install.cmake") - include("F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/cmake_install.cmake") - include("F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/cmake_install.cmake") - -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp b/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp deleted file mode 100644 index 9b5f49fa..00000000 --- a/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp +++ /dev/null @@ -1 +0,0 @@ -# CMake generation timestamp file for this directory. diff --git a/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp.depend b/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp.depend deleted file mode 100644 index f78e38ed..00000000 --- a/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp.depend +++ /dev/null @@ -1,2 +0,0 @@ -# CMake generation dependency list for this directory. -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt diff --git a/m_packages/squirrel/build/sq/INSTALL.vcxproj b/m_packages/squirrel/build/sq/INSTALL.vcxproj deleted file mode 100644 index 9bea8aec..00000000 --- a/m_packages/squirrel/build/sq/INSTALL.vcxproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9} - Win32Proj - 10.0.22621.0 - x64 - INSTALL - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\INSTALL_force - false - false - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {3A945C97-C785-35A2-B03C-822543E0A519} - ALL_BUILD - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sq/INSTALL.vcxproj.filters b/m_packages/squirrel/build/sq/INSTALL.vcxproj.filters deleted file mode 100644 index 336e5e7e..00000000 --- a/m_packages/squirrel/build/sq/INSTALL.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Rules - - - - - {8BED4A11-8ACD-34FD-9D19-3930C61B3F88} - - - diff --git a/m_packages/squirrel/build/sq/cmake_install.cmake b/m_packages/squirrel/build/sq/cmake_install.cmake deleted file mode 100644 index 19657808..00000000 --- a/m_packages/squirrel/build/sq/cmake_install.cmake +++ /dev/null @@ -1,58 +0,0 @@ -# Install script for directory: F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/squirrel") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Runtime" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sq.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sq.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sq.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sq.exe") - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Runtime" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sq_static.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sq_static.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sq_static.exe") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sq_static.exe") - endif() -endif() - diff --git a/m_packages/squirrel/build/sq/sq.vcxproj b/m_packages/squirrel/build/sq/sq.vcxproj deleted file mode 100644 index 353449e3..00000000 --- a/m_packages/squirrel/build/sq/sq.vcxproj +++ /dev/null @@ -1,337 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184} - Win32Proj - 10.0.22621.0 - x64 - sq - NoUpgrade - - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Debug\ - sq.dir\Debug\ - sq - .exe - true - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Release\ - sq.dir\Release\ - sq - .exe - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\MinSizeRel\ - sq.dir\MinSizeRel\ - sq - .exe - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\RelWithDebInfo\ - sq.dir\RelWithDebInfo\ - sq - .exe - true - true - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - - - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\Debug\sqstdlib.lib;..\lib\Debug\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/sq.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sq.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - - - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\Release\sqstdlib.lib;..\lib\Release\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/sq.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sq.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - - - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\MinSizeRel\sqstdlib.lib;..\lib\MinSizeRel\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/sq.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sq.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - - - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\RelWithDebInfo\sqstdlib.lib;..\lib\RelWithDebInfo\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/sq.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sq.pdb - Console - - - false - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {A08064B5-BCE0-3321-89AE-9702449A7DAB} - sqstdlib - - - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - squirrel - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sq/sq.vcxproj.filters b/m_packages/squirrel/build/sq/sq.vcxproj.filters deleted file mode 100644 index 461e52c3..00000000 --- a/m_packages/squirrel/build/sq/sq.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/build/sq/sq_static.vcxproj b/m_packages/squirrel/build/sq/sq_static.vcxproj deleted file mode 100644 index c1bc043d..00000000 --- a/m_packages/squirrel/build/sq/sq_static.vcxproj +++ /dev/null @@ -1,337 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {7453F643-9077-3653-9215-251A8BBC9911} - Win32Proj - 10.0.22621.0 - x64 - sq_static - NoUpgrade - - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - Application - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Debug\ - sq_static.dir\Debug\ - sq_static - .exe - true - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Release\ - sq_static.dir\Release\ - sq_static - .exe - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\MinSizeRel\ - sq_static.dir\MinSizeRel\ - sq_static - .exe - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\RelWithDebInfo\ - sq_static.dir\RelWithDebInfo\ - sq_static - .exe - true - true - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - - - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\Debug\squirrel_static.lib;..\lib\Debug\sqstdlib_static.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/sq_static.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sq_static.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - - - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\Release\squirrel_static.lib;..\lib\Release\sqstdlib_static.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/sq_static.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sq_static.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - - - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\MinSizeRel\squirrel_static.lib;..\lib\MinSizeRel\sqstdlib_static.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/sq_static.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sq_static.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - - - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - ..\lib\RelWithDebInfo\squirrel_static.lib;..\lib\RelWithDebInfo\sqstdlib_static.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/sq_static.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sq_static.pdb - Console - - - false - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sq/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sq/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sq\CMakeFiles\generate.stamp - false - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {55256B84-34E3-30E3-8A7C-2F5F832AEA13} - sqstdlib_static - - - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} - squirrel_static - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sq/sq_static.vcxproj.filters b/m_packages/squirrel/build/sq/sq_static.vcxproj.filters deleted file mode 100644 index 461e52c3..00000000 --- a/m_packages/squirrel/build/sq/sq_static.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp b/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp deleted file mode 100644 index 9b5f49fa..00000000 --- a/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp +++ /dev/null @@ -1 +0,0 @@ -# CMake generation timestamp file for this directory. diff --git a/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp.depend b/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp.depend deleted file mode 100644 index e8885eaf..00000000 --- a/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp.depend +++ /dev/null @@ -1,2 +0,0 @@ -# CMake generation dependency list for this directory. -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt diff --git a/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj b/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj deleted file mode 100644 index a341692c..00000000 --- a/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9} - Win32Proj - 10.0.22621.0 - x64 - INSTALL - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\INSTALL_force - false - false - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {3A945C97-C785-35A2-B03C-822543E0A519} - ALL_BUILD - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj.filters b/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj.filters deleted file mode 100644 index b7acf892..00000000 --- a/m_packages/squirrel/build/sqstdlib/INSTALL.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Rules - - - - - {8BED4A11-8ACD-34FD-9D19-3930C61B3F88} - - - diff --git a/m_packages/squirrel/build/sqstdlib/cmake_install.cmake b/m_packages/squirrel/build/sqstdlib/cmake_install.cmake deleted file mode 100644 index 02a52463..00000000 --- a/m_packages/squirrel/build/sqstdlib/cmake_install.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# Install script for directory: F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/squirrel") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Libraries" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/sqstdlib.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/sqstdlib.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/sqstdlib.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/sqstdlib.lib") - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Libraries" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sqstdlib.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sqstdlib.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sqstdlib.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sqstdlib.dll") - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/sqstdlib_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/sqstdlib_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/sqstdlib_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/sqstdlib_static.lib") - endif() -endif() - diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/objects.txt b/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/objects.txt deleted file mode 100644 index 5dbf1230..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/objects.txt +++ /dev/null @@ -1,8 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdaux.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdblob.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdio.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdmath.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdrex.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdstream.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdstring.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/sqstdsystem.obj diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/objects.txt b/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/objects.txt deleted file mode 100644 index 6e036bf9..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/objects.txt +++ /dev/null @@ -1,8 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdaux.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdblob.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdio.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdmath.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdrex.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdstream.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdstring.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/sqstdsystem.obj diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/objects.txt b/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/objects.txt deleted file mode 100644 index 916240c2..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/objects.txt +++ /dev/null @@ -1,8 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdaux.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdblob.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdio.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdmath.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdrex.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdstream.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdstring.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/sqstdsystem.obj diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/objects.txt b/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/objects.txt deleted file mode 100644 index ffd80f0e..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/objects.txt +++ /dev/null @@ -1,8 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdaux.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdblob.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdio.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdmath.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdrex.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdstream.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdstring.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/sqstdsystem.obj diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj b/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj deleted file mode 100644 index af953382..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj +++ /dev/null @@ -1,413 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {A08064B5-BCE0-3321-89AE-9702449A7DAB} - Win32Proj - 10.0.22621.0 - x64 - sqstdlib - NoUpgrade - - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Debug\ - sqstdlib.dir\Debug\ - sqstdlib - .dll - true - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Release\ - sqstdlib.dir\Release\ - sqstdlib - .dll - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\MinSizeRel\ - sqstdlib.dir\MinSizeRel\ - sqstdlib - .dll - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\RelWithDebInfo\ - sqstdlib.dir\RelWithDebInfo\ - sqstdlib - .dll - true - true - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - Sync - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug";sqstdlib_EXPORTS - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\";sqstdlib_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - ..\lib\Debug\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/sqstdlib.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Debug/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/sqstdlib.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release";sqstdlib_EXPORTS - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\";sqstdlib_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - ..\lib\Release\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/sqstdlib.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/Release/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/sqstdlib.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel";sqstdlib_EXPORTS - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\";sqstdlib_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - ..\lib\MinSizeRel\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/sqstdlib.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/MinSizeRel/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/sqstdlib.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - Sync - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo";sqstdlib_EXPORTS - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\";sqstdlib_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - ..\lib\RelWithDebInfo\squirrel.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/sqstdlib.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/sqstdlib.dir/RelWithDebInfo/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/sqstdlib.pdb - Console - - - false - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - squirrel - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj.filters b/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj.filters deleted file mode 100644 index 7ec6b317..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib.vcxproj.filters +++ /dev/null @@ -1,37 +0,0 @@ - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdaux.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdaux.obj deleted file mode 100644 index c333a703da969cf641c90a7357b743b8a012579a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13721 zcmcIqdwf$>ox%26dXrF2~b%r<&7Zprg`18H)(8IC{RfsNufjA)FdtF;s~@n zYV4rsu)_#Gki}KO@wLv1x>P}7WMObnM0|X9KjY5u&>3GSpwj*Qe&^oY+}l($f9&b! zp8W3be80cPIp>~p9}TUW#m-kwuXkO;*gnQfekdBQi?@a4Q&tOtb&zr<|7Pc~{7|^I zb%`~gv~+{8PKOg%PEme5ydrLGYF2Q!gW$?$Y%d&G2Ebv-@mK3{)u8_lFpDk&0ZKnO z(&4f|9|6pA8E5DNS8QZ#HDC@61^|>?IMUgh3i?qwj0NDp(jSg=xc=a1Enw~*LNGQ^ z!L10@#A~}2ADN^oGw1>wnqT-j2@T9-Vwl@)Z=vaFyHes21F`-ZY2s@H%nChD7vC`OwHYu^>Tzl89R$ofdYsN4_TQI)>4%1)B=bmP&jOem z^td$kiUG4wk4s~31z&ueVnliz#v7 zFJ5o@vMNXD&W~!Zw-ErkYPc3DI4j_eWPro?zRUoJezOpqQquJ^;w%~9t_9r83~+gXE6)ID0o=+AaMuBDYX&&j zO4*(aaG38q8Q{?Gry1a|U$U=;Dy5|BXWVwjWq`x$ydVP{&cB;8z|8`jF9Vzda2tBz z{JpNrGQj;;2DnPVU5A~WQiL3^SGROoZ2Hus_9*P) z!m+B@ZLJN_Xt=SewzZ)#1gEihsIj3oDFkEjns`H9eyAZ@RTgdx*TllSt)_KFex&vn zY!7>;81 ziJeu}todU5rxr2s{wdNV&Wmfi<7Hyvka)mhoryZ$(0<;qa<K92`4E0MS zEroh4Nffl$*=WrXJLA?77=D2#alw=LTuhuv<^f5J78B*xYANwY1m{VKH^t6!D`a{| ziS4MEsIm%TqR}dfiMZ7du@waOjRr3~HYZ50aGzaxGs*VhmVO&)gupy-yfo<#yszyx zcjN&=?A&Et1t8gt*tybL4PGUPwsJ4bRVIPP-*cQgGx1)sgPKXEQ*~DtEK0-*mHnviyGs%?@|Iv9O^mlobrv-H3w~i zOSp2KQ@TBg<6wBoXDJiG+%W|P+dN8O;(^zDpa4MZd4mv%qjTWaKFhqZ334)bEQWdx zToC=u8_$7NbI0>guRepjy1C;)k`3p3KyC-Q{mj64;p&SQdwPuKwNC(3>gurG3k|9p z@*ySe;cA|@lsEtZ^c+9kCR2XXn z*{{qwTdkz$#>@*p;L+53%)fjeLi#gsR-b`;j;#3g?Pm(&BUWGR29GkeSYY3Yk7_?tjl@-VG1fX-Y0XiDfwG`<{T}Edn4J9LmlALANkfAr(%NBO`}Pk# zJ)WL7J?)pW&G+np6Da}nU4kpDQUnRE1^N1D-@kP6qJ8-E$FH|>AjRP@F(1@pNLmW@ za*}Yx;u1cH-a)#jpys&WgLEh9-h_HLNgqNznxsom|BR$si2vs#-3AiQMHBlqNTW#l zSCF0|>31OE3^uX-Agv+^H=0h8J_QN4cN6;_q;(`sf-B|MB+UV76G`(x;%izhNcWJg z4J4ePCiW;uJ4kvGq(@159wfY4OzahqaE_SRNst~V>CYfNMAD}qZ6wKHWNZXUW{^gc zBm`(t=aWcTqu>&k2U8h8_{H^j(PPE{;Rb5ADda+FV-CtS6@Kn$^fqGm15TdgP1rX zCXR_+yJ)e{SeFv}Jc+?#;wWtbFh$9F(ynZA_Mtm}kNZF+PF3Yv!5J%xYyTi6La;ZW ziz;jN3L`|w^ML6aT)b~Gq+p@$!26^tNeV%Y4?89rXbVZWk#OAyAnhd`T*ve_!^8{& z`mq6%`(fWQ_0EQ|>*3r8b`&WKq=}?63^cNVuN$j5hfi;4pfUk!&f*fXrjc&+xGXmA z>uh%ICzr8d@yl6OIjmSv@Z!LN5poVrDK6mz=4?dSVUj5&ouApzXryU~D8(*jpvJ-_ zyietJ(I&p-QA#?yHfS_5!*C-T{`!!XoNA7x`61K(i4f?COPIBrbfd4$V%L71#fE<} zh+VNio0+DfZ$6Fj7qjLZ%$iG>HD{xbRd6UJogXhWLe~BJvHssvfvqwE2x<6n@j$U68bkK&2=9vdjAdZQ}bgrKGbP zghm*tY!l0#I)G(Q9?*hlT(p&fOA4Q#T*5vIlg=}s>ove)c!Gi~^mD8ElS}sMGt7BrmMc~<~)7!vW8MH0X>Ftz70OBp{#qj|iduATA z{20y+?LIiremO*3rt_g>P2v+7w5jAo4F)NzRsE*p3_2QZT|%EJP&VFVT$X*=~2+I7ftA(osA{}@v{ z6Zw47&$T(=BM-(n1ar~C>R{G3LKaOh6D>^JHVZUi$T13-D9C6D=ZZl2HUKXSRxEH+ z6@hvQoZ)PaLSMw;*8(WyHPJb05SwbR3C?2hS3_LJ2HKBa_xJXqOKk^Vy>aS-x8^1` zZT zZhL0ij(g9KS)W*OusE`Ff3Z*KFDLXm0hw;OZ%Nn=7K9 z-FlO=$|@au=i~9WT-ZFhY3g+EQ;%27ZvNBmVY7Gap1Hbh2XrNs$L5c4?;E=4q5j2< zFF$ql+=>0S1@_-?cuU8{j^~WyhirW2FK<>{y7SQ)H?P`p>+!Kq%$|J9@{)g_bz;mN zfqMo%?h4;9XM5$glMmnDIR5>6FZ5idSLB4t!|c9fyw${!Yq$Yu9fl zemUq}_sE}pbpG1wU(4QHapS_Rmv*j`UU+t=0>cchh{DOje4Te>+rY+K#-xPvJ zJ;t~u^*fURv_^abp)0B1n2>2Sbn6iCZZ_rn5^nxR1MU&{RcXkFPs6i`fS4X-WYsLHyUt9K=v{JNE=6|+CdLS1Kw}sf)vf0?&)o3AYt%M3@v7_KYgM% z2E7;!xEmt6*n9Y8j)4=pW5eJ6%tF!f8*|iP!T1>ysK!dc;7-qrqN!69go)i2Y>Ci* zh-wA%OAQ83HuTbL?xlIOm*(kS8oX!aMe%h|Q6#;qcP|R&lU|t5dui~2j2DGIb=hdZdq9kH{jKW_Dr=w2 zB8ypgkk)-Bz1^KdI4M&sXMW@QT zhEG{W7>zG{m8a%av$^H0%9<&&2&2i%OspK)*L?@p{YGWsLo*h_XnYYqnb%7Po}90; z;xdcdOw9`)XL*EZ)z!Z8bXKwtH_0r*XnYM#vamNw3m3uND6R!qcF8QlX!5!eT8#z^ z)^I$scl!pF^@hwMjK&u}f2e&peblN0D(k;x7GX5L@Q&SR;CgsVd+xR8RMvMgi!d5r zS805Wx~}4s%DM`JhC&#PFMJ(fG$`YB^4xpBR9TZ`7GX5L@M%iT>+Or({W)Vi? zYox~4WA9$xrLvaDEW&7f;mZltm(@4ksj}9{EW&7f;q$3FH^v@bFxHqHAImJnXjx-Hqxw4Z&AiDfs{pqSD2UOr#(~CYQ2MaqSBo7g>z`#7 zVzjLB#KIV`Ts+nGmdZLVvk;?Y<$*@cYyZ08kE<*Jw>v0^(X!~BQZmA=h4XDH>p_`? z7%gi8Xw)%tDNoMehd;cr9T0wkZCb%JO7!En>7RdagHM4R8_%jNc*#TsF+4qY&nN9c#4RHRX%ZWC%VT;-}&?&^SDX z0I4~=ysj}4YmLHt0x}W5y+sjYafoV(tcUo*OOlT28zVJwxurG|ffqAGj@3nL;&n?~ zYC^Jtazr`4G#Xh>Vc;2j6|Y;?&|DvZcN6%@T%V4jrhK878i^odRa5n>Fv$7vIi2?* zxe$Z}wqUW}X{!j_GS4dr!onm_>5*U(SgGRt&Z6M_Nx|aDK(MwpFK=iLS^J33O8>&u zXRC&+%R)odx797JX=t`ikqzrxxzoN{Id|%ha{Fr41f1H#nrJl*+E6u3+Bh{$+8{Me zoTWslY2vJDa%!3;&Pvq;OV ziNe3F2!)dh3x90=5rmtBslgH(1DIV1PAc*UZimn9wR!wPq19$9oQ|~}D;ri)vI?M7 zo@^jU37!^C7n0U&LW#rc_B)D2vet_2%~&l2VIJPt>R-^HV_+R3yF zVHH^Uup*xnf(K7alMRK_P%N~%DBMD;orp26v=bPV#Yulfc0nozqoS=iC2Jy+QC;%EcAMZ49i=|E&zWh*yOUPQr#gjH?=+7nv(#QI6+BM2 ztq3M8_2*AtP3h*T1G%avl2Va16S#>PPEV)Xx4HvOgTvF<^ zWjsmMekY4G>{O+iEfws3kIz}^_Ga2K>Lp6X)JuUzgq-T9RFPLGbvx`no70`Cm-)$o zrr>GuSG$N-^OQ7ha+OFf$?xU;9!G8zt5&SS$qDBbM9E#^vKRAY>#?;4t46G1S}<-2 zPIr;t>H3G4O|p~{o})zY7yDg4w9XTVnVdQc{6bsFRh#CRyUIgN?3GDv>DB1a+ diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdblob.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdblob.obj deleted file mode 100644 index c9b54e30b9e9f3eac9e32d3d515274ed93fa8761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31006 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 D>jD^Z diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdio.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdio.obj deleted file mode 100644 index 947e60ea2cc3fed30cfc0c50a3a456f3d177ac08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34812 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 - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.log b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.log deleted file mode 100644 index bc4d7978..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.log +++ /dev/null @@ -1,10 +0,0 @@ - sqstdaux.cpp - sqstdblob.cpp - sqstdio.cpp - sqstdmath.cpp - sqstdrex.cpp - sqstdstream.cpp - sqstdstring.cpp - sqstdsystem.cpp - 正在生成代码... - sqstdlib_static.vcxproj -> F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Release\sqstdlib_static.lib diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CL.command.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CL.command.1.tlog deleted file mode 100644 index adea81ff1d4380edf79d618b25f9119ec7efb0d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9770 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 diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.command.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.command.1.tlog deleted file mode 100644 index b7f3569b..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.command.1.tlog +++ /dev/null @@ -1,10 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQSTDLIB\CMAKELISTS.TXT -setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.read.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.read.1.tlog deleted file mode 100644 index 93eabf47..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.read.1.tlog +++ /dev/null @@ -1 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQSTDLIB\CMAKELISTS.TXT diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.write.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.write.1.tlog deleted file mode 100644 index 36aa3696..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/CustomBuild.write.1.tlog +++ /dev/null @@ -1,2 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQSTDLIB\CMAKELISTS.TXT -F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\BUILD\SQSTDLIB\CMAKEFILES\GENERATE.STAMP diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.read.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.read.1.tlog deleted file mode 100644 index 2d7ea0fa55981b0435ff35488125dd478ef6eca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3712 zcmds)O-{ow5JtZ>5?AR0cI@)wmOz@6+Et;d=tVd?@Wu&BQk4sgvT*DfPyCHzKl|tV zQ)@lxtgQ-d)Tq*hvY;Ml-D$60FT7Vu|9Wldv!hR?*Bm7%;v4m*0}=N;K`kw1uD7a3 zYb0ikrNJ`z&s#1;NW@EdR4Y6!)_IH;u*5t@`_9m>ApW~njJRaXUyhWOWXV){)YhQP zqb^%fNzX2|*^2hL(rhO&b+!X~{3{22jXHLDpZY#B4Z>{x?seyg1xw1Awki|+2p>Br z+3QFKjHgp39`!&=(kcJjk(oE{w(^ykYfAc3H|L};W!I$irEbYeU)pZb(xbv9FTE+8 yIPrHPFon0NvKen81!V(IhWl9$d5kzce6jnQoi3(&&3S5#=Yc*6_H>jnv*#DZz9(b= diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.write.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib-link.write.1.tlog deleted file mode 100644 index 07764ce1aa2c4550f08665d43732d59b41c0e755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 zcmds2%MOAt5S+7#zrqK2YfIHCDAJl}LgYvMc6GMJgcv=WY&eweW4cq=o#*3*HC7nV z!eD~{hmot{-qYHl#}PZeJEWgcEps~NIP5cuM`Uco31=eqd^{RjY~DAhCvPNXO;4bw z#Lq1w5fbrIuBu|BU=0(Rrzhqb<(!gdh<`!FiY;rtD`IAOOTtPcw?JkZc}YhlY*liT zj@H>}GD(D;OhAo)W#Jca;FQTic2Pe$%WH@u_viDs{gAuVE#2 diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib.command.1.tlog b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdlib_static.tlog/Lib.command.1.tlog deleted file mode 100644 index eca6f52439308464f056479e2e74c5c72aa46ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2728 zcmds&K}*9x5QV?9;D3<*fO-)Ry(Q_|M%!AO6e<*p6hRMq_TX<<-|R+ALp+EJ!V*HV zJF{=+Wi#)6yx(!bh%Iw6CX^KH^vpDNnq9KunoGSG)IVm;wPvX`1y>%$Q7O0LhP4n^ zx*RjjD>oJwWZ zI@=M0fAWPdp9^l-=U*YC>w95#z==34#KN3lqT9x%F@-e7&eMt8hI7sovDh>B?0Mvg z7akOQZDQYk*}va!eb&D2-!Z!m7YDWNEpZULsvZaRP*3Av_9}1zQyv7 z@2quC_TA_A+rM+}J?Gqg)3jy%BI(G&8LfBPC268XqEgrr4Ts{(!|Y6wn!&K2p`7v0 zQ}U$3mT+@Vo4sCX=>ubZ3Qm^toQ3i5%DBCwQ^Cn#l;;8#4lGtUY5zZEdY zIBq}&-1t06S_20bBb*Fv4*}*7#~JA&F6T^1^1y*56Rs67ze~kMTY~W*<6_-(k|aG3 z82eewHyu7?sa7sb!JPvB8RsyJQpm#ihix*IEu-<~1Fn!`jmC@dd?w>H0ItbIyj3RStq0sKCgMF}GF~s>o;MNi zZzkg%0^D~d;+-|h-2E61xB`yNbU(^X#;XS0A`|genv8cP;I20j?;(@%9tGSVO~iZG zWW0|7_mzowXV}c$k8=Q*&#{^Ahio#Q2XGB0;zdoyy9{vaO~l)3GTt`8^_qzHhRJyE z0q&5AcsZjbp&0E~d4LKk0%nt->yCa}QkatG>b-DTc#ue+}Pmqq!u$u4)fW1g?U=XK7`_t(z{ zLW;A-=c;!2-Szo49LYc7codGfWTE$|^4X34U|S>JQ$CJ3R@!4#=3BOI2a4FwvJ$YNnuy> zCDLqZ&Y6~GN!l+Bmc~optdZ1DeH4AFiDuXqid>*K~$XWq@XZWL*o^*<@`}Tki#{ihK`%HI%GgwY3kdYVz#`YY|y* zs;wV@HJ5y!g4INp1khqL6ofAI$tYhS#)~7wM*8^^V zWP|!wWEDVt9a*!WPLPFHWjXYq9s1e=*lw_~ZynIe`T>~&3+)N*SDxZ{S9xM^Dp=Q3 zDExkG9a)A0NI>N+-xGQrC%2Ro4bu$P?eoFP91R|PFznm~eUL=7<`(W+ zk=>d*ch}*Z+=5*c)=V-}3@UfRF+eJVI&&t$^q~8>4W|QGO4oOmpWtRQ4ldCEX@Z%k z|3LzF2gDs9ov7sC))N~2rV|?d#uFO-_7fU?;|YzvIVHMhL!;d`A72YRi7aT7rhNx% z9X6TVtM7s{&xUq;k>>_{yn%g%eO991w;^tqeTi>db4R%($-AfT7!*%J-4;BFhRHc@ z*n)Vn?@PEQ4}}x-=h1TUC$c?zo?|rjLcrkO8*2Ye0MD@(Jc)kKu1~T&i2;*+Hxy5X z4)xsTOMtQ`0ln}fpj(QxxEDTsY_+yAro>IpfF(^!S?O>J$&+Zbd)SV;csBy!D_vN2 zm@P1?8mzVCTMYG8WZ_P~hAgbFB@16xHjwpas7KJ&@G@A8`!-l?tNRQrhWj2Y8{v+r zxPfp!hJ3kDv(0KGSd3vgWq@=_@yXIDQ?r|ZB8|d|7rdWV=sElqh^!o_?;&gS&}?bw z$2roO@qtoSLpJy{W**oKkJ~b{@Ttz282=eKl#)*4erUAP^BPe~kHmg39%d;lF2-3^8H9=rENe;;BT~a{ugS8O+wUQU=cXGWlZ1by= zkAY?TM}E21*?-|_o_8N}|32G#_HD0a^{yBcDqYsy{mHi5l~2W=`Wf>Vz4ukqrY$Wy zU!3sn#9yD5==h=S{s$Xx8ujX)!;k%8-&@-!ZJ7SZ_P*CbpRX+1x%<|m1HOyy*c~bC z>-gxQ=DfW*kAJ)B#$W$bxa!f8mp>Ts&UwR!Hcm=xe&LxNBl_+-cz5s9i#N|Z{rxwO zOxm&M>v@f9uKs&uPsjFy{kK;~Dtc!9$+vFx!B=j%V$_zU_ASG%9Y3M>(g(Ay%Go~g z!oh={>e=(nHG9suU{CE6xd%55Tj;!CcgdT1&evVl_PW8(K3O_=%==G#@#?G3{M5JkcL%(w<1~BT`OvP7w_kTx&AOb`MStFT?z4yU zMvR>_$9{Lk{2Tu(v2o;%r|$GG-P3=;UrzUr&U$6rsSnjp*mcfOXUmks*HlhgFn?Cp zEBicodzZhoSvha4TQmN~_o5#u=acXI$H_y!ez#6Jf9I;tKYV^c_+jPzz{Su1>8{87 zA5+fHw?CQx*p8N$f3EY6zQO*n7j`r&`l;t;`!{a*me5rn9li1G&N~+tRE>_z9Wl`t~aaNM(M-xz$WX9b^XSgeu_ zj${_LSS`5wpw;&6A$T!XSfjy%1>YYsSLb zur7r*ECY2c+?|ZHFoDOC!&pgw|DZkH(gc@#I<(KR{I!;VR6WW~w(lqZDhhvTVzpq6 z<+kE!?@M&A@eK1iEZBOIl+41HW~+r|TavW=u!qATvgjFN!O>xP&2#V# zjWvq15F@fMZ?&qd`_J~hr?DKIg&2`_2CEXRc_s-H-Ud}>{$f9Sm+QU^_j>3Xdw3c%N zF(M1Ue9^Aq?8k@Qr?KwfEX0VcA;eO8ct_=7_{)l-^$a%FRyaL&=sv*+!UZ7Mq~{Gk9G}zeBjm#G}aW(LX5~dk66m=?LS(vL}M-H zEX0Vc;R0()&lySMTE|(45m_UMrHm`v^1V&d+QwOk0antEJ(5^1sB!Oo<)Rw5w)eim zStBJI?!8HS)F@(MAF!O9wGlQXR9;Ytkr^V>9{WsnO}U9cE46}7S1U)H?P-uw&*S5beS41TzN^rACUVdD#0rMGAX`!jjx-pHbSmd; z?C=xoG@hv{2w9MMy1P~= zr|^j$q07v(EE?B9h!F-s7`v}}$`lU5nUF0NCjHLu7vRx$?Ay9}_ni;DgSBJSFBWO6Rh&f_L2I(0bwzL9w;F2;XAwrw z!fR=@;C#m(F5UOiaEpjjQjG%>cM0=Xw_rP2K8mV5x ze$FC{pfyd<8uHR#w`(jrrqWOdBWM+aSJbkpT3*f~jG%=%vNo=%?YHmLSe=|j7(r`> zPHVKPbqi+^M$nomX#Jt)^s_Y96P!gDL5rRyY958xFkjVri?i4hCwU&02wKnl%Q{43 z^>Y?s1TB0@iq~+As+G@E1HuU7f>b8y8t(NJ%-2{IoJANxYmQFKu4*miEW!v{kk}<@ zeevAg6ExOMoJANx>q4E@SXJv$&LWJUg>Qk{+(0dj^#*4VM$nRVTH{o$A2^FJf|f(4 zrLjih>lzfo2wG0?iuY^0s^#P?!U$Sr#KLSD*D{VvW3_P>VFWFgPOCuGN^llo1TD8t zOJhCES%eX^%5_>3RIS%Ji!g##g-%Oj9pNm(2wEPU)9jP~2F@akpyktP4N$eVa~5F)Ex(|3^OwFHjdg&t2qS1!>$I{| zts|U87(uH>r=_ump9+mo2qS3Kf>)gL*{W74XAwrwnoF$YIj^z8oJANxt4^l{e_a9} zmg_i+FoIS+w2J$N#(J2u2qS1U5Q}dR67KUks@4I{B8;FlPp74^zUM5$2=8C>i8Tmn zEQ5di%_a#lBvyvuMS_AD@eOeSc(iYO>mlo!d25l(P^c zvMwT49@JRw-yDI(r1WqNXCdY!DbU&;?}>$52uPmfU)wGMkJW;|w-w8S5Tg`-lN!M6 zR+cYv1S)IYj(PQS=lf+@UX;{0)vy&3QNuP$Z4Fy7T{dilJlUuXerg+N?dc4~WO>?L z=e&5Zt$uD@xUC#q@kkep!zq=P2Fm2XloG$oT~Xz7R?DS!ha-m7GOVIl#bpIHy~TB7}`ySjE&BCADsEwa?+KAViQF zu}TS4QtNm6YpN^CG+4T5Gu>tWsv1u@>ruO^*QVvOOcWw2%dsfkqVw! zRaIG0`Ygs-&5(X@)M*R8|k{PP=kPCrQhjsIVuU#iV$tE1dgiUk{U-t*P`@IXx^SAyy)+TSb6st*^4uS-~a@%`2Kx?6M)aMFp35+^(_;zlYr{ zV_1#D8{Be!6af& z8AlYyZFHW_g6KRQeKR6BDiMU>MsQyd+=fgsOnSa z{?2mG-EXD4{KjR{sYMr8?s7_!$0Bi>THa7m=2=rAo+N1nh~0y=C-pPhE=?`3Sm9ln zFi*?b3F17P_9Q+Xl09Rpr(&Hap{7>LnQxV(&w)!HCOG5q5pOSC9*C<1u4T9+b&V7_ zQXL9+6>uBkBT0HmI9{|J|)jPoSvrwas*{0*h=9`I8qOVX>jC_#Nl+`Zs`49qoC z2qj5S9};&N6#NO8k1t}FL{%NiZVC9cNs{ymE=oP=n}EE3s~8627D`_P_;JY^LVSk8 z)gx;xaIGq~r+Tv><4$1inkIDhggb!j2Z3o!3Bau@FZGlP9^I)OU87<&uEU<>m|Abf z4MOH7;O;LcXDJ;jgwo6$#oPT=y-ppWWfH89r&;zGplK47*6;sWAF`t}0zejqM{ zzSF=&Tq0u9Q+Y|>1Yj-+#D&l|ADGfWTnPWJ1LpQXTnK%S1M^HEE`+}KfjJh43!yJI zO_E08qSRY?F99Ym5EnvU6)@gFT!4RZuys2yj|AdE=-UU(n}N6heN-POfQg(zrSL09 z2z?WQNe;w?&{qIVSs*Tiz74>%2I2zr(RlC(Fi!{KLg;%Jn9l-n0s7*ojF+Nc;-aM2 zTL^tKfXNQT1?Z#rl>xIh5Enw<9l$&ghzrn1<$VsA{eid;`i=r~IuIA2kLIJ1>A3l& zp2n*b;AW{f_En>U#{hr_Z2|#?yEEsP8avN6(;->NjR4 zZhon!_>BYZLKWLn{HVOHKI$t4t|m}lgL!>L%Wx$~pTjXV02dG3);{2pfZNvxTo!Pr zgK&jGc9#Qp*=4x-C5Js2M{&6?2p3$AF~I%354btN9SFh&+okR^?iaZEC5JuOZanfA z_YrqhA8@pdxw{WI>TkP(a41LFs@07bry^IR>carN#NBE33*%W|!7f6xTP@U5QPz zKdYvszO-z0>B@@6;>KTks~Q?As*6{6tE$WK*yt&*u3DiJC5@g^PgU8}@~Vd7xfRtF zrHvILuc2by)VdW{N|#DAhgeofQin85nk1dLLDE0-tI8Vc8tW=O@riTKk1weARMk}d zs;YKnd}duueN}Zu1NrKhCpUfJa4Sx`ti0>AZHuaGI$dmQNkc$gt&T9+w?1K!?8~&< zwxu<7ud{8mBE#JpOQLewUZ?HJX4*?hPUYqe^y#wh>pl#@@EwT0Br7kGtgMidrrnOE zos6OEfxTywfnKC(-_lEVOpn=>wmRBdQrW_VYnf@XGA~K)-nlm`A%1{lkz^2Q-AE^F z*JULn%IO`~jFpwVM0acWP`58L$<=l!LT>vw;t1)1jznZaM`ohU4h?eK;Ru`EoseW3 z5^k{#aa&M&GSNXIa;t2SeT2?SL}a6*jL7T~9(fW9MYNOTrk#jB2VNs9TTa@VX^UFf z(rs&QC-cfnmFeHwnjZtbBNomJr^s7nCpqf!d7@wi<`k%Q`PN7I)y6Kl{=0wRv@=B zjIF+`K4@O_^en))lKMWSf&a&33A0%IRDh;OgU9(+Mp(ilkU78-X^FB}X!Tr+ei1HZ zg1Q`+Rm#JCE>m^5&%zZh-J(J3l}nR*A*6->##;sm?wt4@fMeV&B)h0Y@9 zeCGn^LK?KRzU*!-O>!y26J+HpS#hPwd-qcBmAl($@JdsAv65r2Y)V_^EuwB7Ni9D8 zz%}D#We)f2d|!A%K)=pGMr9HJ=&d5TYK>2$-SyR|k=Ze3<~``iij zu2v^TjU4iW%5a6Pc?{y?QaYVa(;%DOI?tNjn%6C-53n`ggF2F%x-mR7f&zMqtz|JN zjt@o@EoQRM>Qb^Lb=Zp{--Cy}3wsQYb32dUzMRDD*2}}QTNhhgNI8t0Na|2+2d}K&h-^VVgMUv+ZIhT zlea)_&A_;5g%l`^;a0FKJ;}J&dM4uD;2DLx#}kYD8gKe`nhUy8F|+OKnu`02U5U8A z)OGH5nnSwI7K2sGPFwTac!o=)n1@~~6-RFSECQmk&mC#k8Wz}Y-}=NjmvXEtUIU@6 zCC16hu^n(7YF<@G(^JsMb=Few6WSzd#uFPLvH%UOIKd$+S*U7dX&Q~(%4!ES$6Uo7 z7MJUDham!U5?xB8?An_Z6-Uk6rF`NnaV~RS;VdrMr4OINtTBA{@i`toi}A$+N{lb< zI#q-siQL;kiQF=@Krz1T0ObTWTsj}C{$)UfOUa-d%$osfDf65<&jm`1C70{G#h^+V zSE}=gx*Qd!yW zv8BAG*2R&|i(x^nT#cvK&$lRtn%6m4#q9{Ej-l*FE7S0uU&D@yL&eVWPB0!WwY5C1 zX=z;xudO?*P|y{H7?GY6P^IeGFDpk>vH)}Qo4h*UIhNbY`L>ponkF9_;=!(K^`5IW z&e<3c7HSKZXfhDogRyWaP!}$<0~ao{VYdJ}X7@O_DRmfxvN86MDe8euofp`ew;}*d zofcd3?Mw`}H8&A)dZw)weU1L8C*cI|o=cd2VAOF6|u z6hCCAoRk%Gl3WZNkbehd)?%kcl}2!S?em|Gp&O=LV)2Iso*GI--d7zKO0UGxM@pS-@nL?1kL z>eHsIU@f4$Dtcm0nh|! z=5Oi2e{B)q_T>Z)A*%mD)4reY*TVOYLc(tEm}#^k$4#b81_m&8uiDv~(72fQpZh0n-I9GK#A7Md)|1AGtb$! zy(c%FzQnfiX=JLiD7Lh;tdf+QZ=es^`eOHC94c1N46w4q2w!@O7J!ta44JBNxDc2CvaQ(Ia|25vP9#VFS`l#&t-jM3Hr)0N; z*^Oki+r#k`F+gKQ+M@=lbTmF=?Dj$SSo>fb4JcyUcP^+>TvlErtze3Vnkl%#r8zoP z35rg!#8yyHPvV){dALOFSx}#Y665AiI&~HrQZnPF>J&}D^a>9nw@$4Ag;&93L#O@> zieBl5OEgbTW$FV^<)Ez6AyBnUeG2MIrjCHBXX*=3tC%_tib`OWz5!Lu)G1J9O#J|= zhAAmblB$>r2lY#)qCn9`*eVSIwUQ}2DC*Z%X*ekQBNM9>2WmA_wCQPNDqvwqo56U@ zq^IOoiZ90L_plYLtgN(+Yo=!@ONntR2R8hRHW!{LP2YuihB?zu+gfCJ_!KUwleW8Z z`qfdkn^Og4zxMOa^NCb4X*=+o+;j?~#7J;3JS37*<>nUpkgcy^c-Sw7hfb;|?ScE= z=C;mv{dnl-W1G55JaH-eI@`?rqr^YL{lD|iep#Kj`8{Yl$+Tvt%cD_hZr7C>qieB7 zX;}ptqw5zMrDdgRjIIe9rDcuM7+p~s#aZZqE&FUOPtn#!SsEudec$aF%!9pkS)#3_ z8GQ6ijO3X3suM8ud$7;Jz*(~E|7kxx8_^T}bOR{b@>r#taQ8BG2kxSuKB!aFCq?h1 zJ}Ib9P@;F9)TwAR5YbPE>(oS0qMu%*Qw~s~pXTZmZIeVltJ!}R*CxfI;NpWMVN7vw7kT*^Ccszya9S7x3$gLeMnYv?I|bSN<$pYzHO)M%9l8tJc8>q z*;(ak`l;I!?P~ix!fjof*k#SfY0!orX$RpM=t@6kYyB%!xs;-WsC+D@Xg!84fpsAk zP}-jC9jp^=%|5{7?ia8kNm!NNa?;c2+<;YsMe+`I;{0Vhxhl7`d5T?1PMjN>nof0l zhtuYL9W66Q$ch8~;8eE=eg34t{?2$ zfMqFM9Sm2m9Vn-dv)%9ua0q1sz>7lz_|v(Y%8-84b~F5tG?`DSc)!^~elzIzOf^Jh zr|gp{98}J=R8CoWODqoIz=gJPfUkkC2wOej2o4;MAAs}o)%%VM{np;Awkfu8S!7<- zhg0z0^ocQHIgJGR8OE|JcFD@zDA(RSv_R+WFe+!mkF)t!^bZPHt_8b2XjjrXYe(P2oiff~lfCm&wXma?^L+9-AAD zVx4BuyF>QX6>?)5hAozyZ#|iNVfa__fm6A@tgoO#$W2ivyg{iL%l_RHt2FfGe_wqKU#Tu2#N!&6SW zn${;ot&nY5I9Axx`7n*O2Jav_`db>8;e)L?8{Txb@Z&gJ%X%V^zeX^+imAOdS2A}l zint%0%Blr~TMRbPXfsh8exy^*t^pfSNcv{%Qxtrs59*NcZJEyNS=!2^!IE{?;`{46UBF>@AF~; zK4S4a(-q}PZ}(bh%R>0{_ZmLxd;&mrek)0Aiy<>9C(~b%ZP|M|?*#8>&oeX7iNqX{ z32GxQt3)RsvvGw>!!Yg%YO_u~r&Ay6lnrB{z}==(F;;EfI7g>0)G0bJ6SGQ=PSMU+ z@b-YpVGn)+mCaN$#!Q;MFo%Jn;ma!B4C>cR-KtZYLEXZVd^PRo0t-B6ZH+U@~*E4uf)vfQX9Ub(=e|cTW1H2 zvUG%nt+a!;(zM0KBfWF$W#8PlcW&CtHhS^6i?(#)l%W)q*b%DhNDOYggoFcd>MK4} z$LmgUt_N1ru_T*NjJOE2D&?wN#B zGr4uly|VRvO@X&vT@hio>%pRk*F);wQ`-~2Oq0G?NYv{TRbDxoR=D(AP!3$;O#1>Lf*9vvNzz9jLn$S#KP z?zYMqsd?USnM(t#EC32VF`Ef(NpD_YFY~8zMaSOkLww-5H~WZc3zeIR z%FaH{bq$i=iSlb#d2jY9Mw#n86K3=L&r1C3Jo}J%&6ze%z{EXX<_9h7@*DW_npuB<1MGVHl5c9DmkdQ3B)g+)p^R|JE$@5W{Eimqdzk1E z7A#LxJ$Z|;#P&q*pdx52nOFpb!HA}yxBMTqCN>q^wh_v4z`btbe$BUtr6#Zeu)rF!$dD)n5#dL}h0sm>cBnAb8q)9|fByJ3uaq|}F zuR-JUl}@+vHNE^4E|^R!i{sp_Gc)KdN@2=TSNhux!^IJCA(;@XuVqV79Q=ib+gFZ* zHk8Hfn_+C8^OetCw9LiUF5NcHfwqnpR#<^6-^;$*LV88V3rGAdfcDO-oz@CASy_ew zqBtEZ%hWQR}SaXQt@91jw`*Rv78E*opRLev+!W&R(_O~S3(ud z-Jhb#O)qfK5?twDdLI#;uh8!pUJo?As>^Tr)DxcXn~As8c;CmRmwi#(z`FKS>qWDS zjFLur21_H$W2KR)gQStS*$a^=(HAnbln26!PJ}uL}kf+DFuGS5;nNGjPKD=qQFNS78xOGBo` z9*;RRup@H0uuWgp(9#^1pb`p-v^>l_%a}pZm~vc2G18dSXlcx}xZ`IX8s0H1DJUvOJM%2z7AZUfBod9HT5^C85`rR$SDEK;!(YOwO9+Z2 z-e8`HWDID-2IUGIMN&`{Ng+Xc=`c`Bp>)58Oo}AB4B8qc&70nJlU`Z?YbliOL&*F& zx=HWjnqqv0(*60*)J=Lj&Y=5?pQ)Sl9y^2XuYaa)((AJr%0tEEl+ZmeTpC!89v4ub z<`yF4heJZN71I6V8T9`o^!K~1klsuD#$;iedaIzQrJ)1;thPdW=bb?}9XJ}Jh1R~! z_Jt=DBM}eMdDR*8+Eu;KM6srrBWe13k2mT5?HTmb%Zs1We@O42&!BtE&xi@>q%WUp zNyN+?$8%Y)n0ba^=CNbuu}NbZ%rg&tHC0O)AjB9cC~6IfLW^yHWGj!9Y?wc7(_-pL z;$FI`DHESUQcxs0RY;DGmPUJGrO}xEMi<3MqcQu9ZaC`@3DVbHwUh-yXb==>NEI4r z4wxq9fJJ_>q~io3At;i#R7ebul7^S#DvFeb!{g!8#4PLZlcr+{AuTA9b_nTF(b6ca zVMa|GaeUaJAsx1zvGs$N#}on}(HC2_MC)6jK~SWDUT9hIDrg;67ZrH1%rb?IL1s2IShQ!ygty&zsmqD%$s0!dT8KOwn zBv_1xZp!mOAAL3=rv?ySsKXkQQ}fUd>sHIfm2*TOP+?q#h;xk`~w(Iu}8 zjpRo>YmG;ari(1q!49D-IYw)BRIOT?21u2$t~z+o2;C&@fuulCfTr(l{teioke2?FFu;sojtxs&6|In?s z|K;!Jzn8W+YVMeijzmXgoLal&r*BIwkG}ELiMr8u)x`hT{P9t*jQn?4+0GGTfB&y1 zR=wQ5YsH)2{MbJ8&eHcLotU_|GAh#ReSF-et-t$~E3w(~*=1Q_uSF&;`JbiR9yxUF zbx$7pXU*b|&UwB2(u2vv&bzAp@{EcZ*~JO&*WWmJ&NI3DA0PR_+6v19jxXxYnmD#$ z-7V*gs%ro2$?~I{J{olT{H=#?TkvDU17|OJYsAtQF800n-_P8BN%QcuH>73GaTh)^ zZ|?MY4}U(lJ>#}5i*`q>k2siPOUiz4?%lUtJYa0a%$(w5PyPNz93D-Qr`)vic;bos z|J`LDJ8{a)g!{C7?K$eTD-KkgXe#rpyXEwyC%05YK9RS2&TaemmRi4?{m_&}w`$K@ zPA#8czxt#1wCB4g#($L2ILxj+54vi6!6@eiiuSxYZ^4JZd))o;gWnHu?k=75T>7e$ zlkP~rqeaVqXxT&MXJ;*o)SlaRKNfxQM&<3;{P7X5{w3yNw|#oi^6NLXJn?YuT^F`4 zytV8^L{r_@t}itFz1?A(>u!JQMGc=k_|=)qR+V_4oB7z1p=mQKKb-RS^OK4Xrj+gP zcq7{Phn3I&u=%@dZ@PEzi=Y3q;J(T6PhS1`+FyOWGpD|5WA2oN3)1R7&K>yYC$695 zdV1LBd$u<1oa{d5^q&qd82sgfZMTe_zx?)3Z(BMjE%LMOwRfa_R-Z2AKX~nPr%N7~ z)O7RHKlr9Mtax+duXn#Or8JZ+c9vDnD^UgoR!&StUnhMX6_MQqrv!%k?S;UqzoXdWcYMTf1=1!HLKWVO&tM?TFMa3nbxL;Dk}g?3~V&F|KQqY#1RqE(mG zLaPL*k}kY!e^)RjmN9fnFc{SIz4uKH#!!ycQi40_IU3h~C>TREV6{xZozhDYpV)&j zU;#rlLMeCDod<$3Ly%*&(DH^#bMMQO(}OWX8AJPi!gP!&#hdKFvJYbn3~_bb0({tNN~_4k?8NbDaGg<`V$6919Z;)D#xmG_Ntt4oztaq2I-s; zB1}?*&Pi7}Q95Ut${DD0?o~O_%qeNC@R(y*Q&9t+@K8iG!96FLzQ03#hGq2O^l&8hMcI)GbbfY&NNa@duUyA$~16j=WB3C ziuPtYXF8exAAe2?6_xh1I_458295VL4zbT1RT|-FtYgj$iWrUeG|n(*8vWr+JoNDR z%(cT2gFiZlqe@;9howkJ!lYwxIEE|yIUK`Z`*S#kPxx~?TAqdcC` zxYd!Z-H_5b$)tG`F5-w%kmmdSIowkyVmf9TMS~({aLD{;CJxo|*Cq}{V}NSisCPP- zF!Ydz<4qij#)T#h`8?CaA)jeqsq0ChUa-)_A)iZ49P*hWZ%C2P>-{+dk?0QsbWCz8 z6wwR%XykBTPNq21nK*H{Ts%r#4Jnq6@aJ4YWgo8k%pUTul~n2+{~sk94y@HecS^gK%$y&~J(Zpgq6Cx}Bl-U{ z(g<*^7GBSQYFW6@XGon=r5Gbk_4}cuvsj8sKq>Y5x%UgH5@4`^<-{1%&nAro-)fUQnyN}M#$@YUmeN{p$C!FQ zsU@luV@$Rtu#}zdxH`LTA7a?LQI%qh$yS2N*8YbRo;9SNP^B1SvNe&Vv^HNhF|#>F zkKsX8iZLcz*lzi?jTsL)o;9RmY5GNCjLFs{aE<0xj zaPOZCsnx0!V@$TrH`$_cS#?|Ys8WnE*}5RemLc_$D#aL+tqWO7j9vH4uW=$9B` zG+UcgDaM#=UDS)MU8)pgOtxrlF~*G@FFtjTVe8+j6k|-bXeQ~YT$3V^iNqL_Et<6q zTX&W%=rn9CR;3tYvPE-dPqq|QiZLczG@BT<#)r8F7`C2Kr5IzfMRRyhwvMS%j4|1w z)rw*3gMnckhOKke&dL~*En3l7En=>bq{p`JdD4)YuSzk-WQ%5X!`A)RpT^${YHi~t zRf;htTeLFjsa#L1Qj9U#y3}NA?bYd4!`7Fo6k|-ba1hX=t?{&gLSl@`)=Y4Xa^*C2 z;oE*%xr$UN#+Ynf#!}kYyLz90|JtZZF~(%;7baVeJv{Id!xsO33Gx|ZvNemPwEDVw z@GHj+siUeb#+Yn5Ot!v%wEOplR6H&EkQ}(o^Ouu2`ut@cH|D8Qj4|2DU@2|f7+0DS zZ`is~m12ykT$wBtI)>X-DaM#=WtnUZDDZt^*!n`1VvNaFHcM&ijkvgp2g3DQ9v6d5 zB*vI*<$!CnjR*dxdXgcPr%Ex#WNS7{QMo8>*-&tFkZx;@D#aL+Eg4wD)|Q9<)nG_H zq)IWyWXr`;)HWzxlkxZ~5xT8+RVl`pY~=!L*gEglZ*MT9BB>gY7-O=P2d*(M|KXu` zzlqXq;bj~r#+YomSxRdgOHLOLF{JQ^JDeC}vPJtD(GCf)F|+KOfx0c9D#aL+tvM{E z+1mYj*t3SztEv=ZOtuPGN{iuDS(RI(bz4JY$v#e@aG|I8{b*bvar7O>_y0W0Ye-$8 zN-;+A|LL&HS&G)EloIaPiw?~00b^<{Nl z4uWP-&yZ#rMyjhCJr2iWXGv~hwsZcx%jZ_Cb2uDJ{2{d!YisMuD}qq68CKEIP}e}9 zMShwJvolH-nsH^TN*hAzE6EE0R+lz523a*@>Ps6MD-h)s6>PefQs8&zYAR~aR9238 zS($D*uOv6ne*rNNrqVj+drDVw6z6crLJDi8=iu}z&WL0bIl)`IwyL%~!KgT``6TcR z5h^1{gxgmTUT}lJqV)x#Rdx_uZJa@Pjo*WSXuLg0shO&19~!Nyr!Ppf!m8SYq=dd; zMTGl?6?&8Vp|@|?;2`wYErSEmD>_(tubnwqd++dI^}UY)!TQgD4^f$CkO)zwXOIv! zrukRw86<>_{zwQLsr|Om9|>XO;(puckA$$1)^8jAkq|bLO}!GlUZxhcS@laqwUW~B zq9pf6M71)#|5o}VqFTA6|5o}VqFU)sRf>+1+#eCu%8dS(r9UFV%C!Esv3`lDR!s8% zcxP_O)A}P4Vi4BXFac}75aVx;&|tM^Sds-RKa)VPiC)%n!RmVh2dnOB0T`^eM`TY* z^%&;$y5{30V^8M#rK1N&e$Mh!bWy*>5|{pGXqq*vB-2rnoKfH?%+1Qr$(~){n3dpk zR?ux7-RkwnGNL^CV>wZ?rqi7F2*u+Z2S z`?`TFe9^mbc1A&_JBOWLK?c|zHpNse@wf!6+Ru4ruF^%=iAH*yHC?xmo$biVD0Js# zW#zMlI?6X9!^&qR>n7MNV^|Se6y*vurdycpbmTY-TzRsb!504GLCSDBW@l#1DV$U2 zHfp#=F9+AcRifDDa&Y*#9F4lS8TpR9%sF|5`5CiWSrv(J6xI-B#GW(!g3Zx2Dr6<0 zD|EHl1rB#+-khx5JP`zrmVssi99H&LMAS&(Pca4HOp6anCNu zcX8}zB^eHKas0Z`tOR+Ek=s8rd5+wy99LnMESfwQlMB-qHHOjP7GF~0s=@EnXW(b& RaTv3%rpAHa)#^1#{|mjQAMgMG diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstream.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstream.obj deleted file mode 100644 index ab76497f5150480898aa663a2ef9e233004c3834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24422 zcmdUX33!uLy8jmvwz9OWqM`&Wivp!kr7R*z)0BiJG_>pjB~8;dkT$hVSp)?I6wIKE z>)i2Ex`@Rc-Sn$!U@}@uaK8N%_d%9HrENm&Is(csc(c5R(fG6a5}$dsgyvV^7+zN}fk1x8$!S&}AolcbqF z1@4j*xSyc^v6m$M&|Ba-r@%$qNK)h+NjiA0zzs@)I~VblpD#&E`wCpD_$v|y@nT^5^b@%D_)69;_d!1&n3l8Ps2!YENt%ieB~)M7YpC=` z{jB0_0qPsHO4957g^sFYlYF)u1Fk#tUknf!CAVeS5^&TGrxI|v2{?+cB>|UckGj9p zMT$r9oyu>&1YDwD8lnReaEX390GF2rE(5snY2ut|;4H9Ll7LIB2gO&GfJu!x`rJU(AxU61d{QARvvwC)s$u9^-HM#gcTICOA?bd>FS>KTfH>M}`tY zOSUYuOT8XP_4pn*(=dTU7!uFh`BJB=))tm!xy?p_Hn=ol%xAV;G1mRr@)BD>;ij>W|tq?KJ^+-C69>Jiiy1 zr;NBH^?e(dPmMT3`;omLfyvB)fTXrd5_`je8EeED>`{Nr1g6@EOJZ*=Fuyk94ECr$ zw#XQYk5a1scoDdrXR$~9@wYVX9RcptS?p2!oijp`hT=o1wf1uZGu?z1M+z`z-dXXs@Gb+RGd%N$2B3NgY>7`eUq&5y;g2VF%88 z7JD@Q76G%;h)XhFeh19MMw}r&+CO#z^O+Hs#NKIOI*t;xNLAk~6b}X_--t_MZ#po3 zBhC;X*;@(BEk;}tdyfJ0yb)(O|ItzH0~sS~Lj93=-k|O3R2n$i?g!>6mc(~5d)-k~ zk_L{B*Zwqc*}$z#14s7mPXjj&xNT|R=z8*F8n~{&b-NT6wrWS=v+=4b=ucp^657!?Fq9!t%mpb^h8=pfnf``Wu5VUg#{c zPxnmoxC_P&sBK&vsBefSbLl9ZR$ex(&|OmQE-NXY=`M7Zm-(Cycahs!TE@QP4SCCE zfMBp*;whYB_d3f4Sm|(m9G|E0SuB~lQEL>9o9p#ghXUo3{I$Wk^$n4Qxc|nhYRl{W zfkpo6VB_4ztC~U$4Z-l-il$Jw5|541%5bPc70Mf<{%9zWQyFTQE7w$%HAWkP{@R>K z#X@PEba^*Zg(U5fdPsw%@2;2BZ*M5j5NV85MXf_hFSeG{qXk1(hw7@Wj!12NC>(5% zY-O(1hja6qJsS$MUH0b@{VLabh_2X2^ljbXGaaHjxz;u>>*d;jYcb^5ZlPQKTJDwG zT`>>fYj!)!SVw!y)DEuLNgxp3%D!@VBDNSjyJF-|j`9Q6dty6XvG-lE zH#F39xG$hi8Z=ogX_8mrW07b_8UTugFCbyoEk^EVX%q5Fmfk{6uO=+gdyoX~Fr->8 z{U`DUmU;s-kZ~6x7dY4Yx!E12yJClx&T(3mzHwTUb^-=SA=pV0@yT^$x za8c88_vGWrv%xt;bd1uYG3OB1>gIb~t55dIyz!ri$F-pgqLgB5uA?uPd0WeVHn?GW zANzA1NJSRW3%kMT5IslV2XR46@53!FH+EbBqGMw;lj4n8nx1k6&dTCp6&FIA%(cr} zT3TG0uly_2D?rVB_N+{_i!M}C=2{CoefeLZ?m7df&zzN+&_0=KZvpeW%q;KOnl_=I zGS^N6^;@D=WzN}^yk`v4AZ|pZEJ3^cTM};b^6a||l9+uHAc@%$h2+P_B5go!NAFmq z+aZzOENw+Tly$E{5{&mD&Bw;TV#v*7ZoMkq2q^~$i*ySl z;p09?VqQP2>YjsiHMnN!B}mIyYKF9erPm-`!xC+=%USx1s@tPV??Iv!$1HuQ>ON7W z{g9ft^nX;{Ayqo8O2<^`gesj>rJo=zVJmc=7ExJLse>wYhP0G%zvNDG7c6Q^)p|U| zZ6fMgMXUa@?z$C+*LroYvGKs>J;f7i7Q0OBq}VvJXvrGC)3{=-5X&ZQYhuHojlm{X zEwPap20trX-yLW?)Zt^{J{`&9WEGypIJpB-giBvUE=FoIBvJYeh%`im-A(C9*Ug(@w9RKd8XROt{TvBn;QBxXk&bhVfh z8IXjoFQhf#nkB0$Wkb4wbweQC$kH%KYgx)wb(gBr7)aN1>E)`m7uH#ads`IFl zPnD*r(kxY)t4a$Xt!68gs;)+r!m3oS;%qbNKqyb~oj9h0%}b-pg(oXLy@1BSJUu0r zKHaJPEuq7TRUUV0f0XgcvG5*x!s*jS3+}8J;Tgu>ioGkSG1TT~9M8u<5(fkuBrzmtEA``J;pU#j(r;89T~sbbFcv;42*xq!#IoBS zC1QwWLK3CF+*TJI>WX!1DIK$>Ioe;o`{2>a)fY>xT61hkO3mZ1U#)LFHEKQR*dgk1 zJ*59P^}xjr-T41iJ?zTP7tPo1qBc|lJ=BZm77xm}UNJuZ3%x{#12NjJg;b7@McRm5 z^cRiPU%bCiB{AirqqTZsucb3pQxE0V|I1dBZoZ+g>VNA>QGB{ zC4?g;eK!IblomlEPMGHcp~HBh@*q4l;=2l(CP+1q%cTIGA}9~?TPItYeVTo`eFjbm zV?431ys-nWov+f^_QvQsK$XXKzI%dIk}}kr56;wM?DOsO>~pW=Dd$=r&R#%o?rP|L zUA+fcuEOMZf}Yq(es=F{CfmjZZ|AEtA(VAL?+8|u%=H;)I~?0dE#uil-a85o$Ke+H zbBJ%1su@c|N{W3Sjkq>UAkibfs;V;k(Fu?0a*h&&dNY~X!AX||vFmtZlXy{!&CFtd zqR73$cUsh_Wrr(v#wr+EaYwU=o%^qC$tVWb54{pPwp=$2f2a3hK=C3pHCb#TvY|sQk{y!RBj-Sx#ia|8hghQ3VjSaEL7K}t+Fxl+u}BXg z7p0Fu5~a^Vs^-#N$OA0xK~BG6W0Cf$(&wsl29n@*fhUT>B3%IKN|uH}qIfJ)sVdEZ zRKvO&NE7g}NcG5tm1`l1sBTbocR&&`KLAPCdjir7w(_zn?SLd|{vjk`@9&U=y>C?A zX-L9ek2Xqu2SO6{odQX4=Rp!Rs)ZzKv=UN~{oV{o#Ii+|UV+vk4&5(q>t&qexdlQlvXP-b4BZN*eLdt?9<{$lh zNzA`Nkc1Vw_=-p`S9QgZM5J>d2`gbpVx-fI6_Tl48>wAs8#)Z~xt_i$(J94@_!X%G zq+40nzo$j&8SNystt6esqEn<`WvNn6NPpwNu78@$54^t0@f?H;I= zl9JiK2Zdx`B#MZVzK()NbrErsO*%6wDVf~|P-vD+T`W?UOFKwiO56DeO~0zFq-!CF z))W%8+#gvN-~P1DD`_PJ!4MKL9%o(uwr!-gQF_L&ad0m28DHQiav@PK2nM0vl9BY4 z%=Rq1Nt7%+wkJt&d*BOg8D4-IbKg?tT=a z-Q!k{Uny{W-^8WlMM&i3@2pG3h^Y)A5#w+Iw$vV^QF4F81?WAeZu2M;57isde&Qj-!4*T2fu{4Wy5xp2Umv2@r35hJ75tgV$ zMhT7s8YR()7tsod7}U<_8=A|N?HQ;rs8rxOs}hYV!64Li_$VovZMvtyb~lUE4Rg8e zw02TFOK(;1X`L1<#^mr3?`%`5RnBEAJ^SJ&Euto!+G z2(g2B^FeJ$_Ql(aqnjSSf}^`W?N}dOUVCoOM~VgqL$?k3@~Yk^b8qc^DAc>i zvt>!e={r7^=DhN5(cUNDe)eAL^}TL7{Px}vU;X}w@AKjL`G3B8-(8z#-t*>(r?(FI zV)@qf@3_{Ct3JGWz*oyZxY+$rS>20;8|Lh;d;YvF`^HXKFvu~#$Nc|jH>%>q;`~K{ z|Gt0V^!GyB+64dl<~JWTzmT`(+b+kpSikbEyZW3D?;Lh@$I-s~56pYucP;(yUR3_W z!r*;XzyDKS_iY~xyXfA6H!|+L;hOyRL-r3U4c~mw^7c8md#a>SW3!y|AN%d@9;>qQ z4_&kG-VfG$R?ghHw)ph1%1*DWKT)x(+p5>D96f5rO#|M~-15k#2li)pe!QsTx?u~J zeEwkjw*AL>j(56i%Es`n`@Vm6((^|$KN+0&c1xG7H$Cbd6}jXVU-4D5=Y8Jk(AHb` zEB3tm_U(G~#nBIsEj_k%!A)1bcFmK+2M1q1|5x2|FI!jKr{a;)pB`U+_~xktr&}w| z54>?;{^(n;+WgeSlbbh&emHTo-=SL{-+k-;gEO74+bn;nm%gdL@#vPo=MU{zG48Sv-LHISc+7KZXRm)AJnz&MFW&s_;C)>` z+4INjjvH=&{+g1>KRUYnaQ=cDo~YV)-l}H~Ru7%K&}}O_bKRcKyPv%6n@{$vJ02O- z_to9)XXR}C^?CpJ`25>nJ-lMEJFBxaWPL|dmt&DBe|~D&Q=@+PxR>dwl6hygezy7U zy_@&^b;;D~8?Jc$;43fO=0El5llF;qi|_d0vK<+#uGp)rPqqMlyDleG`Q7zxO)V|7 zF4?Mr{%B5a?naYom8@AD3Fp*S(wRvTn)pAHGeK)MeXkf)zvKTzj+kasvs$JI@qhMa zW(=J{aVD0=eYfTUdV47nt&Nn-n2T+scovnIO>_pm1k#Y@@8d#TL3;1vJ{M~&T8}8TOJLEiXExDUgX(qRp?q9_ z@W2UfIkit<(cWS<(XLNkyRL9Orm-Gp4xP%3taC$-0KRh+0>m&akgnXh0U0}Qd%Li2!jz7=PMH$ zvx!=r(tl>IyIf;EFS7`vXJtVn>P4(}TPq&XSnta$!suD_E4XG8ok}QebAE~AzY?KY z76_wfQH`_+KWqO_3|WOmzc@*WFnU%GXv`+6FQqRY`f;1a^2;p3=vfq-*+ip}(!|Oq z@6=eg$t=R?S-qe!n`m57+Hx)Z>46gA)3QJqJ*zh~8tcK%k&wpPC$k8nXPv_=Wrb*5 z7u&3{+R&ncL>N7b-g;>D8ve){7*HZSPi7HD&pKDf8qoJ5Kor*HGK(;J)_KgLF;B_g z-FmminlG~mqi3BD4OTXyARW$s@K%i#lUalTEAEdE`$A(j(K&t$qzg}OfP#i!Jcj0w z*+i#Fs^O@ESB(~!#;eNfBlS>mvdT5vF8h)sMe}BY=7R*yfdtLb1dU1QG}Uruf~IeR zW@v&YKS5KFpz$SW<|b$sCTNx?Xl_f;JdmJyJVCQ9LG!*&gO;xjMvX0hK!>5yqX`;p zQ*u&zr)z@7Dr@?x?HrIb7qF%_SR1Hc7H=opGi4+O1t;pZb`mtBE`#(OhC2meCQUv8 zeuocf7&DeMU&U)i(oY1erZ~*VJZR|m@Kn}FvP^H%H4T~GqtlRS`pqd7Gm0$JdZ%f~ z@|t+frKF*xV%QgHs0ldck>sl{SiHaM>O~sH&}5Qc;iveT{t&O>n$mAfsw}SQLY?MP zFgEElRQJEdYep$8ui6R>g6RjJ1 z46PFFq@1`vthx{yZOvRA==zdb9ey{+BZ@In{GTQFV;1lGkWL(U)TXhXlv#|?`LZ&L z)+ZW&Sx>&vUt@hLvlyfE)t_04uN}{>T&uA%s5y}sqw_TYTC+*<^@k3(pU_zOGK(=f zUl%b;@wL$PF}4jkFsV{zF-GSrn^}BXfYhhckEb-&uVofvbiM}aeBFKP;n5oFWtqho zov%SE3xae{VEa23HNvlD7Gre2aAZVlDD`?~Xqi`I^`rra#2B3~I&164MqAa_xy)jW&R4F=f*>`mDSEJ-+FuXLEXL@3(W;}34ad!EU(s0a$}Gm{e9`Kq zjg1}y-uZKT)z?oli!nN1v~p{{E`NAUZ;h2riyRVTbiQcK6DMjK8y{cv+j$zRSY|Os z=Zn^0&DX}etG?1$QJKXUoiAFaHD8Mx-REko-^nb-=zP&`qxt%5<84bc)()A)7@aTL zfW&E#>b1x5?iP)8RAw#wMWsqprQ(zxbj`W0lD) z#^`(%Fw2UZ(!uYZ{JgK~Yq`u~jLw$>Sk2epTnGAUtQ|6oF*;v`%#tUqbpJyiowz{t zg||_h7^Cy$)cNZAdiMu4)_9r47@e;oW-06ZuzsdXHC9k&F-GTWlFnD*{_uwy>(?@i zF*;u^W+`WY-KKN?M`LZ3S&Y&7a_fBc9MJh*jrFC>VvNq$WM(Pr{6iVz{Tizmy~aRd zjLugvv|4}lc8naLvFtL7F*;u!W+}ctAK|=EW7Wzm#^`)`b-sok8hWwD`VX1K7~Pwb zDa@ji5~Zv^&G{|ePDOfMW)Vhz&nuI?GYo z^!{f%G}etWi!gfDG-%8w#n&>M{V9!gNM;d6&zjCGT9YZwJy7wj#ww)FMeBxvKwJzBK{UiOkHb$B@Lly@N8BX)T)`rU~o}uZlb|(xV7?duvPQHNMmd4 zs&G?dO>2PiKsZtttZWTZ8;sUOD&Zz?YQglVzq)K{X|TGesV)!=MG#woG;w0N!&W}B zz+o$J6-;p!xk_vkv+ec<%7T>nDXXNcg0e7W5q`8Og+&*uiqrg+h=p|%}V+oNIrHrF$B^Ix%XtG<-Ih3VpC?&QMpU3AY znc{2RxE4>ocaqQPES?-!F@5dEI;IqqluUMr$~CI-agd8t&tqLh1;vv+4$-(;HMljy zDlE@sFSHlCC(8|~>hmX;piUl-hvQ%pJBSO^?eLWpdOc1?a3Ob6qiVxzEAZKi9Ufl+ zL$G+uo!LYZM_!|X3+y&`K}jM0iG`?GIbi}Sg-zGdBYUc}Nq8;R5Uh>h-!Y08WKq1G zgwz;}%2Hi$2}WyUQv)NQulG0jYa0VK!N4Ly)?=(=1;BriP@by75r0&92-QV{)%eE} zGP15I93~mB;-bsy6{m3^6sUX(0w9cjnbH_&@J9nR_5MmyptuhI3}bOnjt~F-Lo3&_InpRF^$6J+QEwCRkX``#F}=1PjZT{v69` zf|E6JvP~jc3n#@H4Ys!R8I87z6>X5KwLzkLmkO59YpH+<9hM51&{wH|!eU%Er2;1OP%5CX7}q(efW}5l zaWFGBVk(%?T=H|A(OL?W(OB|RpV3$fl+jqKGosO4N}OWw|Gvd2E`I?_N>FKRTJk(g z1F6o8G_dOANCT_Rk2J9A6iEZC&XP2+>O@HcE9_#sN&_qGriGO+5)OyW;hf@hO!5}- zIg`)rd{kUa=S99v@Bx+!_+BybGAiLi@iLO?)q`bRiC;aNI=r?bcZt*In=Fp;Osp|* z_&m!chMP<+0fk+TfPwO}=Azg($?bIdrr3oGj-L;`0?A=>RoDefqC`8J^8uTSMG1=$ z)denGlO{WTE?==jYo|CDe6Z%&IpdNBjg70!6osPR&5s+ z+i(dgba_3-!NI_|-ezNbja;aX9lqhj^%*~NJ+zxv!6ci@H)&F#w{QwKk2cbHRPaqn z(-}vf8fb~l=PN2IcDUkhj_f%l1I^}hyU;aLM87bagVQd<+|pvavB(!-Z9ZxB<5Jw) R%FErg_>X}F_*aM0{{kh%KzRTF diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstring.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdstring.obj deleted file mode 100644 index b174fdc5de7c0bed9c142cf132873e4bf5258360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35441 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 diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdsystem.obj b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.dir/Release/sqstdsystem.obj deleted file mode 100644 index de220cf0c9d039c3b5233559a0fdeb3201222051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12122 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 - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {C76C34C2-5D15-3AC8-9F90-65164B0953F5} - Win32Proj - 10.0.22621.0 - x64 - sqstdlib_static - NoUpgrade - - - - StaticLibrary - MultiByte - v143 - - - StaticLibrary - Unicode - v143 - - - StaticLibrary - MultiByte - v143 - - - StaticLibrary - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Debug\ - sqstdlib_static.dir\Debug\ - sqstdlib_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Release\ - sqstdlib_static.dir\Release\ - sqstdlib_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\MinSizeRel\ - sqstdlib_static.dir\MinSizeRel\ - sqstdlib_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\RelWithDebInfo\ - sqstdlib_static.dir\RelWithDebInfo\ - sqstdlib_static - .lib - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - Sync - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - Sync - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/sqstdlib/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/sqstdlib/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\sqstdlib\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.vcxproj.filters b/m_packages/squirrel/build/sqstdlib/sqstdlib_static.vcxproj.filters deleted file mode 100644 index 7ec6b317..00000000 --- a/m_packages/squirrel/build/sqstdlib/sqstdlib_static.vcxproj.filters +++ /dev/null @@ -1,37 +0,0 @@ - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/build/squirrel.pc b/m_packages/squirrel/build/squirrel.pc deleted file mode 100644 index 124aaae4..00000000 --- a/m_packages/squirrel/build/squirrel.pc +++ /dev/null @@ -1,12 +0,0 @@ -prefix=C:/Program Files (x86)/squirrel -libdir=C:/Program Files (x86)/squirrel/lib -includedir=C:/Program Files (x86)/squirrel/include - -Name: squirrel -Version: 3.2 -Description: The Squirrel programming language -URL: http://squirrel-lang.org/ -Requires: -Provides: squirrel3 = 3.2 -Libs: -L${libdir} -lsquirrel -lsqstdlib -Cflags: -I${includedir} diff --git a/m_packages/squirrel/build/squirrel.sln b/m_packages/squirrel/build/squirrel.sln deleted file mode 100644 index 9b722535..00000000 --- a/m_packages/squirrel/build/squirrel.sln +++ /dev/null @@ -1,142 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{3A945C97-C785-35A2-B03C-822543E0A519}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184} = {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184} - {7453F643-9077-3653-9215-251A8BBC9911} = {7453F643-9077-3653-9215-251A8BBC9911} - {A08064B5-BCE0-3321-89AE-9702449A7DAB} = {A08064B5-BCE0-3321-89AE-9702449A7DAB} - {55256B84-34E3-30E3-8A7C-2F5F832AEA13} = {55256B84-34E3-30E3-8A7C-2F5F832AEA13} - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} = {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} = {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "INSTALL", "INSTALL.vcxproj", "{AF93E204-4CB9-36C3-A8ED-0C75A362B3A9}" - ProjectSection(ProjectDependencies) = postProject - {3A945C97-C785-35A2-B03C-822543E0A519} = {3A945C97-C785-35A2-B03C-822543E0A519} - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "ZERO_CHECK.vcxproj", "{0D0E785A-573C-3CD8-ADD4-F64DA735CD04}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sq", "sq\sq.vcxproj", "{BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - {A08064B5-BCE0-3321-89AE-9702449A7DAB} = {A08064B5-BCE0-3321-89AE-9702449A7DAB} - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} = {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sq_static", "sq\sq_static.vcxproj", "{7453F643-9077-3653-9215-251A8BBC9911}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - {55256B84-34E3-30E3-8A7C-2F5F832AEA13} = {55256B84-34E3-30E3-8A7C-2F5F832AEA13} - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} = {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqstdlib", "sqstdlib\sqstdlib.vcxproj", "{A08064B5-BCE0-3321-89AE-9702449A7DAB}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} = {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqstdlib_static", "sqstdlib\sqstdlib_static.vcxproj", "{55256B84-34E3-30E3-8A7C-2F5F832AEA13}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "squirrel", "squirrel\squirrel.vcxproj", "{CDEEC194-9F6C-3A7B-9A26-4388BA201311}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "squirrel_static", "squirrel\squirrel_static.vcxproj", "{29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}" - ProjectSection(ProjectDependencies) = postProject - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} = {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - MinSizeRel|x64 = MinSizeRel|x64 - RelWithDebInfo|x64 = RelWithDebInfo|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3A945C97-C785-35A2-B03C-822543E0A519}.Debug|x64.ActiveCfg = Debug|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.Debug|x64.Build.0 = Debug|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.Release|x64.ActiveCfg = Release|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.Release|x64.Build.0 = Release|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {3A945C97-C785-35A2-B03C-822543E0A519}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9}.Debug|x64.ActiveCfg = Debug|x64 - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9}.Release|x64.ActiveCfg = Release|x64 - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.Debug|x64.ActiveCfg = Debug|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.Debug|x64.Build.0 = Debug|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.Release|x64.ActiveCfg = Release|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.Release|x64.Build.0 = Release|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.Debug|x64.ActiveCfg = Debug|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.Debug|x64.Build.0 = Debug|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.Release|x64.ActiveCfg = Release|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.Release|x64.Build.0 = Release|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {BB5A9E7D-CC15-3D76-A0BF-8E2B05854184}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.Debug|x64.ActiveCfg = Debug|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.Debug|x64.Build.0 = Debug|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.Release|x64.ActiveCfg = Release|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.Release|x64.Build.0 = Release|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {7453F643-9077-3653-9215-251A8BBC9911}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.Debug|x64.ActiveCfg = Debug|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.Debug|x64.Build.0 = Debug|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.Release|x64.ActiveCfg = Release|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.Release|x64.Build.0 = Release|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {A08064B5-BCE0-3321-89AE-9702449A7DAB}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.Debug|x64.ActiveCfg = Debug|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.Debug|x64.Build.0 = Debug|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.Release|x64.ActiveCfg = Release|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.Release|x64.Build.0 = Release|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {55256B84-34E3-30E3-8A7C-2F5F832AEA13}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.Debug|x64.ActiveCfg = Debug|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.Debug|x64.Build.0 = Debug|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.Release|x64.ActiveCfg = Release|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.Release|x64.Build.0 = Release|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {CDEEC194-9F6C-3A7B-9A26-4388BA201311}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.Debug|x64.ActiveCfg = Debug|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.Debug|x64.Build.0 = Debug|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.Release|x64.ActiveCfg = Release|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.Release|x64.Build.0 = Release|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 - {29651940-AE1F-3D21-9FE9-9EF5A28FA8FD}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {897A6388-1397-37CC-80E6-81EB51FF4D79} - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp b/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp deleted file mode 100644 index 9b5f49fa..00000000 --- a/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp +++ /dev/null @@ -1 +0,0 @@ -# CMake generation timestamp file for this directory. diff --git a/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp.depend b/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp.depend deleted file mode 100644 index 60f4619f..00000000 --- a/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp.depend +++ /dev/null @@ -1,2 +0,0 @@ -# CMake generation dependency list for this directory. -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt diff --git a/m_packages/squirrel/build/squirrel/INSTALL.vcxproj b/m_packages/squirrel/build/squirrel/INSTALL.vcxproj deleted file mode 100644 index b627529e..00000000 --- a/m_packages/squirrel/build/squirrel/INSTALL.vcxproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {AF93E204-4CB9-36C3-A8ED-0C75A362B3A9} - Win32Proj - 10.0.22621.0 - x64 - INSTALL - NoUpgrade - - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - Utility - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - $(Platform)\$(Configuration)\$(ProjectName)\ - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - Always - - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - - - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\INSTALL_force - false - false - true - - setlocal -cd . -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\INSTALL_force - false - false - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - {3A945C97-C785-35A2-B03C-822543E0A519} - ALL_BUILD - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/squirrel/INSTALL.vcxproj.filters b/m_packages/squirrel/build/squirrel/INSTALL.vcxproj.filters deleted file mode 100644 index 9a73b4aa..00000000 --- a/m_packages/squirrel/build/squirrel/INSTALL.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Rules - - - - - {8BED4A11-8ACD-34FD-9D19-3930C61B3F88} - - - diff --git a/m_packages/squirrel/build/squirrel/cmake_install.cmake b/m_packages/squirrel/build/squirrel/cmake_install.cmake deleted file mode 100644 index 9aa7118b..00000000 --- a/m_packages/squirrel/build/squirrel/cmake_install.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# Install script for directory: F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/squirrel") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Libraries" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/squirrel.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/squirrel.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/squirrel.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/squirrel.lib") - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Libraries" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/squirrel.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/squirrel.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/squirrel.dll") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/squirrel.dll") - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Development" OR NOT CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Dd][Ee][Bb][Uu][Gg])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/squirrel_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/squirrel_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Mm][Ii][Nn][Ss][Ii][Zz][Ee][Rr][Ee][Ll])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/squirrel_static.lib") - elseif(CMAKE_INSTALL_CONFIG_NAME MATCHES "^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/squirrel_static.lib") - endif() -endif() - diff --git a/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/objects.txt b/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/objects.txt deleted file mode 100644 index b1159400..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/objects.txt +++ /dev/null @@ -1,12 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqapi.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqbaselib.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqclass.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqcompiler.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqdebug.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqfuncstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqlexer.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqmem.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqobject.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqtable.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/sqvm.obj diff --git a/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/objects.txt b/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/objects.txt deleted file mode 100644 index 36a0efac..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/objects.txt +++ /dev/null @@ -1,12 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqapi.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqbaselib.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqclass.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqcompiler.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqdebug.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqfuncstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqlexer.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqmem.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqobject.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqtable.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/sqvm.obj diff --git a/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/objects.txt b/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/objects.txt deleted file mode 100644 index 76b412ed..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/objects.txt +++ /dev/null @@ -1,12 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqapi.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqbaselib.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqclass.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqcompiler.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqdebug.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqfuncstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqlexer.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqmem.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqobject.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqtable.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/sqvm.obj diff --git a/m_packages/squirrel/build/squirrel/squirrel.dir/Release/objects.txt b/m_packages/squirrel/build/squirrel/squirrel.dir/Release/objects.txt deleted file mode 100644 index 85a572b9..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.dir/Release/objects.txt +++ /dev/null @@ -1,12 +0,0 @@ -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqapi.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqbaselib.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqclass.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqcompiler.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqdebug.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqfuncstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqlexer.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqmem.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqobject.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqstate.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqtable.obj -F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/sqvm.obj diff --git a/m_packages/squirrel/build/squirrel/squirrel.vcxproj b/m_packages/squirrel/build/squirrel/squirrel.vcxproj deleted file mode 100644 index 525caa14..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.vcxproj +++ /dev/null @@ -1,413 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {CDEEC194-9F6C-3A7B-9A26-4388BA201311} - Win32Proj - 10.0.22621.0 - x64 - squirrel - NoUpgrade - - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - DynamicLibrary - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Debug\ - squirrel.dir\Debug\ - squirrel - .dll - true - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\Release\ - squirrel.dir\Release\ - squirrel - .dll - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\MinSizeRel\ - squirrel.dir\MinSizeRel\ - squirrel - .dll - false - true - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\bin\RelWithDebInfo\ - squirrel.dir\RelWithDebInfo\ - squirrel - .dll - true - true - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - Sync - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug";squirrel_EXPORTS - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\";squirrel_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Debug/squirrel.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Debug/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Debug/squirrel.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release";squirrel_EXPORTS - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\";squirrel_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/Release/squirrel.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/Release/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/Release/squirrel.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel";squirrel_EXPORTS - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\";squirrel_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - false - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/MinSizeRel/squirrel.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/MinSizeRel/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/MinSizeRel/squirrel.pdb - Console - - - false - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - Sync - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo";squirrel_EXPORTS - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\";squirrel_EXPORTS - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - Always - Auto build dll exports - setlocal -cd F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel -if %errorlevel% neq 0 goto :cmEnd -F: -if %errorlevel% neq 0 goto :cmEnd -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E __create_def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/exports.def F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo//objects.txt -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - - - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib - %(AdditionalLibraryDirectories) - %(AdditionalOptions) /machine:x64 - true - %(IgnoreSpecificDefaultLibraries) - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/lib/RelWithDebInfo/squirrel.lib - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/squirrel.dir/RelWithDebInfo/exports.def - F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/bin/RelWithDebInfo/squirrel.pdb - Console - - - false - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/squirrel/squirrel.vcxproj.filters b/m_packages/squirrel/build/squirrel/squirrel.vcxproj.filters deleted file mode 100644 index 905eea13..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel.vcxproj.filters +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqapi.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqapi.obj deleted file mode 100644 index 63acd97ffd4709ce6fca9acd3d7b598e354a6d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166068 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

X)e6c41*~vgYlxXH8{Ww6ZR@~ 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

UD>OE0)I8~>gV+Ebs!zt9L)CZzUa?15k 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 diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj b/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj deleted file mode 100644 index 591cb5b2..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj +++ /dev/null @@ -1,292 +0,0 @@ - - - - x64 - - - - Debug - x64 - - - Release - x64 - - - MinSizeRel - x64 - - - RelWithDebInfo - x64 - - - - {172DF2BE-82A2-31EB-B041-9CBA46E8E9A3} - Win32Proj - 10.0.22621.0 - x64 - squirrel_static - NoUpgrade - - - - StaticLibrary - MultiByte - v143 - - - StaticLibrary - Unicode - v143 - - - StaticLibrary - MultiByte - v143 - - - StaticLibrary - MultiByte - v143 - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Debug\ - squirrel_static.dir\Debug\ - squirrel_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Release\ - squirrel_static.dir\Release\ - squirrel_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\MinSizeRel\ - squirrel_static.dir\MinSizeRel\ - squirrel_static - .lib - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\RelWithDebInfo\ - squirrel_static.dir\RelWithDebInfo\ - squirrel_static - .lib - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - EnableFastChecks - ProgramDatabase - Sync - Disabled - Disabled - NotUsing - MultiThreadedDebugDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - AnySuitable - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - Sync - OnlyExplicitInline - MinSpace - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel" - $(IntDir) - - - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(IntDir) - ProgramDatabase - Sync - OnlyExplicitInline - MaxSpeed - NotUsing - MultiThreadedDLL - true - false - Level3 - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo" - $(IntDir) - - - %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_SQ64;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\" - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - - - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\include;%(AdditionalIncludeDirectories) - $(ProjectDir)/$(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - %(AdditionalOptions) /machine:x64 - - - - - Always - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - Building Custom Rule F:/Magic_Game/project/Magic_Game/m_packages/squirrel/squirrel/CMakeLists.txt - setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd - %(AdditionalInputs) - F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\squirrel\CMakeFiles\generate.stamp - false - - - - - - - - - - - - - - - - - - - {0D0E785A-573C-3CD8-ADD4-F64DA735CD04} - ZERO_CHECK - false - Never - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj.filters b/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj.filters deleted file mode 100644 index 905eea13..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.vcxproj.filters +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - - - - {7A0E404A-E4A4-3B73-9CEE-DA8D8A901BD1} - - - diff --git a/m_packages/squirrel/doc/Makefile b/m_packages/squirrel/doc/Makefile deleted file mode 100644 index b01e98db..00000000 --- a/m_packages/squirrel/doc/Makefile +++ /dev/null @@ -1,216 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/testy_sphinxy.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/testy_sphinxy.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/testy_sphinxy" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/testy_sphinxy" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/m_packages/squirrel/doc/make.bat b/m_packages/squirrel/doc/make.bat deleted file mode 100644 index a32fa10a..00000000 --- a/m_packages/squirrel/doc/make.bat +++ /dev/null @@ -1,263 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source -set I18NSPHINXOPTS=%SPHINXOPTS% source -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. xml to make Docutils-native XML files - echo. pseudoxml to make pseudoxml-XML files for display purposes - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - echo. coverage to run coverage check of the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - - -REM Check if sphinx-build is available and fallback to Python version if any -%SPHINXBUILD% 1>NUL 2>NUL -if errorlevel 9009 goto sphinx_python -goto sphinx_ok - -:sphinx_python - -set SPHINXBUILD=python -m sphinx.__init__ -%SPHINXBUILD% 2> nul -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -:sphinx_ok - - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\testy_sphinxy.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\testy_sphinxy.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdf" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdfja" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf-ja - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -if "%1" == "coverage" ( - %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage - if errorlevel 1 exit /b 1 - echo. - echo.Testing of coverage in the sources finished, look at the ^ -results in %BUILDDIR%/coverage/python.txt. - goto end -) - -if "%1" == "xml" ( - %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The XML files are in %BUILDDIR%/xml. - goto end -) - -if "%1" == "pseudoxml" ( - %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. - goto end -) - -:end diff --git a/m_packages/squirrel/doc/source/_static/nut.ico b/m_packages/squirrel/doc/source/_static/nut.ico deleted file mode 100644 index c28977b0209b7060618d0c6bfb7b25058fc6479e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmZQzU<5(|0RbS%!l1#(z#zuJz@P!d0zj+)#2|4P5awoJ0AY|E3`9&j#b7t-7Q@CX zpBaQL6Btx{N?}q2=`;+Gz`y_&V^R`i12LGC6rr>-h)z&aQWij^l|XzJ7Z;aMpaK@x z&`=Pa;1U`d08$4O2GMCiPXL91AOTE5iU0qL828OO3_yJh3;@hmN5B98 diff --git a/m_packages/squirrel/doc/source/_static/simple_nut.png b/m_packages/squirrel/doc/source/_static/simple_nut.png deleted file mode 100644 index 4c0e8a20f4a17c3cee8d723f9749f9977e265d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNvoyDk_?r1rPZ$^&#XMacLn>~)oxPX$kby|c=KwJW zLDnm08eE(m&k9`G(xLexf{87GX_|vmPJ=+shZS$xa{jEYxxTbRsCHMmrFG|utjp=V zv*vL#Fud4#D@I&QP`NfVv;b&VKt9_IS|(>t!om7u$b5^ZtDK`mIdL3=CBcGPd*9YgMs;*bVnj2ksWX z!`HpS{8yg(v5z^$pQ_$H2I^EeU)Qku*y*)18K*1r0r_CCV1isi`THB$%>j4i*?}UZ zYgpG!++`1vKXrzo`aC~K&{Jh&-K?U&->#RwZDeL(XxL=T01^g)Q`gx!U%ACSFNshB OaXnrAT-G@yGywq8bBb#K diff --git a/m_packages/squirrel/doc/source/conf.py b/m_packages/squirrel/doc/source/conf.py deleted file mode 100644 index 61172e63..00000000 --- a/m_packages/squirrel/doc/source/conf.py +++ /dev/null @@ -1,288 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Squirrel documentation build configuration file, created by -# sphinx-quickstart on Sun Jan 31 00:26:52 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os -import time - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Squirrel documentation' -copyright = '2003-%s, Alberto Demichelis' % time.strftime('%Y') -author = u'Alberto Demichelis' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'3.2' -# The full version, including alpha/beta/rc tags. -release = u'3.2 stable' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = 'simple_nut.png' - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -html_favicon = 'nut.ico' - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'squirrel_doc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -_stdauthor = r'Alberto Demichelis' -latex_documents = [ - ('reference/index', 'reference.tex', - 'Squirrel Reference Manual', _stdauthor, 'manual'), - ('stdlib/index', 'stdlib.tex', - 'Squirrel Standard Library', _stdauthor, 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'Squirrel', u'Squirrel Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Squirrel', u'Squirrel Documentation', - author, 'Squirrel', 'The Programming Language.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False diff --git a/m_packages/squirrel/doc/source/index.rst b/m_packages/squirrel/doc/source/index.rst deleted file mode 100644 index 0cc1bb4d..00000000 --- a/m_packages/squirrel/doc/source/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. Squirrel documentation master file, created by - sphinx-quickstart on Sun Jan 31 00:26:52 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Squirrel's documentation -========================================= - -Contents: - -.. toctree:: - :maxdepth: 1 - - reference/index.rst - stdlib/index.rst - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` - - diff --git a/m_packages/squirrel/doc/source/nut.ico b/m_packages/squirrel/doc/source/nut.ico deleted file mode 100644 index c28977b0209b7060618d0c6bfb7b25058fc6479e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmZQzU<5(|0RbS%!l1#(z#zuJz@P!d0zj+)#2|4P5awoJ0AY|E3`9&j#b7t-7Q@CX zpBaQL6Btx{N?}q2=`;+Gz`y_&V^R`i12LGC6rr>-h)z&aQWij^l|XzJ7Z;aMpaK@x z&`=Pa;1U`d08$4O2GMCiPXL91AOTE5iU0qL828OO3_yJh3;@hmN5B98 diff --git a/m_packages/squirrel/doc/source/reference/api/bytecode_serialization.rst b/m_packages/squirrel/doc/source/reference/api/bytecode_serialization.rst deleted file mode 100644 index 0e1f586a..00000000 --- a/m_packages/squirrel/doc/source/reference/api/bytecode_serialization.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _api_ref_bytecode_serialization: - -====================== -Bytecode serialization -====================== - -.. _sq_readclosure: - -.. c:function:: SQRESULT sq_readclosure(HSQUIRRELVM v, SQREADFUNC readf, SQUserPointer up) - - :param HSQUIRRELVM v: the target VM - :param SQREADFUNC readf: pointer to a read function that will be invoked by the vm during the serialization. - :param SQUserPointer up: pointer that will be passed to each call to the read function - :returns: a SQRESULT - -serialize (read) a closure and pushes it on top of the stack, the source is user defined through a read callback. - - - - - -.. _sq_writeclosure: - -.. c:function:: SQRESULT sq_writeclosure(HSQUIRRELVM v, SQWRITEFUNC writef, SQUserPointer up) - - :param HSQUIRRELVM v: the target VM - :param SQWRITEFUNC writef: pointer to a write function that will be invoked by the vm during the serialization. - :param SQUserPointer up: pointer that will be passed to each call to the write function - :returns: a SQRESULT - :remarks: closures with free variables cannot be serialized - -serializes(writes) the closure on top of the stack, the destination is user defined through a write callback. diff --git a/m_packages/squirrel/doc/source/reference/api/calls.rst b/m_packages/squirrel/doc/source/reference/api/calls.rst deleted file mode 100644 index 17a4f2c2..00000000 --- a/m_packages/squirrel/doc/source/reference/api/calls.rst +++ /dev/null @@ -1,130 +0,0 @@ -.. _api_ref_calls: - -===== -Calls -===== - -.. _sq_call: - -.. c:function:: SQRESULT sq_call(HSQUIRRELVM v, SQInteger params, SQBool retval, SQBool raiseerror) - - :param HSQUIRRELVM v: the target VM - :param SQInteger params: number of parameters of the function - :param SQBool retval: if true the function will push the return value in the stack - :param SQBool raiseerror: if true, if a runtime error occurs during the execution of the call, the vm will invoke the error handler. - :returns: a SQRESULT - -calls a closure or a native closure. The function pops all the parameters and leave the closure in the stack; if retval is true the return value of the closure is pushed. If the execution of the function is suspended through sq_suspendvm(), the closure and the arguments will not be automatically popped from the stack. - -When using to create an instance, push a dummy parameter to be filled with the newly-created instance for the constructor's 'this' parameter. - - - -.. _sq_getcallee: - -.. c:function:: SQRESULT sq_getcallee(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: a SQRESULT - -push in the stack the currently running closure. - - - - - -.. _sq_getlasterror: - -.. c:function:: SQRESULT sq_getlasterror(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: a SQRESULT - :remarks: the pushed error descriptor can be any valid squirrel type. - -pushes the last error in the stack. - - - - - -.. _sq_getlocal: - -.. c:function:: const SQChar * sq_getlocal(HSQUIRRELVM v, SQUnsignedInteger level, SQUnsignedInteger nseq) - - :param HSQUIRRELVM v: the target VM - :param SQUnsignedInteger level: the function index in the calls stack, 0 is the current function - :param SQUnsignedInteger nseq: the index of the local variable in the stack frame (0 is 'this') - :returns: the name of the local variable if a variable exists at the given level/seq otherwise NULL. - -Returns the name of a local variable given stackframe and sequence in the stack and pushes is current value. Free variables are treated as local variables, by sq_getlocal(), and will be returned as they would be at the base of the stack, just before the real local variables. - - - - - -.. _sq_reseterror: - -.. c:function:: void sq_reseterror(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - -reset the last error in the virtual machine to null - - - - - -.. _sq_resume: - -.. c:function:: SQRESULT sq_resume(HSQUIRRELVM v, SQBool retval, SQBool raiseerror) - - :param HSQUIRRELVM v: the target VM - :param SQBool retval: if true the function will push the return value in the stack - :param SQBool raiseerror: if true, if a runtime error occurs during the execution of the call, the vm will invoke the error handler. - :returns: a SQRESULT - :remarks: if retval != 0 the return value of the generator is pushed. - -resumes the generator at the top position of the stack. - - -.. _sq_tailcall: - -.. c:function:: SQRESULT sq_tailcall(HSQUIRRELVM v, SQInteger nparams) - - :param HSQUIRRELVM v: the target VM - :param SQInteger params: number of parameters of the function - - Calls a closure and removes the caller function from the call stack. - This function must be invoke from a native closure and - he return value of sq_tailcall must be returned by the caller function(see example). - -*.eg* - -:: - - SQInteger tailcall_something_example(HSQUIRRELVM v) - { - //push closure and parameters here - ... - return sq_tailcall(v,2); - } - -.. _sq_throwerror: - -.. c:function:: SQRESULT sq_throwerror(HSQUIRRELVM v, const SQChar * err) - - :param HSQUIRRELVM v: the target VM - :param SQChar * err: the description of the error that has to be thrown - :returns: the value that has to be returned by a native closure in order to throw an exception in the virtual machine. - -sets the last error in the virtual machine and returns the value that has to be returned by a native closure in order to trigger an exception in the virtual machine. - - -.. _sq_throwobject: - -.. c:function:: SQRESULT sq_throwobject(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: the value that has to be returned by a native closure in order to throw an exception in the virtual machine. - -pops a value from the stack sets it as the last error in the virtual machine. Returns the value that has to be returned by a native closure in order to trigger an exception in the virtual machine (aka SQ_ERROR). diff --git a/m_packages/squirrel/doc/source/reference/api/compiler.rst b/m_packages/squirrel/doc/source/reference/api/compiler.rst deleted file mode 100644 index edb55298..00000000 --- a/m_packages/squirrel/doc/source/reference/api/compiler.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. _api_ref_compiler: - -======== -Compiler -======== - -.. _sq_compile: - -.. c:function:: SQRESULT sq_compile(HSQUIRRELVM v, HSQLEXREADFUNC read, SQUserPointer p, const SQChar * sourcename, SQBool raiseerror) - - :param HSQUIRRELVM v: the target VM - :param HSQLEXREADFUNC read: a pointer to a read function that will feed the compiler with the program. - :param SQUserPointer p: a user defined pointer that will be passed by the compiler to the read function at each invocation. - :param SQChar * sourcename: the symbolic name of the program (used only for more meaningful runtime errors) - :param SQBool raiseerror: if this value is true the compiler error handler will be called in case of an error - :returns: a SQRESULT. If the sq_compile fails nothing is pushed in the stack. - :remarks: in case of an error the function will call the function set by sq_setcompilererrorhandler(). - -compiles a squirrel program; if it succeeds, push the compiled script as function in the stack. - - - - - -.. _sq_compilebuffer: - -.. c:function:: SQRESULT sq_compilebuffer(HSQUIRRELVM v, const SQChar* s, SQInteger size, const SQChar * sourcename, SQBool raiseerror) - - :param HSQUIRRELVM v: the target VM - :param SQChar * s: a pointer to the buffer that has to be compiled. - :param SQInteger size: size in characters of the buffer passed in the parameter 's'. - :param SQChar * sourcename: the symbolic name of the program (used only for more meaningful runtime errors) - :param SQBool raiseerror: if this value true the compiler error handler will be called in case of an error - :returns: a SQRESULT. If the sq_compilebuffer fails nothing is pushed in the stack. - :remarks: in case of an error the function will call the function set by sq_setcompilererrorhandler(). - -compiles a squirrel program from a memory buffer; if it succeeds, push the compiled script as function in the stack. - - - - - -.. _sq_enabledebuginfo: - -.. c:function:: void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable) - - :param HSQUIRRELVM v: the target VM - :param SQBool enable: if true enables the debug info generation, if == 0 disables it. - :remarks: The function affects all threads as well. - -enable/disable the debug line information generation at compile time. - - - - - -.. _sq_notifyallexceptions: - -.. c:function:: void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable) - - :param HSQUIRRELVM v: the target VM - :param SQBool enable: if true enables the error callback notification of handled exceptions. - :remarks: By default the VM will invoke the error callback only if an exception is not handled (no try/catch traps are present in the call stack). If notifyallexceptions is enabled, the VM will call the error callback for any exception even if between try/catch blocks. This feature is useful for implementing debuggers. - -enable/disable the error callback notification of handled exceptions. - - - - - -.. _sq_setcompilererrorhandler: - -.. c:function:: void sq_setcompilererrorhandler(HSQUIRRELVM v, SQCOMPILERERROR f) - - :param HSQUIRRELVM v: the target VM - :param SQCOMPILERERROR f: A pointer to the error handler function - :remarks: if the parameter f is NULL no function will be called when a compiler error occurs. The compiler error handler is shared between friend VMs. - -sets the compiler error handler function diff --git a/m_packages/squirrel/doc/source/reference/api/debug_interface.rst b/m_packages/squirrel/doc/source/reference/api/debug_interface.rst deleted file mode 100644 index ac929e14..00000000 --- a/m_packages/squirrel/doc/source/reference/api/debug_interface.rst +++ /dev/null @@ -1,72 +0,0 @@ -.. _api_ref_debug_interface: - -=============== -Debug interface -=============== - -.. _sq_getfunctioninfo: - -.. c:function:: SQRESULT sq_getfunctioninfo(HSQUIRRELVM v, SQInteger level, SQFunctionInfo * fi) - - :param HSQUIRRELVM v: the target VM - :param SQInteger level: calls stack level - :param SQFunctionInfo * fi: pointer to the SQFunctionInfo structure that will store the closure informations - :returns: a SQRESULT. - :remarks: the member 'funcid' of the returned SQFunctionInfo structure is a unique identifier of the function; this can be useful to identify a specific piece of squirrel code in an application like for instance a profiler. this method will fail if the closure in the stack is a native C closure. - - - -*.eg* - -:: - - - typedef struct tagSQFunctionInfo { - SQUserPointer funcid; //unique idetifier for a function (all it's closures will share the same funcid) - const SQChar *name; //function name - const SQChar *source; //function source file name - }SQFunctionInfo; - - - - - - - -.. _sq_setdebughook: - -.. c:function:: void sq_setdebughook(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :remarks: In order to receive a 'per line' callback, is necessary to compile the scripts with the line informations. Without line informations activated, only the 'call/return' callbacks will be invoked. - -pops a closure from the stack an sets it as debug hook. When a debug hook is set it overrides any previously set native or non native hooks. if the hook is null the debug hook will be disabled. - - - - - -.. _sq_setnativedebughook: - -.. c:function:: void sq_setnativedebughook(HSQUIRRELVM v, SQDEBUGHOOK hook) - - :param HSQUIRRELVM v: the target VM - :param SQDEBUGHOOK hook: the native hook function - :remarks: In order to receive a 'per line' callback, is necessary to compile the scripts with the line informations. Without line informations activated, only the 'call/return' callbacks will be invoked. - -sets the native debug hook. When a native hook is set it overrides any previously set native or non native hooks. if the hook is NULL the debug hook will be disabled. - - - - - -.. _sq_stackinfos: - -.. c:function:: SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos * si) - - :param HSQUIRRELVM v: the target VM - :param SQInteger level: calls stack level - :param SQStackInfos * si: pointer to the SQStackInfos structure that will store the stack informations - :returns: a SQRESULT. - -retrieve the calls stack informations of a ceratain level in the calls stack. diff --git a/m_packages/squirrel/doc/source/reference/api/garbage_collector.rst b/m_packages/squirrel/doc/source/reference/api/garbage_collector.rst deleted file mode 100644 index cfe03e68..00000000 --- a/m_packages/squirrel/doc/source/reference/api/garbage_collector.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. _api_ref_garbage_collector: - -================= -Garbage Collector -================= - -.. _sq_collectgarbage: - -.. c:function:: SQInteger sq_collectgarbage(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :remarks: this api only works with garbage collector builds (NO_GARBAGE_COLLECTOR is not defined) - -runs the garbage collector and returns the number of reference cycles found (and deleted) - - - - - -.. _sq_resurrectunreachable: - -.. c:function:: SQRESULT sq_resurrectunreachable(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :remarks: this api only works with garbage collector builds (NO_GARBAGE_COLLECTOR is not defined) - -runs the garbage collector and pushes an array in the stack containing all unreachable object found. If no unreachable object is found, null is pushed instead. This function is meant to help debug reference cycles. diff --git a/m_packages/squirrel/doc/source/reference/api/object_creation_and_handling.rst b/m_packages/squirrel/doc/source/reference/api/object_creation_and_handling.rst deleted file mode 100644 index fd009150..00000000 --- a/m_packages/squirrel/doc/source/reference/api/object_creation_and_handling.rst +++ /dev/null @@ -1,696 +0,0 @@ -.. _api_ref_object_creation_and_handling: - -============================ -Object creation and handling -============================ - -.. _sq_bindenv: - -.. c:function:: SQRESULT sq_bindenv(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target closure - :returns: a SQRESULT - :remarks: the cloned closure holds the environment object as weak reference - -pops an object from the stack (must be a table, instance, or class); clones the closure at position idx in the stack and sets the popped object as environment of the cloned closure. Then pushes the new cloned closure on top of the stack. - - - - - -.. _sq_createinstance: - -.. c:function:: SQRESULT sq_createinstance(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target class - :returns: a SQRESULT - :remarks: the function doesn't invoke the instance contructor. To create an instance and automatically invoke its contructor, sq_call must be used instead. - -creates an instance of the class at 'idx' position in the stack. The new class instance is pushed on top of the stack. - - - - - -.. _sq_getbool: - -.. c:function:: SQRESULT sq_getbool(HSQUIRRELVM v, SQInteger idx, SQBool * b) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQBool * b: A pointer to the bool that will store the value - :returns: a SQRESULT - -gets the value of the bool at the idx position in the stack. - - - - - -.. _sq_getbyhandle: - -.. c:function:: SQRESULT sq_getbyhandle(HSQUIRRELVM v, SQInteger idx, HSQMEMBERHANDLE * handle) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack pointing to the class or instance - :param HSQMEMBERHANDLE * handle: a pointer to the member handle - :returns: a SQRESULT - -pushes the value of a class or instance member using a member handle (see sq_getmemberhandle) - - - - - -.. _sq_getclosureinfo: - -.. c:function:: SQRESULT sq_getclosureinfo(HSQUIRRELVM v, SQInteger idx, SQInteger * nparams, SQInteger * nfreevars) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target closure - :param SQInteger * nparams: a pointer to an integer that will store the number of parameters - :param SQInteger * nfreevars: a pointer to an integer that will store the number of free variables - :returns: an SQRESULT - -retrieves number of parameters and number of freevariables from a squirrel closure. - - - - - -.. _sq_getclosurename: - -.. c:function:: SQRESULT sq_getclosurename(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target closure - :returns: an SQRESULT - -pushes the name of the closure at position idx in the stack. Note that the name can be a string or null if the closure is anonymous or a native closure with no name assigned to it. - - - - - -.. _sq_getclosureroot: - -.. c:function:: SQRESULT sq_getclosureroot(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target closure - :returns: an SQRESULT - -pushes the root table of the closure at position idx in the stack - - - - - -.. _sq_getfloat: - -.. c:function:: SQRESULT sq_getfloat(HSQUIRRELVM v, SQInteger idx, SQFloat * f) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQFloat * f: A pointer to the float that will store the value - :returns: a SQRESULT - -gets the value of the float at the idx position in the stack. - - - - - -.. _sq_gethash: - -.. c:function:: SQHash sq_gethash(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :returns: the hash key of the value at the position idx in the stack - :remarks: the hash value function is the same used by the VM. - -returns the hash key of a value at the idx position in the stack. - - - - - -.. _sq_getinstanceup: - -.. c:function:: SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer * up, SQUSerPointer typetag,SQBool throwerror) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer * up: a pointer to the userpointer that will store the result - :param SQUSerPointer typetag: the typetag that has to be checked, if this value is set to 0 the typetag is ignored. - :param SQBool throwerror: if SQTrue the function sets the last error string in case of failure - :returns: a SQRESULT - -gets the userpointer of the class instance at position idx in the stack. if the parameter 'typetag' is different than 0, the function checks that the class or a base class of the instance is tagged with the specified tag; if not the function fails. If 'typetag' is 0 the function will ignore the tag check. - - - - - -.. _sq_getinteger: - -.. c:function:: SQRESULT sq_getinteger(HSQUIRRELVM v, SQInteger idx, SQInteger * i) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQInteger * i: A pointer to the integer that will store the value - :returns: a SQRESULT - -gets the value of the integer at the idx position in the stack. - - - - - -.. _sq_getmemberhandle: - -.. c:function:: SQRESULT sq_getmemberhandle(HSQUIRRELVM v, SQInteger idx, HSQMEMBERHANDLE * handle) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack pointing to the class - :param HSQMEMBERHANDLE * handle: a pointer to the variable that will store the handle - :returns: a SQRESULT - :remarks: This method works only with classes. A handle retrieved through a class can be later used to set or get values from one of the class instances. Handles retrieved from base classes are still valid in derived classes and respect inheritance rules. - -pops a value from the stack and uses it as index to fetch the handle of a class member. The handle can be later used to set or get the member value using sq_getbyhandle(), sq_setbyhandle(). - - - - - -.. _sq_getreleasehook: - -.. c:function:: SQRELEASEHOOK sq_getreleasehook(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :remarks: if the object that position idx is not an userdata, class instance or class the function returns NULL. - -gets the release hook of the userdata, class instance or class at position idx in the stack. - - - - - -.. _sq_getscratchpad: - -.. c:function:: SQChar * sq_getscratchpad(HSQUIRRELVM v, SQInteger minsize) - - :param HSQUIRRELVM v: the target VM - :param SQInteger minsize: the requested size for the scratchpad buffer - :remarks: the buffer is valid until the next call to sq_getscratchpad - -returns a pointer to a memory buffer that is at least as big as minsize. - - - - - -.. _sq_getsize: - -.. c:function:: SQObjectType sq_getsize(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :returns: the size of the value at the position idx in the stack - :remarks: this function only works with strings, arrays, tables, classes, instances, and userdata if the value is not a valid type, the function will return -1. - -returns the size of a value at the idx position in the stack. If the value is a class or a class instance the size returned is the size of the userdata buffer (see sq_setclassudsize). - - - - - -.. _sq_getstring: - -.. c:function:: SQRESULT sq_getstring(HSQUIRRELVM v, SQInteger idx, const SQChar ** c) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQChar ** c: a pointer to the pointer that will point to the string - :returns: a SQRESULT - -gets a pointer to the string at the idx position in the stack. - - - - - -.. _sq_getstringandsize: - -.. c:function:: SQRESULT sq_getstringandsize(HSQUIRRELVM v, SQInteger idx, const SQChar ** c, SQInteger* size) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQChar ** c: a pointer to the pointer that will point to the string - :param SQInteger * size: a pointer to a SQInteger which will receive the size of the string - :returns: a SQRESULT - -gets a pointer to the string at the idx position in the stack; additionally retrieves its size. - - - - -.. _sq_getthread: - -.. c:function:: SQRESULT sq_getthread(HSQUIRRELVM v, SQInteger idx, HSQUIRRELVM* vm) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param HSQUIRRELVM * vm: A pointer to the variable that will store the thread pointer - :returns: a SQRESULT - -gets a pointer to the thread the idx position in the stack. - - - - - -.. _sq_gettype: - -.. c:function:: SQObjectType sq_gettype(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :returns: the type of the value at the position idx in the stack - -returns the type of the value at the position idx in the stack - - - - - -.. _sq_gettypetag: - -.. c:function:: SQRESULT sq_gettypetag(HSQUIRRELVM v, SQInteger idx, SQUserPointer * typetag) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer * typetag: a pointer to the variable that will store the tag - :returns: a SQRESULT - :remarks: the function works also with instances. if the taget object is an instance, the typetag of it's base class is fetched. - -gets the typetag of the object (userdata or class) at position idx in the stack. - - - - - -.. _sq_getuserdata: - -.. c:function:: SQRESULT sq_getuserdata(HSQUIRRELVM v, SQInteger idx, SQUserPointer * p, SQUserPointer * typetag) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer * p: A pointer to the userpointer that will point to the userdata's payload - :param SQUserPointer * typetag: A pointer to a SQUserPointer that will store the userdata tag(see sq_settypetag). The parameter can be NULL. - :returns: a SQRESULT - -gets a pointer to the value of the userdata at the idx position in the stack. - - - - - -.. _sq_getuserpointer: - -.. c:function:: SQRESULT sq_getuserpointer(HSQUIRRELVM v, SQInteger idx, SQUserPointer * p) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer * p: A pointer to the userpointer that will store the value - :returns: a SQRESULT - -gets the value of the userpointer at the idx position in the stack. - - - - - -.. _sq_newarray: - -.. c:function:: void sq_newarray(HSQUIRRELVM v, SQInteger size) - - :param HSQUIRRELVM v: the target VM - :param SQInteger size: the size of the array that as to be created - -creates a new array and pushes it in the stack - - - - - -.. _sq_newclass: - -.. c:function:: SQRESULT sq_newclass(HSQUIRRELVM v, SQBool hasbase) - - :param HSQUIRRELVM v: the target VM - :param SQBool hasbase: if the parameter is true the function expects a base class on top of the stack. - :returns: a SQRESULT - -creates a new class object. If the parameter 'hasbase' is different than 0, the function pops a class from the stack and inherits the new created class from it. The new class is pushed in the stack. - - - - - -.. _sq_newclosure: - -.. c:function:: void sq_newclosure(HSQUIRRELVM v, HSQFUNCTION func, SQInteger nfreevars) - - :param HSQUIRRELVM v: the target VM - :param HSQFUNCTION func: a pointer to a native-function - :param SQInteger nfreevars: number of free variables(can be 0) - -create a new native closure, pops n values set those as free variables of the new closure, and push the new closure in the stack. - - - - - -.. _sq_newtable: - -.. c:function:: void sq_newtable(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - -creates a new table and pushes it in the stack - - - - - -.. _sq_newtableex: - -.. c:function:: void sq_newtableex(HSQUIRRELVM v, SQInteger initialcapacity) - - :param HSQUIRRELVM v: the target VM - :param SQInteger initialcapacity: number of key/value pairs to preallocate - -creates a new table and pushes it in the stack. This function allows you to specify the initial capacity of the table to prevent unnecessary rehashing when the number of slots required is known at creation-time. - - - - - -.. _sq_newuserdata: - -.. c:function:: SQUserPointer sq_newuserdata(HSQUIRRELVM v, SQUnsignedInteger size) - - :param HSQUIRRELVM v: the target VM - :param SQUnsignedInteger size: the size of the userdata that as to be created in bytes - -creates a new userdata and pushes it in the stack - - - - - -.. _sq_pushbool: - -.. c:function:: void sq_pushbool(HSQUIRRELVM v, SQBool b) - - :param HSQUIRRELVM v: the target VM - :param SQBool b: the bool that has to be pushed(SQTrue or SQFalse) - -pushes a bool into the stack - - - - - -.. _sq_pushfloat: - -.. c:function:: void sq_pushfloat(HSQUIRRELVM v, SQFloat f) - - :param HSQUIRRELVM v: the target VM - :param SQFloat f: the float that has to be pushed - -pushes a float into the stack - - - - - -.. _sq_pushinteger: - -.. c:function:: void sq_pushinteger(HSQUIRRELVM v, SQInteger n) - - :param HSQUIRRELVM v: the target VM - :param SQInteger n: the integer that has to be pushed - -pushes an integer into the stack - - - - - -.. _sq_pushnull: - -.. c:function:: void sq_pushnull(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - -pushes a null value into the stack - - - - - -.. _sq_pushstring: - -.. c:function:: void sq_pushstring(HSQUIRRELVM v, const SQChar * s, SQInteger len) - - :param HSQUIRRELVM v: the target VM - :param SQChar * s: pointer to the string that has to be pushed - :param SQInteger len: length of the string pointed by s - :remarks: if the parameter len is less than 0 the VM will calculate the length using strlen(s) - -pushes a string in the stack - - - - - -.. _sq_pushuserpointer: - -.. c:function:: void sq_pushuserpointer(HSQUIRRELVM v, SQUserPointer p) - - :param HSQUIRRELVM v: the target VM - :param SQUserPointer p: the pointer that as to be pushed - -pushes a userpointer into the stack - - - - - -.. _sq_setbyhandle: - -.. c:function:: SQRESULT sq_setbyhandle(HSQUIRRELVM v, SQInteger idx, HSQMEMBERHANDLE * handle) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack pointing to the class - :param HSQMEMBERHANDLE * handle: a pointer the member handle - :returns: a SQRESULT - -pops a value from the stack and sets it to a class or instance member using a member handle (see sq_getmemberhandle) - - - - - -.. _sq_setclassudsize: - -.. c:function:: SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack pointing to the class - :param SQInteger udsize: size in bytes reserved for user data - :returns: a SQRESULT - -Sets the user data size of a class. If a class 'user data size' is greater than 0. When an instance of the class is created additional space will be reserved at the end of the memory chunk where the instance is stored. The userpointer of the instance will also be automatically set to this memory area. This allows you to minimize allocations in applications that have to carry data along with the class instance. - - - - - -.. _sq_setclosureroot: - -.. c:function:: SQRESULT sq_setclosureroot(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target closure - :returns: an SQRESULT - -pops a table from the stack and sets it as root of the closure at position idx in the stack - - - - - -.. _sq_setinstanceup: - -.. c:function:: SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer up) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer up: an arbitrary user pointer - :returns: a SQRESULT - -sets the userpointer of the class instance at position idx in the stack. - - - - - -.. _sq_setnativeclosurename: - -.. c:function:: SQRESULT sq_setnativeclosurename(HSQUIRRELVM v, SQInteger idx, const SQChar * name) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target native closure - :param SQChar * name: the name that has to be set - :returns: an SQRESULT - -sets the name of the native closure at the position idx in the stack. The name of a native closure is purely for debug purposes. The name is retrieved through the function sq_stackinfos() while the closure is in the call stack. - - - - - -.. _sq_setparamscheck: - -.. c:function:: SQRESULT sq_setparamscheck(HSQUIRRELVM v, SQInteger nparamscheck, const SQChar * typemask) - - :param HSQUIRRELVM v: the target VM - :param SQInteger nparamscheck: defines the parameters number check policy (0 disables the param checking). If nparamscheck is greater than 0, the VM ensures that the number of parameters is exactly the number specified in nparamscheck (eg. if nparamscheck == 3 the function can only be called with 3 parameters). If nparamscheck is less than 0 the VM ensures that the closure is called with at least the absolute value of the number specified in nparamcheck (eg. nparamscheck == -3 will check that the function is called with at least 3 parameters). The hidden parameter 'this' is included in this number; free variables aren't. If SQ_MATCHTYPEMASKSTRING is passed instead of the number of parameters, the function will automatically infer the number of parameters to check from the typemask (eg. if the typemask is ".sn", it is like passing 3). - :param SQChar * typemask: defines a mask to validate the parametes types passed to the function. If the parameter is NULL, no typechecking is applied (default). - :remarks: The typemask consists in a zero terminated string that represent the expected parameter type. The types are expressed as follows: 'o' null, 'i' integer, 'f' float, 'n' integer or float, 's' string, 't' table, 'a' array, 'u' userdata, 'c' closure and nativeclosure, 'g' generator, 'p' userpointer, 'v' thread, 'x' instance(class instance), 'y' class, 'b' bool. and '.' any type. The symbol '|' can be used as 'or' to accept multiple types on the same parameter. There isn't any limit on the number of 'or' that can be used. Spaces are ignored so can be inserted between types to increase readability. For instance to check a function that expect a table as 'this' a string as first parameter and a number or a userpointer as second parameter, the string would be "tsn|p" (table,string,number or userpointer). If the parameters mask is contains fewer parameters than 'nparamscheck', the remaining parameters will not be typechecked. - -Sets the parameter validation scheme for the native closure at the top position in the stack. Allows you to validate the number of parameters accepted by the function and optionally their types. If the function call does not comply with the parameter schema set by sq_setparamscheck, an exception is thrown. - -*.eg* - -:: - - //example - SQInteger testy(HSQUIRRELVM v) - { - SQUserPointer p; - const SQChar *s; - SQInteger i; - //no type checking, if the call complies with the mask - //surely the functions will succeed. - sq_getuserdata(v,1,&p,NULL); - sq_getstring(v,2,&s); - sq_getinteger(v,3,&i); - //... do something - return 0; - } - - //the reg code - - //....stuff - sq_newclosure(v,testy,0); - //expects exactly 3 parameters(userdata,string,number) - sq_setparamscheck(v,3,_SC("usn")); - //....stuff - - - - - - -.. _sq_setreleasehook: - -.. c:function:: void sq_setreleasehook(HSQUIRRELVM v, SQInteger idx, SQRELEASEHOOK hook) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQRELEASEHOOK hook: a function pointer to the hook(see sample below) - :remarks: the function hook is called by the VM before the userdata memory is deleted. - -sets the release hook of the userdata, class instance, or class at position idx in the stack. - -*.eg* - -:: - - - /* tyedef SQInteger (*SQRELEASEHOOK)(SQUserPointer,SQInteger size); */ - - SQInteger my_release_hook(SQUserPointer p,SQInteger size) - { - /* do something here */ - return 1; - } - - - - - - -.. _sq_settypetag: - -.. c:function:: SQRESULT sq_settypetag(HSQUIRRELVM v, SQInteger idx, SQUserPointer typetag) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQUserPointer typetag: an arbitrary SQUserPointer - :returns: a SQRESULT - -sets the typetag of the object (userdata or class) at position idx in the stack. - - - - - -.. _sq_tobool: - -.. c:function:: void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool * b) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :param SQBool * b: A pointer to the bool that will store the value - :remarks: if the object is not a bool the function converts the value to bool according to squirrel's rules. For instance the number 1 will result in true, and the number 0 in false. - -gets the value at position idx in the stack as bool. - - - - - -.. _sq_tostring: - -.. c:function:: void sq_tostring(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - -converts the object at position idx in the stack to string and pushes the resulting string in the stack. - - - - - -.. _sq_typeof: - -.. c:function:: SQObjectType sq_typeof(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: an index in the stack - :returns: a SQRESULT - -pushes the type name of the value at the position idx in the stack. It also invokes the _typeof metamethod for tables and class instances that implement it; in that case the pushed object could be something other than a string (is up to the _typeof implementation). - - - diff --git a/m_packages/squirrel/doc/source/reference/api/object_manipulation.rst b/m_packages/squirrel/doc/source/reference/api/object_manipulation.rst deleted file mode 100644 index d5eb1e25..00000000 --- a/m_packages/squirrel/doc/source/reference/api/object_manipulation.rst +++ /dev/null @@ -1,451 +0,0 @@ -.. _api_ref_object_manipulation: - -==================== -Object manipulation -==================== - -.. _sq_arrayappend: - -.. c:function:: SQRESULT sq_arrayappend(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :returns: a SQRESULT - :remarks: Only works on arrays. - -pops a value from the stack and pushes it in the back of the array at the position idx in the stack. - - - - - -.. _sq_arrayinsert: - -.. c:function:: SQRESULT sq_arrayinsert(HSQUIRRELVM v, SQInteger idx, SQInteger destpos) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :param SQInteger destpos: the position in the array where the item has to be inserted - :returns: a SQRESULT - :remarks: Only works on arrays. - -pops a value from the stack and inserts it in an array at the specified position - - - - - -.. _sq_arraypop: - -.. c:function:: SQRESULT sq_arraypop(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :returns: a SQRESULT - :remarks: Only works on arrays. - -pops a value from the back of the array at the position idx in the stack. - - - - - -.. _sq_arrayremove: - -.. c:function:: SQRESULT sq_arrayremove(HSQUIRRELVM v, SQInteger idx, SQInteger itemidx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :param SQInteger itemidx: the index of the item in the array that has to be removed - :returns: a SQRESULT - :remarks: Only works on arrays. - -removes an item from an array - - - - - -.. _sq_arrayresize: - -.. c:function:: SQRESULT sq_arrayresize(HSQUIRRELVM v, SQInteger idx, SQInteger newsize) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :param SQInteger newsize: requested size of the array - :returns: a SQRESULT - :remarks: Only works on arrays. If newsize if greater than the current size the new array slots will be filled with nulls. - -resizes the array at the position idx in the stack. - - - - - -.. _sq_arrayreverse: - -.. c:function:: SQRESULT sq_arrayreverse(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target array in the stack - :returns: a SQRESULT - :remarks: Only works on arrays. - -reverses an array in place. - - - - - -.. _sq_clear: - -.. c:function:: SQRESULT sq_clear(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: Only works on tables and arrays. - -clears all the elements of the table/array at position idx in the stack. - - - - - -.. _sq_clone: - -.. c:function:: SQRESULT sq_clone(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - -pushes a clone of the table, array, or class instance at the position idx. - - - - - -.. _sq_createslot: - -.. c:function:: SQRESULT sq_createslot(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :returns: a SQRESULT - :remarks: invoke the _newslot metamethod in the table delegate. it only works on tables. [this function is deperecated since version 2.0.5 use sq_newslot() instead] - -pops a key and a value from the stack and performs a set operation on the table or class that is at position idx in the stack; if the slot does not exist, it will be created. - - - - - -.. _sq_deleteslot: - -.. c:function:: SQRESULT sq_deleteslot(HSQUIRRELVM v, SQInteger idx, SQBool pushval) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :param SQBool pushval: if this param is true the function will push the value of the deleted slot. - :returns: a SQRESULT - :remarks: invoke the _delslot metamethod in the table delegate. it only works on tables. - -pops a key from the stack and delete the slot indexed by it from the table at position idx in the stack; if the slot does not exist, nothing happens. - - - - - -.. _sq_get: - -.. c:function:: SQRESULT sq_get(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: this call will invokes the delegation system like a normal dereference it only works on tables, arrays, classes, instances and userdata; if the function fails, nothing will be pushed in the stack. - -pops a key from the stack and performs a get operation on the object at the position idx in the stack; and pushes the result in the stack. - - - - - -.. _sq_getattributes: - -.. c:function:: SQRESULT sq_getattributes(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target class in the stack - :returns: a SQRESULT - -Gets the attribute of a class member. The function pops a key from the stack and pushes the attribute of the class member indexed by they key from a class at position idx in the stack. If key is null the function gets the class level attribute. - - - - - -.. _sq_getbase: - -.. c:function:: SQRESULT sq_getbase(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target class in the stack - :returns: a SQRESULT - -pushes the base class of the 'class' at stored position idx in the stack. - - - - - -.. _sq_getclass: - -.. c:function:: SQRESULT sq_getclass(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target class instance in the stack - :returns: a SQRESULT - -pushes the class of the 'class instance' at stored position idx in the stack. - - - - - -.. _sq_getdelegate: - -.. c:function:: SQRESULT sq_getdelegate(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - -pushes the current delegate of the object at the position idx in the stack. - - - - - -.. _sq_getfreevariable: - -.. c:function:: const SQChar * sq_getfreevariable(HSQUIRRELVM v, SQInteger idx, SQInteger nval) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack(closure) - :param SQInteger nval: 0 based index of the free variable(relative to the closure). - :returns: the name of the free variable for pure squirrel closures. NULL in case of error or if the index of the variable is out of range. In case the target closure is a native closure, the return name is always "@NATIVE". - :remarks: The function works for both squirrel closure and native closure. - -gets the value of the free variable of the closure at the position idx in the stack. - - - - - -.. _sq_getweakrefval: - -.. c:function:: SQRESULT sq_getweakrefval(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target weak reference - :returns: a SQRESULT - :remarks: if the function fails, nothing is pushed in the stack. - -pushes the object pointed by the weak reference at position idx in the stack. - - - - - -.. _sq_instanceof: - -.. c:function:: SQBool sq_instanceof(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: SQTrue if the instance at position -1 in the stack is an instance of the class object at position -2 in the stack. - :remarks: The function doesn't pop any object from the stack. - -Determines if an object is an instance of a certain class. Expects an instance and a class in the stack. - - - - - -.. _sq_newmember: - -.. c:function:: SQRESULT sq_newmember(HSQUIRRELVM v, SQInteger idx, SQBool bstatic) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :param SQBool bstatic: if SQTrue creates a static member. - :returns: a SQRESULT - :remarks: Invokes the _newmember metamethod in the class. it only works on classes. - -pops a key, a value and an object (which will be set as attribute of the member) from the stack and performs a new slot operation on the class that is at position idx in the stack; if the slot does not exist, it will be created. - - - - - -.. _sq_newslot: - -.. c:function:: SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :param SQBool bstatic: if SQTrue creates a static member. This parameter is only used if the target object is a class. - :returns: a SQRESULT - :remarks: Invokes the _newslot metamethod in the table delegate. it only works on tables and classes. - -pops a key and a value from the stack and performs a set operation on the table or class that is at position idx in the stack, if the slot does not exist it will be created. - - - - - -.. _sq_next: - -.. c:function:: SQRESULT sq_next(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - -Pushes in the stack the next key and value of an array, table, or class slot. To start the iteration this function expects a null value on top of the stack; at every call the function will substitute the null value with an iterator and push key and value of the container slot. Every iteration the application has to pop the previous key and value but leave the iterator(that is used as reference point for the next iteration). The function will fail when all slots have been iterated(see Tables and arrays manipulation). - - - - - -.. _sq_rawdeleteslot: - -.. c:function:: SQRESULT sq_rawdeleteslot(HSQUIRRELVM v, SQInteger idx, SQBool pushval) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :param SQBool pushval: if this param is true the function will push the value of the deleted slot. - :returns: a SQRESULT - -Deletes a slot from a table without employing the _delslot metamethod. Pops a key from the stack and delete the slot indexed by it from the table at position idx in the stack; if the slot does not exist nothing happens. - - - - - -.. _sq_rawget: - -.. c:function:: SQRESULT sq_rawget(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: Only works on tables and arrays. - -pops a key from the stack and performs a get operation on the object at position idx in the stack, without employing delegation or metamethods. - - - - - -.. _sq_rawnewmember: - -.. c:function:: SQRESULT sq_rawnewmember(HSQUIRRELVM v, SQInteger idx, SQBool bstatic) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target table in the stack - :param SQBool bstatic: if SQTrue creates a static member. - :returns: a SQRESULT - :remarks: it only works on classes. - -pops a key, a value and an object(that will be set as attribute of the member) from the stack and performs a new slot operation on the class that is at position idx in the stack; if the slot does not exist it will be created. - - - - - -.. _sq_rawset: - -.. c:function:: SQRESULT sq_rawset(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: it only works on tables and arrays. if the function fails nothing will be pushed in the stack. - -pops a key and a value from the stack and performs a set operation on the object at position idx in the stack, without employing delegation or metamethods. - - - - - -.. _sq_set: - -.. c:function:: SQRESULT sq_set(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: this call will invoke the delegation system like a normal assignment, it only works on tables, arrays and userdata. - -pops a key and a value from the stack and performs a set operation on the object at position idx in the stack. - - - - - -.. _sq_setattributes: - -.. c:function:: SQRESULT sq_setattributes(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target class in the stack. - :returns: a SQRESULT - -Sets the attribute of a class member. The function pops a key and a value from the stack and sets the attribute (indexed by the key) on the class at position idx in the stack. If key is null the function sets the class level attribute. If the function succeed, the old attribute value is pushed in the stack. - - - - - -.. _sq_setdelegate: - -.. c:function:: SQRESULT sq_setdelegate(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :returns: a SQRESULT - :remarks: to remove the delegate from an object, set a null value. - -pops a table from the stack and sets it as the delegate of the object at the position idx in the stack. - - - - - -.. _sq_setfreevariable: - -.. c:function:: SQRESULT sq_setfreevariable(HSQUIRRELVM v, SQInteger idx, SQInteger nval) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :param SQInteger nval: 0 based index of the free variable(relative to the closure). - :returns: a SQRESULT - -pops a value from the stack and sets it as a free variable of the closure at the position idx in the stack. - - - - - -.. _sq_weakref: - -.. c:function:: void sq_weakref(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index to the target object in the stack - :returns: a SQRESULT - :remarks: if the object at idx position is one of (integer, float, bool, null), the object itself is pushed instead of a weak ref. - -pushes a weak reference to the object at position idx in the stack. diff --git a/m_packages/squirrel/doc/source/reference/api/raw_object_handling.rst b/m_packages/squirrel/doc/source/reference/api/raw_object_handling.rst deleted file mode 100644 index 9bf17651..00000000 --- a/m_packages/squirrel/doc/source/reference/api/raw_object_handling.rst +++ /dev/null @@ -1,163 +0,0 @@ -.. _api_ref_raw_object_handling: - -=================== -Raw object handling -=================== - -.. _sq_addref: - -.. c:function:: void sq_addref(HSQUIRRELVM v, HSQOBJECT * po) - - :param HSQUIRRELVM v: the target VM - :param HSQOBJECT * po: pointer to an object handler - -adds a reference to an object handler. - - - - - -.. _sq_getobjtypetag: - -.. c:function:: SQRESULT sq_getobjtypetag(HSQOBJECT * o, SQUserPointer * typetag) - - :param HSQOBJECT * o: pointer to an object handler - :param SQUserPointer * typetag: a pointer to the variable that will store the tag - :returns: a SQRESULT - :remarks: the function works also with instances. if the target object is an instance, the typetag of it's base class is fetched. - -gets the typetag of a raw object reference(userdata or class). - - - - - -.. _sq_getrefcount: - -.. c:function:: SQUnsignedInteger sq_getrefcount(HSQUIRRELVM v, HSQOBJECT * po) - - :param HSQUIRRELVM v: the target VM - :param HSQOBJECT * po: object handler - -returns the number of references of a given object. - - - - - -.. _sq_getstackobj: - -.. c:function:: SQRESULT sq_getstackobj(HSQUIRRELVM v, SQInteger idx, HSQOBJECT * po) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: index of the target object in the stack - :param HSQOBJECT * po: pointer to an object handler - :returns: a SQRESULT - -gets an object from the stack and stores it in a object handler. - - - - - -.. _sq_objtobool: - -.. c:function:: SQBool sq_objtobool(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: If the object is not a bool will always return false. - -return the bool value of a raw object reference. - - - - - -.. _sq_objtofloat: - -.. c:function:: SQFloat sq_objtofloat(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: If the object is an integer will convert it to float. If the object is not a number will always return 0. - -return the float value of a raw object reference. - - - - - -.. _sq_objtointeger: - -.. c:function:: SQInteger sq_objtointeger(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: If the object is a float will convert it to integer. If the object is not a number will always return 0. - -return the integer value of a raw object reference. - - - - - -.. _sq_objtostring: - -.. c:function:: const SQChar* sq_objtostring(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: If the object doesn't reference a string it returns NULL. - -return the string value of a raw object reference. - - - - - -.. _sq_objtouserpointer: - -.. c:function:: SQUserPointer sq_objtouserpointer(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: If the object doesn't reference a userpointer it returns NULL. - -return the userpointer value of a raw object reference. - - - - - -.. _sq_pushobject: - -.. c:function:: void sq_pushobject(HSQUIRRELVM v, HSQOBJECT obj) - - :param HSQUIRRELVM v: the target VM - :param HSQOBJECT obj: object handler - -push an object referenced by an object handler into the stack. - - - - - -.. _sq_release: - -.. c:function:: SQBool sq_release(HSQUIRRELVM v, HSQOBJECT * po) - - :param HSQUIRRELVM v: the target VM - :param HSQOBJECT * po: pointer to an object handler - :returns: SQTrue if the object handler released has lost all is references(the ones added with sq_addref). SQFalse otherwise. - :remarks: the function will reset the object handler to null when it loses all references. - -remove a reference from an object handler. - - - - - -.. _sq_resetobject: - -.. c:function:: void sq_resetobject(HSQOBJECT * po) - - :param HSQOBJECT * po: pointer to an object handler - :remarks: Every object handler has to be initialized with this function. - -resets(initialize) an object handler. diff --git a/m_packages/squirrel/doc/source/reference/api/stack_operations.rst b/m_packages/squirrel/doc/source/reference/api/stack_operations.rst deleted file mode 100644 index 3f59bb2d..00000000 --- a/m_packages/squirrel/doc/source/reference/api/stack_operations.rst +++ /dev/null @@ -1,107 +0,0 @@ -.. _api_ref_stack_operations: - -================ -Stack Operations -================ - -.. _sq_cmp: - -.. c:function:: SQInteger sq_cmp(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: > 0 if obj1>obj2 - :returns: == 0 if obj1==obj2 - :returns: < 0 if obj1 0. :: - - sq_pushroottable(v); - sq_pushstring(v,"foo",-1); - sq_get(v,-2); //get the function from the root table - sq_pushroottable(v); //'this' (function environment object) - sq_pushinteger(v,1); - sq_pushfloat(v,2.0); - sq_pushstring(v,"three",-1); - sq_call(v,4,SQFalse,SQFalse); - sq_pop(v,2); //pops the roottable and the function - -this is equivalent to the following Squirrel code:: - - foo(1,2.0,"three"); - -If a runtime error occurs (or a exception is thrown) during the squirrel code execution -the sq_call will fail. diff --git a/m_packages/squirrel/doc/source/reference/embedding/compiling_a_script.rst b/m_packages/squirrel/doc/source/reference/embedding/compiling_a_script.rst deleted file mode 100644 index 88c15c86..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/compiling_a_script.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. embedding_compiling_a_script: - -================== -Compiling a script -================== - -You can compile a Squirrel script with the function *sq_compile*.:: - - typedef SQInteger (*SQLEXREADFUNC)(SQUserPointer userdata); - - SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p, - const SQChar *sourcename,SQBool raiseerror); - -In order to compile a script is necessary for the host application to implement a reader -function (SQLEXREADFUNC); this function is used to feed the compiler with the script -data. -The function is called every time the compiler needs a character; It has to return a -character code if succeed or 0 if the source is finished. - -If sq_compile succeeds, the compiled script will be pushed as Squirrel function in the -stack. - -.. :note:: - In order to execute the script, the function generated by *sq_compile()* has - to be called through *sq_call()* - -Here an example of a 'read' function that read from a file: :: - - SQInteger file_lexfeedASCII(SQUserPointer file) - { - int ret; - char c; - if( ( ret=fread(&c,sizeof(c),1,(FILE *)file )>0) ) - return c; - return 0; - } - - int compile_file(HSQUIRRELVM v,const char *filename) - { - FILE *f=fopen(filename,"rb"); - if(f) - { - sq_compile(v,file_lexfeedASCII,f,filename,1); - fclose(f); - return 1; - } - return 0; - } - -When the compiler fails for a syntax error it will try to call the 'compiler error handler'; -this function must be declared as follow: :: - - typedef void (*SQCOMPILERERROR)(HSQUIRRELVM /*v*/,const SQChar * /*desc*/,const SQChar * /*source*/, - SQInteger /*line*/,SQInteger /*column*/); - -and can be set with the following API call:: - - void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f); diff --git a/m_packages/squirrel/doc/source/reference/embedding/creating_a_c_function.rst b/m_packages/squirrel/doc/source/reference/embedding/creating_a_c_function.rst deleted file mode 100644 index 43772f38..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/creating_a_c_function.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. _embedding_creating_a_c_function: - -=================== -Create a C function -=================== - -A native C function must have the following prototype: :: - - typedef SQInteger (*SQFUNCTION)(HSQUIRRELVM); - -The parameters is an handle to the calling VM and the return value is an integer -respecting the following rules: - -* 1 if the function returns a value -* 0 if the function does not return a value -* SQ_ERROR runtime error is thrown - -In order to obtain a new callable squirrel function from a C function pointer, is necessary -to call sq_newclosure() passing the C function to it; the new Squirrel function will be -pushed in the stack. - -When the function is called, the stackbase is the first parameter of the function and the -top is the last. In order to return a value the function has to push it in the stack and -return 1. - -Function parameters are in the stack from position 1 ('this') to *n*. -*sq_gettop()* can be used to determinate the number of parameters. - -If the function has free variables, those will be in the stack after the explicit parameters -an can be handled as normal parameters. Note also that the value returned by *sq_gettop()* will be -affected by free variables. *sq_gettop()* will return the number of parameters plus -number of free variables. - -Here an example, the following function print the value of each argument and return the -number of arguments. :: - - SQInteger print_args(HSQUIRRELVM v) - { - SQInteger nargs = sq_gettop(v); //number of arguments - for(SQInteger n=1;n<=nargs;n++) - { - printf("arg %d is ",n); - switch(sq_gettype(v,n)) - { - case OT_NULL: - printf("null"); - break; - case OT_INTEGER: - printf("integer"); - break; - case OT_FLOAT: - printf("float"); - break; - case OT_STRING: - printf("string"); - break; - case OT_TABLE: - printf("table"); - break; - case OT_ARRAY: - printf("array"); - break; - case OT_USERDATA: - printf("userdata"); - break; - case OT_CLOSURE: - printf("closure(function)"); - break; - case OT_NATIVECLOSURE: - printf("native closure(C function)"); - break; - case OT_GENERATOR: - printf("generator"); - break; - case OT_USERPOINTER: - printf("userpointer"); - break; - case OT_CLASS: - printf("class"); - break; - case OT_INSTANCE: - printf("instance"); - break; - case OT_WEAKREF: - printf("weak reference"); - break; - default: - return sq_throwerror(v,"invalid param"); //throws an exception - } - } - printf("\n"); - sq_pushinteger(v,nargs); //push the number of arguments as return value - return 1; //1 because 1 value is returned - } - -Here an example of how to register a function:: - - SQInteger register_global_func(HSQUIRRELVM v,SQFUNCTION f,const char *fname) - { - sq_pushroottable(v); - sq_pushstring(v,fname,-1); - sq_newclosure(v,f,0); //create a new function - sq_newslot(v,-3,SQFalse); - sq_pop(v,1); //pops the root table - return 0; - } diff --git a/m_packages/squirrel/doc/source/reference/embedding/debug_interface.rst b/m_packages/squirrel/doc/source/reference/embedding/debug_interface.rst deleted file mode 100644 index 3d38bf27..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/debug_interface.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. _embedding_debug_interface: - -=============== -Debug Interface -=============== - -The squirrel VM exposes a very simple debug interface that allows to easily built a full -featured debugger. -Through the functions sq_setdebughook and sq_setnativedebughook is possible in fact to set a callback function that -will be called every time the VM executes an new line of a script or if a function get -called/returns. The callback will pass as argument the current line the current source and the -current function name (if any).:: - - SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v); - -or :: - - SQUIRREL_API void sq_setnativedebughook(HSQUIRRELVM v,SQDEBUGHOOK hook); - -The following code shows how a debug hook could look like(obviously is possible to -implement this function in C as well). :: - - function debughook(event_type,sourcefile,line,funcname) - { - local fname=funcname?funcname:"unknown"; - local srcfile=sourcefile?sourcefile:"unknown" - switch (event_type) { - case 'l': //called every line(that contains some code) - ::print("LINE line [" + line + "] func [" + fname + "]"); - ::print("file [" + srcfile + "]\n"); - break; - case 'c': //called when a function has been called - ::print("LINE line [" + line + "] func [" + fname + "]"); - ::print("file [" + srcfile + "]\n"); - break; - case 'r': //called when a function returns - ::print("LINE line [" + line + "] func [" + fname + "]"); - ::print("file [" + srcfile + "]\n"); - break; - } - } - -The parameter *event_type* can be 'l' ,'c' or 'r' ; a hook with a 'l' event is called for each line that -gets executed, 'c' every time a function gets called and 'r' every time a function returns. - -A full-featured debugger always allows displaying local variables and calls stack. -The call stack information are retrieved through sq_getstackinfos():: - - SQInteger sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si); - -While the local variables info through sq_getlocal():: - - SQInteger sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger nseq); - -In order to receive line callbacks the scripts have to be compiled with debug infos enabled -this is done through sq_enabledebuginfo(); :: - - void sq_enabledebuginfo(HSQUIRRELVM v, SQInteger debuginfo); diff --git a/m_packages/squirrel/doc/source/reference/embedding/error_conventions.rst b/m_packages/squirrel/doc/source/reference/embedding/error_conventions.rst deleted file mode 100644 index f86e7416..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/error_conventions.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _embedding_error_convetions: - - -======================== -Error Conventions -======================== - -.. index:: - single: Error Conventions - -Most of the functions in the API return a SQRESULT value; SQRESULT indicates if a -function completed successfully or not. -The macros SQ_SUCCEEDED() and SQ_FAILED() are used to test the result of a function.:: - - if(SQ_FAILED(sq_getstring(v,-1,&s))) - printf("getstring failed"); diff --git a/m_packages/squirrel/doc/source/reference/embedding/memory_management.rst b/m_packages/squirrel/doc/source/reference/embedding/memory_management.rst deleted file mode 100644 index ad0fb082..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/memory_management.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. _embedding_memory_management: - -======================== -Memory Management -======================== - -.. index:: single: Memory Management - -Squirrel uses reference counting (RC) as primary system for memory management; -however, the virtual machine (VM) has an auxiliary -mark and sweep garbage collector that can be invoked on demand. - -There are 2 possible compile time options: - - * The default configuration consists in RC plus a mark and sweep garbage collector. - The host program can call the function sq_collectgarbage() and perform a garbage collection cycle - during the program execution. The garbage collector isn't invoked by the VM and has to - be explicitly called by the host program. - - * The second a situation consists in RC only(define NO_GARBAGE_COLLECTOR); in this case is impossible for - the VM to detect reference cycles, so is the programmer that has to solve them explicitly in order to - avoid memory leaks. - -The only advantage introduced by the second option is that saves 2 additional -pointers that have to be stored for each object in the default configuration with -garbage collector(8 bytes for 32 bits systems). -The types involved are: tables, arrays, functions, threads, userdata and generators; all other -types are untouched. These options do not affect execution speed. diff --git a/m_packages/squirrel/doc/source/reference/embedding/references_from_c.rst b/m_packages/squirrel/doc/source/reference/embedding/references_from_c.rst deleted file mode 100644 index ba84042c..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/references_from_c.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. embedding_references_from_c: - -======================================================== -Mantaining references to Squirrel values from the C API -======================================================== - -Squirrel allows to reference values through the C API; the function sq_getstackobj() gets -a handle to a squirrel object(any type). The object handle can be used to control the lifetime -of an object by adding or removing references to it( see sq_addref() and sq_release()). -The object can be also re-pushed in the VM stack using sq_pushobject().:: - - HSQOBJECT obj; - - sq_resetobject(&obj); //initialize the handle - sq_getstackobj(v,-2,&obj); //retrieve an object handle from the pos -2 - sq_addref(v,&obj); //adds a reference to the object - - ... //do stuff - - sq_pushobject(v,obj); //push the object in the stack - sq_release(v,&obj); //relese the object diff --git a/m_packages/squirrel/doc/source/reference/embedding/runtime_error_handling.rst b/m_packages/squirrel/doc/source/reference/embedding/runtime_error_handling.rst deleted file mode 100644 index b956e4be..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/runtime_error_handling.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. _embedding_runtime_error_handling: - -====================== -Runtime error handling -====================== - -When an exception is not handled by Squirrel code with a try/catch statement, a runtime -error is raised and the execution of the current program is interrupted. It is possible to -set a call back function to intercept the runtime error from the host program; this is -useful to show meaningful errors to the script writer and for implementing visual -debuggers. -The following API call pops a Squirrel function from the stack and sets it as error handler.:: - - SQUIRREL_API void sq_seterrorhandler(HSQUIRRELVM v); - -The error handler is called with 2 parameters, an environment object (this) and a object. -The object can be any squirrel type. diff --git a/m_packages/squirrel/doc/source/reference/embedding/tables_and_arrays_manipulation.rst b/m_packages/squirrel/doc/source/reference/embedding/tables_and_arrays_manipulation.rst deleted file mode 100644 index 8378a102..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/tables_and_arrays_manipulation.rst +++ /dev/null @@ -1,70 +0,0 @@ -.. _embedding_tables_and_arrays_manipulation: - -============================== -Tables and arrays manipulation -============================== - -A new table is created calling sq_newtable, this function pushes a new table in the stack.:: - - void sq_newtable(HSQUIRRELVM v); - -To create a new slot:: - - SQRESULT sq_newslot(HSQUIRRELVM v,SQInteger idx,SQBool bstatic); - -To set or get the table delegate:: - - SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx); - SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx); - - -A new array is created calling sq_newarray, the function pushes a new array in the -stack; if the parameters size is bigger than 0 the elements are initialized to null.:: - - void sq_newarray (HSQUIRRELVM v,SQInteger size); - -To append a value to the back of the array:: - - SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx); - -To remove a value from the back of the array:: - - SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQInteger pushval); - -To resize the array:: - - SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize); - -To retrieve the size of a table or an array you must use sq_getsize():: - - SQInteger sq_getsize(HSQUIRRELVM v,SQInteger idx); - -To set a value in an array or table:: - - SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx); - -To get a value from an array or table:: - - SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx); - -To get or set a value from a table without employing delegation:: - - SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx); - SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx); - -To iterate a table or an array:: - - SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx); - -Here an example of how to perform an iteration: :: - - //push your table/array here - sq_pushnull(v) //null iterator - while(SQ_SUCCEEDED(sq_next(v,-2))) - { - //here -1 is the value and -2 is the key - - sq_pop(v,2); //pops key and val before the nex iteration - } - - sq_pop(v,1); //pops the null iterator diff --git a/m_packages/squirrel/doc/source/reference/embedding/the_registry_table.rst b/m_packages/squirrel/doc/source/reference/embedding/the_registry_table.rst deleted file mode 100644 index 4aa5f782..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/the_registry_table.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _embedding_the_registry_table: - -================== -The registry table -================== - -The registry table is an hidden table shared between vm and all his thread(friend vms). -This table is accessible only through the C API and is meant to be an utility structure -for native C library implementation. -For instance the sqstdlib(squirrel standard library)uses it to store configuration and shared objects -delegates. -The registry is accessible through the API call *sq_pushregistrytable()*.:: - - void sq_pushregistrytable(HSQUIRRELVM v); diff --git a/m_packages/squirrel/doc/source/reference/embedding/the_stack.rst b/m_packages/squirrel/doc/source/reference/embedding/the_stack.rst deleted file mode 100644 index 9c5f9aef..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/the_stack.rst +++ /dev/null @@ -1,104 +0,0 @@ -.. _embedding_the_stack: - - -========== -The Stack -========== - -Squirrel exchanges values with the virtual machine through a stack. This mechanism has -been inherited from the language Lua. -For instance to call a Squirrel function from C it is necessary to push the function and the -arguments in the stack and then invoke the function; also when Squirrel calls a C -function the parameters will be in the stack as well. - -------------- -Stack indexes -------------- - -Many API functions can arbitrarily refer to any element in the stack through an index. -The stack indexes follow those conventions: - -* 1 is the stack base -* Negative indexes are considered an offset from top of the stack. For instance -1 isthe top of the stack. -* 0 is an invalid index - -Here an example (let's pretend that this table is the VM stack) - -+------------+--------------------+--------------------+ -| **STACK** | **positive index** | **negative index** | -+============+====================+====================+ -| "test" | 4 | -1(top) | -+------------+--------------------+--------------------+ -| 1 | 3 | -2 | -+------------+--------------------+--------------------+ -| 0.5 | 2 | -3 | -+------------+--------------------+--------------------+ -| "foo" | 1(base) | -4 | -+------------+--------------------+--------------------+ - -In this case, the function *sq_gettop* would return 4; - ------------------- -Stack manipulation ------------------- - -The API offers several functions to push and retrieve data from the Squirrel stack. - -To push a value that is already present in the stack in the top position:: - - void sq_push(HSQUIRRELVM v,SQInteger idx); - -To pop an arbitrary number of elements:: - - void sq_pop(HSQUIRRELVM v,SQInteger nelemstopop); - -To remove an element from the stack:: - - void sq_remove(HSQUIRRELVM v,SQInteger idx); - -To retrieve the top index (and size) of the current -virtual stack you must call *sq_gettop* :: - - SQInteger sq_gettop(HSQUIRRELVM v); - -To force the stack to a certain size you can call *sq_settop* :: - - void sq_settop(HSQUIRRELVM v,SQInteger newtop); - -If the newtop is bigger than the previous one, the new positions in the stack will be -filled with null values. - -The following function pushes a C value into the stack:: - - void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len); - void sq_pushfloat(HSQUIRRELVM v,SQFloat f); - void sq_pushinteger(HSQUIRRELVM v,SQInteger n); - void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p); - void sq_pushbool(HSQUIRRELVM v,SQBool b); - -this function pushes a null into the stack:: - - void sq_pushnull(HSQUIRRELVM v); - -returns the type of the value in a arbitrary position in the stack:: - - SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx); - -the result can be one of the following values: :: - - OT_NULL,OT_INTEGER,OT_FLOAT,OT_STRING,OT_TABLE,OT_ARRAY,OT_USERDATA, - OT_CLOSURE,OT_NATIVECLOSURE,OT_GENERATOR,OT_USERPOINTER,OT_BOOL,OT_INSTANCE,OT_CLASS,OT_WEAKREF - -The following functions convert a squirrel value in the stack to a C value:: - - SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c); - SQRESULT sq_getstringandsize(HSQUIRRELVM v,SQInteger idx,const SQChar **c,SQInteger size); - SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i); - SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f); - SQRESULT sq_getuserpointer(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p); - SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag); - SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *p); - -The function sq_cmp compares 2 values from the stack and returns their relation (like strcmp() in ANSI C).:: - - SQInteger sq_cmp(HSQUIRRELVM v); diff --git a/m_packages/squirrel/doc/source/reference/embedding/userdata_and_userpointers.rst b/m_packages/squirrel/doc/source/reference/embedding/userdata_and_userpointers.rst deleted file mode 100644 index 81e14f03..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/userdata_and_userpointers.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. _embedding_userdata_and_userpointers: - -========================= -Userdata and UserPointers -========================= - -Squirrel allows the host application put arbitrary data chunks into a Squirrel value, this is -possible through the data type userdata.:: - - SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size); - -When the function *sq_newuserdata* is called, Squirrel allocates a new userdata with the -specified size, returns a pointer to his payload buffer and push the object in the stack; at -this point the application can do whatever it want with this memory chunk, the VM will -automatically take cake of the memory deallocation like for every other built-in type. -A userdata can be passed to a function or stored in a table slot. By default Squirrel -cannot manipulate directly userdata; however is possible to assign a delegate to it and -define a behavior like it would be a table. -Because the application would want to do something with the data stored in a userdata -object when it get deleted, is possible to assign a callback that will be called by the VM -just before deleting a certain userdata. -This is done through the API call *sq_setreleasehook*.:: - - typedef SQInteger (*SQRELEASEHOOK)(SQUserPointer,SQInteger size); - - void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook); - -Another kind of userdata is the userpointer; this type is not a memory chunk like the -normal userdata, but just a 'void*' pointer. It cannot have a delegate and is passed by -value, so pushing a userpointer doesn't cause any memory allocation.:: - - void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p); - diff --git a/m_packages/squirrel/doc/source/reference/embedding/vm_initialization.rst b/m_packages/squirrel/doc/source/reference/embedding/vm_initialization.rst deleted file mode 100644 index 03fba06c..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding/vm_initialization.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. _embedding_vm_initialization: - -============================== -Virtual Machine Initialization -============================== - -The first thing that a host application has to do, is create a virtual machine. -The host application can create any number of virtual machines through the function -*sq_open()*. -Every single VM that was created using *sq_open()* has to be released with the function *sq_close()* when it is no -longer needed.:: - - int main(int argc, char* argv[]) - { - HSQUIRRELVM v; - v = sq_open(1024); //creates a VM with initial stack size 1024 - - //do some stuff with squirrel here - - sq_close(v); - } diff --git a/m_packages/squirrel/doc/source/reference/embedding_squirrel.rst b/m_packages/squirrel/doc/source/reference/embedding_squirrel.rst deleted file mode 100644 index dc8d7fb1..00000000 --- a/m_packages/squirrel/doc/source/reference/embedding_squirrel.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. _embedding_squirrel: - -*************************** - Embedding Squirrel -*************************** - -*This section describes how to embed Squirrel in a host application, -C language knowledge is required to understand this part of the manual.* - -Because of his nature of extension language, Squirrel's compiler and virtual machine -are implemented as C library. The library exposes a set of functions to compile scripts, -call functions, manipulate data and extend the virtual machine. -All declarations needed for embedding the language in an application are in the header file 'squirrel.h'. - -.. toctree:: - embedding/memory_management.rst - embedding/build_configuration.rst - embedding/error_conventions.rst - embedding/vm_initialization.rst - embedding/the_stack.rst - embedding/runtime_error_handling.rst - embedding/compiling_a_script.rst - embedding/calling_a_function.rst - embedding/creating_a_c_function.rst - embedding/tables_and_arrays_manipulation.rst - embedding/userdata_and_userpointers.rst - embedding/the_registry_table.rst - embedding/references_from_c.rst - embedding/debug_interface.rst diff --git a/m_packages/squirrel/doc/source/reference/index.rst b/m_packages/squirrel/doc/source/reference/index.rst deleted file mode 100644 index ff4a1cc7..00000000 --- a/m_packages/squirrel/doc/source/reference/index.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. _reference: - -################################# - Squirrel 3.2 Reference Manual -################################# - -Copyright (c) 2003-2022 Alberto Demichelis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -.. toctree:: - :maxdepth: 3 - :numbered: - - introduction.rst - language.rst - embedding_squirrel.rst - api_reference.rst diff --git a/m_packages/squirrel/doc/source/reference/introduction.rst b/m_packages/squirrel/doc/source/reference/introduction.rst deleted file mode 100644 index bc83447f..00000000 --- a/m_packages/squirrel/doc/source/reference/introduction.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _introduction: - -************ -Introduction -************ - -.. index:: - single: introduction - -Squirrel is a high-level, imperative-OO programming language, designed to be a powerful -scripting tool that fits within the size, memory bandwidth, and real-time requirements of -applications like games. -Squirrel offers a wide range of features like dynamic typing, delegation, higher -order functions, generators, tail recursion, exception handling, automatic memory -management while fitting both compiler and virtual machine into about 6k lines of C++ -code. diff --git a/m_packages/squirrel/doc/source/reference/language.rst b/m_packages/squirrel/doc/source/reference/language.rst deleted file mode 100644 index 35621196..00000000 --- a/m_packages/squirrel/doc/source/reference/language.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _thelanguage: - -*************************** - The language -*************************** - -.. toctree:: - language/lexical_structure.rst - language/datatypes.rst - language/execution_context.rst - language/statements.rst - language/expressions.rst - language/tables.rst - language/arrays.rst - language/functions.rst - language/classes.rst - language/generators.rst - language/constants_and_enumerations.rst - language/threads.rst - language/weak_references.rst - language/delegation.rst - language/metamethods.rst - language/builtin_functions.rst diff --git a/m_packages/squirrel/doc/source/reference/language/arrays.rst b/m_packages/squirrel/doc/source/reference/language/arrays.rst deleted file mode 100644 index ddf5114f..00000000 --- a/m_packages/squirrel/doc/source/reference/language/arrays.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. _arrays: - - -================= -Arrays -================= - -.. index:: - single: Arrays - -An array is a sequence of values indexed by a integer number from 0 to the size of the -array minus 1. Arrays elements can be obtained through their index.:: - - local a=["I'm a string", 123] - print(typeof a[0]) //prints "string" - print(typeof a[1]) //prints "integer" - -Resizing, insertion, deletion of arrays and arrays elements is done through a set of -standard functions (see :ref:`built-in functions `). diff --git a/m_packages/squirrel/doc/source/reference/language/builtin_functions.rst b/m_packages/squirrel/doc/source/reference/language/builtin_functions.rst deleted file mode 100644 index 2f64105b..00000000 --- a/m_packages/squirrel/doc/source/reference/language/builtin_functions.rst +++ /dev/null @@ -1,693 +0,0 @@ -.. _builtin_functions: - - -================== -Built-in Functions -================== - -.. index:: - single: Built-in Functions - pair: Global Symbols; Built-in Functions - - -^^^^^^^^^^^^^^ -Global Symbols -^^^^^^^^^^^^^^ - -.. js:function:: array(size,[fill]) - -creates and returns array of a specified size. If the optional parameter fill is specified its value will be used to fill the new array's slots. If the fill parameter is omitted, null is used instead. - -.. js:function:: seterrorhandler(func) - - -sets the runtime error handler - -.. js:function:: callee() - - -returns the currently running closure - -.. js:function:: setdebughook(hook_func) - - -sets the debug hook - -.. js:function:: enabledebuginfo(enable) - -enable/disable the debug line information generation at compile time. enable != null enables. enable == null disables. - -.. js:function:: getroottable() - -returns the root table of the VM. - -.. js:function:: setroottable(table) - -sets the root table of the VM. And returns the previous root table. - -.. js:function:: getconsttable() - -returns the const table of the VM. - -.. js:function:: setconsttable(table) - -sets the const table of the VM; returns the previous const table. - -.. js:function:: assert(exp, [message]) - -throws an exception if exp is null or false. Throws "assertion failed" string by default, or message if specified. - -.. js:function:: print(x) - -prints x to the standard output - -.. js:function:: error(x) - -prints x in the standard error output - -.. js:function:: compilestring(string,[buffername]) - -compiles a string containing a squirrel script into a function and returns it:: - - local compiledscript=compilestring("::print(\"ciao\")"); - //run the script - compiledscript(); - -.. js:function:: collectgarbage() - - Runs the garbage collector and returns the number of reference cycles found (and deleted). This function only works on garbage collector builds. - -.. js:function:: resurrectunreachable() - -Runs the garbage collector and returns an array containing all unreachable object found. If no unreachable object is found, null is returned instead. This function is meant to help debugging reference cycles. This function only works on garbage collector builds. - -.. js:function:: type(obj) - -return the 'raw' type of an object without invoking the metamethod '_typeof'. - -.. js:function:: getstackinfos(level) - -returns the stack informations of a given call stack level. returns a table formatted as follow: :: - - { - func="DoStuff", //function name - - src="test.nut", //source file - - line=10, //line number - - locals = { //a table containing the local variables - - a=10, - - testy="I'm a string" - } - } - -level = 0 is getstackinfos() itself! level = 1 is the current function, level = 2 is the caller of the current function, and so on. If the stack level doesn't exist the function returns null. - -.. js:function:: newthread(threadfunc) - -creates a new cooperative thread object(coroutine) and returns it - -.. js:data:: _versionnumber_ - -integer values describing the version of VM and compiler. e.g. for Squirrel 3.0.1 this value will be 301 - -.. js:data:: _version_ - -string values describing the version of VM and compiler. - -.. js:data:: _charsize_ - -size in bytes of the internal VM representation for characters(1 for ASCII builds 2 for UNICODE builds). - -.. js:data:: _intsize_ - -size in bytes of the internal VM representation for integers(4 for 32bits builds 8 for 64bits builds). - -.. js:data:: _floatsize_ - -size in bytes of the internal VM representation for floats(4 for single precision builds 8 for double precision builds). - ------------------ -Default delegates ------------------ - -Except null and userdata every squirrel object has a default delegate containing a set of functions to manipulate and retrieve information from the object itself. - -^^^^^^^^ -Integer -^^^^^^^^ - -.. js:function:: integer.tofloat() - -convert the number to float and returns it - - -.. js:function:: integer.tostring() - -converts the number to string and returns it - - -.. js:function:: integer.tointeger() - -dummy function; returns the value of the integer. - - -.. js:function:: integer.tochar() - -returns a string containing a single character represented by the integer. - - -.. js:function:: integer.weakref() - -dummy function; returns the integer itself. - -^^^^^ -Float -^^^^^ - -.. js:function:: float.tofloat() - -returns the value of the float(dummy function) - - -.. js:function:: float.tointeger() - -converts the number to integer and returns it - - -.. js:function:: float.tostring() - -converts the number to string and returns it - - -.. js:function:: float.tochar() - -returns a string containing a single character represented by the integer part of the float. - - -.. js:function:: float.weakref() - -dummy function; returns the float itself. - -^^^^ -Bool -^^^^ - -.. js:function:: bool.tofloat() - -returns 1.0 for true 0.0 for false - - -.. js:function:: bool.tointeger() - -returns 1 for true 0 for false - - -.. js:function:: bool.tostring() - -returns "true" for true and "false" for false - - -.. js:function:: bool.weakref() - -dummy function; returns the bool itself. - -^^^^^^ -String -^^^^^^ - -.. js:function:: string.len() - -returns the string length - - -.. js:function:: string.tointeger([base]) - -Converts the string to integer and returns it. An optional parameter base can be specified--if a base is not specified, it defaults to base 10. - - -.. js:function:: string.tofloat() - -converts the string to float and returns it - - -.. js:function:: string.tostring() - -returns the string (really, a dummy function) - - -.. js:function:: string.slice(start,[end]) - -returns a section of the string as new string. Copies from start to the end (not included). If start is negative the index is calculated as length + start, if end is negative the index is calculated as length + end. If end is omitted end is equal to the string length. - - -.. js:function:: string.find(substr,[startidx]) - -Searches a sub string (substr) starting from the index startidx and returns the index of its first occurrence. If startidx is omitted the search operation starts from the beginning of the string. The function returns null if substr is not found. - - -.. js:function:: string.tolower() - -returns a lowercase copy of the string. - - -.. js:function:: string.toupper() - -returns a uppercase copy of the string. - - -.. js:function:: string.weakref() - -returns a weak reference to the object. - -^^^^^ -Table -^^^^^ - -.. js:function:: table.len() - -returns the number of slots contained in a table - - -.. js:function:: table.rawget(key) - -tries to get a value from the slot 'key' without employing delegation - - -.. js:function:: table.rawset(key,val) - -Sets the slot 'key' with the value 'val' without employing delegation. If the slot does not exists, it will be created. Returns table itself. - - -.. js:function:: table.rawdelete() - -Deletes the slot key without employing delegation and returns its value. If the slot does not exists, returns null. - - -.. js:function:: table.rawin(key) - -returns true if the slot 'key' exists. the function has the same effect as the operator 'in' but does not employ delegation. - - -.. js:function:: table.weakref() - -returns a weak reference to the object. - - -.. js:function:: table.tostring() - -Tries to invoke the _tostring metamethod. If that fails, it returns "(table : pointer)". - - -.. js:function:: table.clear() - -removes all the slots from the table. Returns table itself. - - -.. js:function:: table.setdelegate(table) - -Sets the delegate of the table. To remove a delegate, 'null' must be passed to the function. The function returns the table itself (e.g. a.setdelegate(b) -- in this case 'a' is the return value). - - -.. js:function:: table.getdelegate() - -returns the table's delegate or null if no delegate was set. - - -.. js:function:: table.filter(func(key,val)) - -Creates a new table with all values that pass the test implemented by the provided function. In detail, it creates a new table, invokes the specified function for each key-value pair in the original table; if the function returns 'true', then the value is added to the newly created table at the same key. - -.. js:function:: table.keys() - -returns an array containing all the keys of the table slots. - -.. js:function:: table.values() - -returns an array containing all the values of the table slots. - -^^^^^^ -Array -^^^^^^ - -.. js:function:: array.len() - -returns the length of the array - - -.. js:function:: array.append(val) - -appends the value 'val' at the end of the array. Returns array itself. - - -.. js:function:: array.push(val) - -appends the value 'val' at the end of the array. Returns array itself. - - -.. js:function:: array.extend(array) - -Extends the array by appending all the items in the given array. Returns array itself. - - -.. js:function:: array.pop() - -removes a value from the back of the array and returns it. - - -.. js:function:: array.top() - -returns the value of the array with the higher index - - -.. js:function:: array.insert(idx,val) - -inserts the value 'val' at the position 'idx' in the array. Returns array itself. - - -.. js:function:: array.remove(idx) - -removes the value at the position 'idx' in the array and returns its value. - - -.. js:function:: array.resize(size,[fill]) - -Resizes the array. If the optional parameter 'fill' is specified, its value will be used to fill the new array's slots when the size specified is bigger than the previous size. If the fill parameter is omitted, null is used instead. Returns array itself. - - -.. js:function:: array.sort([compare_func]) - -Sorts the array in-place. A custom compare function can be optionally passed. The function prototype as to be the following.:: - - function custom_compare(a,b) - { - if(a>b) return 1 - else if(a :: - - arr.sort(@(a,b) a <=> b); - -Returns array itself. - -.. js:function:: array.reverse() - -reverse the elements of the array in place. Returns array itself. - - -.. js:function:: array.slice(start,[end]) - -Returns a section of the array as new array. Copies from start to the end (not included). If start is negative the index is calculated as length + start, if end is negative the index is calculated as length + end. If end is omitted end is equal to the array length. - - -.. js:function:: array.weakref() - -returns a weak reference to the object. - - -.. js:function:: array.tostring() - -returns the string "(array : pointer)". - - -.. js:function:: array.clear() - -removes all the items from the array - - -.. js:function:: array.map(func(item_value, [item_index], [array_ref])) - -Creates a new array of the same size. For each element in the original array invokes the function 'func' and assigns the return value of the function to the corresponding element of the newly created array. -Provided func can accept up to 3 arguments: array item value (required), array item index (optional), reference to array itself (optional). - - -.. js:function:: array.apply(func([item_value, [item_index], [array_ref])) - -for each element in the array invokes the function 'func' and replace the original value of the element with the return value of the function. - - -.. js:function:: array.reduce(func(prevval,curval), [initializer]) - -Reduces an array to a single value. For each element in the array invokes the function 'func' passing -the initial value (or value from the previous callback call) and the value of the current element. -The return value of the function is then used as 'prevval' for the next element. -If the optional initializer is present, it is placed before the items of the array in the calculation, -and serves as a default when the sequence is empty. -If initializer is not given then for sequence contains only one item, reduce() returns the first item, -and for empty sequence returns null. - -Given an sequence with 2 or more elements (including initializer) calls the function with the first two elements as the parameters, -gets that result, then calls the function with that result and the third element, gets that result, -calls the function with that result and the fourth parameter and so on until all element have been processed. -Finally, returns the return value of the last invocation of func. - - -.. js:function:: array.filter(func(index,val)) - -Creates a new array with all elements that pass the test implemented by the provided function. In detail, it creates a new array, for each element in the original array invokes the specified function passing the index of the element and it's value; if the function returns 'true', then the value of the corresponding element is added on the newly created array. - - -.. js:function:: array.find(value) - -Performs a linear search for the value in the array. Returns the index of the value if it was found null otherwise. - -^^^^^^^^ -Function -^^^^^^^^ - -.. js:function:: function.call(_this,args...) - -calls the function with the specified environment object('this') and parameters - - -.. js:function:: function.pcall(_this,args...) - -calls the function with the specified environment object('this') and parameters, this function will not invoke the error callback in case of failure(pcall stays for 'protected call') - - -.. js:function:: function.acall(array_args) - -calls the function with the specified environment object('this') and parameters. The function accepts an array containing the parameters that will be passed to the called function.Where array_args has to contain the required 'this' object at the [0] position. - - -.. js:function:: function.pacall(array_args) - -calls the function with the specified environment object('this') and parameters. The function accepts an array containing the parameters that will be passed to the called function.Where array_args has to contain the required 'this' object at the [0] position. This function will not invoke the error callback in case of failure(pacall stays for 'protected array call') - - -.. js:function:: function.weakref() - -returns a weak reference to the object. - - -.. js:function:: function.tostring() - -returns the string "(closure : pointer)". - - -.. js:function:: function.setroot(table) - -sets the root table of a closure - - -.. js:function:: function.getroot() - -returns the root table of the closure - - -.. js:function:: function.bindenv(env) - -clones the function(aka closure) and bind the environment object to it(table,class or instance). the this parameter of the newly create function will always be set to env. Note that the created function holds a weak reference to its environment object so cannot be used to control its lifetime. - - -.. js:function:: function.getinfos() - -returns a table containing informations about the function, like parameters, name and source name; :: - - //the data is returned as a table is in form - //pure squirrel function - { - native = false - name = "zefuncname" - src = "/somthing/something.nut" - parameters = ["a","b","c"] - defparams = [1,"def"] - varargs = 2 - } - //native C function - { - native = true - name = "zefuncname" - paramscheck = 2 - typecheck = [83886082,83886384] //this is the typemask (see C defines OT_INTEGER,OT_FLOAT etc...) - } - - - -^^^^^ -Class -^^^^^ - -.. js:function:: class.instance() - -returns a new instance of the class. this function does not invoke the instance constructor. The constructor must be explicitly called (eg. class_inst.constructor(class_inst) ). - - -.. js:function:: class.getattributes(membername) - -returns the attributes of the specified member. if the parameter member is null the function returns the class level attributes. - - -.. js:function:: class.setattributes(membername,attr) - -sets the attribute of the specified member and returns the previous attribute value. if the parameter member is null the function sets the class level attributes. - - -.. js:function:: class.rawin(key) - -returns true if the slot 'key' exists. the function has the same effect as the operator 'in' but does not employ delegation. - - -.. js:function:: class.weakref() - -returns a weak reference to the object. - - -.. js:function:: class.tostring() - -returns the string "(class : pointer)". - - -.. js:function:: class.rawget(key) - -tries to get a value from the slot 'key' without employing delegation - - -.. js:function:: class.rawset(key,val) - -sets the slot 'key' with the value 'val' without employing delegation. If the slot does not exists, it will be created. - - -.. js:function:: class.newmember(key,val,[attrs],[bstatic]) - -sets/adds the slot 'key' with the value 'val' and attributes 'attrs' and if present invokes the _newmember metamethod. If bstatic is true the slot will be added as static. If the slot does not exists , it will be created. - - -.. js:function:: class.rawnewmember(key,val,[attrs],[bstatic]) - -sets/adds the slot 'key' with the value 'val' and attributes 'attrs'. If bstatic is true the slot will be added as static. If the slot does not exist, it will be created. It doesn't invoke any metamethod. - -^^^^^^^^^^^^^^ -Class Instance -^^^^^^^^^^^^^^ - -.. js:function:: instance.getclass() - -returns the class that created the instance. - - -.. js:function:: instance.rawin(key) - - :param key: ze key - -returns true if the slot 'key' exists. the function has the same effect as the operator 'in' but does not employ delegation. - - -.. js:function:: instance.weakref() - -returns a weak reference to the object. - - -.. js:function:: instance.tostring() - -tries to invoke the _tostring metamethod, if failed. returns "(instance : pointer)". - - -.. js:function:: instance.rawget(key) - -tries to get a value from the slot 'key' without employing delegation - - -.. js:function:: instance.rawset(key,val) - -sets the slot 'key' with the value 'val' without employing delegation. If the slot does not exists, it will be created. - -^^^^^^^^^^^^^^ -Generator -^^^^^^^^^^^^^^ - - -.. js:function:: generator.getstatus() - -returns the status of the generator as string : "running", "dead" or "suspended". - - -.. js:function:: generator.weakref() - -returns a weak reference to the object. - - -.. js:function:: generator.tostring() - -returns the string "(generator : pointer)". - -^^^^^^^^^^^^^^ -Thread -^^^^^^^^^^^^^^ - -.. js:function:: thread.call(...) - -starts the thread with the specified parameters - - -.. js:function:: thread.wakeup([wakeupval]) - -wakes up a suspended thread, accepts a optional parameter that will be used as return value for the function that suspended the thread(usually suspend()) - - -.. js:function:: thread.wakeupthrow(objtothrow,[propagateerror = true]) - -wakes up a suspended thread, throwing an exception in the awaken thread, throwing the object 'objtothrow'. - - -.. js:function:: thread.getstatus() - -returns the status of the thread ("idle","running","suspended") - - -.. js:function:: thread.weakref() - -returns a weak reference to the object. - - -.. js:function:: thread.tostring() - -returns the string "(thread : pointer)". - - -.. js:function:: thread.getstackinfos(stacklevel) - -returns the stack frame informations at the given stack level (0 is the current function 1 is the caller and so on). - -^^^^^^^^^^^^^^ -Weak Reference -^^^^^^^^^^^^^^ - -.. js:function:: weakreference.ref() - -returns the object that the weak reference is pointing at; null if the object that was point at was destroyed. - - -.. js:function:: weakreference.weakref() - -returns a weak reference to the object. - - -.. js:function:: weakreference.tostring() - -returns the string "(weakref : pointer)". diff --git a/m_packages/squirrel/doc/source/reference/language/classes.rst b/m_packages/squirrel/doc/source/reference/language/classes.rst deleted file mode 100644 index b9256c3f..00000000 --- a/m_packages/squirrel/doc/source/reference/language/classes.rst +++ /dev/null @@ -1,429 +0,0 @@ -.. _classes: - - -================= -Classes -================= - -.. index:: - single: Classes - -Squirrel implements a class mechanism similar to languages like Java/C++/etc... -however because of its dynamic nature it differs in several aspects. -Classes are first class objects like integer or strings and can be stored in -table slots local variables, arrays and passed as function parameters. - ------------------ -Class Declaration ------------------ - -.. index:: - pair: declaration; Class - single: Class Declaration - -A class object is created through the keyword 'class' . The class object follows -the same declaration syntax of a table(see :ref:`Tables `) with the only difference -of using ';' as optional separator rather than ','. - -For instance: :: - - class Foo { - //constructor - constructor(a) - { - testy = ["stuff",1,2,3,a]; - } - //member function - function PrintTesty() - { - foreach(i,val in testy) - { - ::print("idx = "+i+" = "+val+" \n"); - } - } - //property - testy = null; - - } - -the previous code example is a syntactic sugar for: :: - - Foo <- class { - //constructor - constructor(a) - { - testy = ["stuff",1,2,3,a]; - } - //member function - function PrintTesty() - { - foreach(i,val in testy) - { - ::print("idx = "+i+" = "+val+" \n"); - } - } - //property - testy = null; - - } - -in order to emulate namespaces, it is also possible to declare something like this:: - - //just 2 regular nested tables - FakeNamespace <- { - Utils = {} - } - - class FakeNamespace.Utils.SuperClass { - constructor() - { - ::print("FakeNamespace.Utils.SuperClass") - } - function DoSomething() - { - ::print("DoSomething()") - } - } - - function FakeNamespace::Utils::SuperClass::DoSomethingElse() - { - ::print("FakeNamespace::Utils::SuperClass::DoSomethingElse()") - } - - local testy = FakeNamespace.Utils.SuperClass(); - testy.DoSomething(); - testy.DoSomethingElse(); - -After its declaration, methods or properties can be added or modified by following -the same rules that apply to a table(operator ``<-``).:: - - //adds a new property - Foo.stuff <- 10; - - //modifies the default value of an existing property - Foo.testy <- "I'm a string"; - - //adds a new method - function Foo::DoSomething(a,b) - { - return a+b; - } - -After a class is instantiated is no longer possible to add new properties however is possible to add or replace methods. - -^^^^^^^^^^^^^^^^ -Static variables -^^^^^^^^^^^^^^^^ - -.. index:: - pair: static variables; Class - single: Static variables - -Squirrel's classes support static member variables. A static variable shares its value -between all instances of the class. Statics are declared by prefixing the variable declaration -with the keyword ``static``; the declaration must be in the class body. - -.. note:: Statics are read-only. - -:: - - class Foo { - constructor() - { - //..stuff - } - name = "normal variable"; - //static variable - static classname = "The class name is foo"; - }; - -^^^^^^^^^^^^^^^^ -Class Attributes -^^^^^^^^^^^^^^^^ - -.. index:: - pair: attributes; Class - single: Class Attributes - -Classes allow to associate attributes to it's members. Attributes are a form of metadata -that can be used to store application specific informations, like documentations -strings, properties for IDEs, code generators etc... -Class attributes are declared in the class body by preceding the member declaration and -are delimited by the symbol ````. -Here an example: :: - - class Foo { - //attributes of PrintTesty - function PrintTesty() - { - foreach(i,val in testy) - { - ::print("idx = "+i+" = "+val+" \n"); - } - } - //attributes of testy - testy = null; - } - -Attributes are, matter of fact, a table. Squirrel uses ```` syntax -instead of curly brackets ``{}`` for the attribute declaration to increase readability. - -This means that all rules that apply to tables apply to attributes. - -Attributes can be retrieved through the built-in function ``classobj.getattributes(membername)`` (see :ref:`built-in functions `). -and can be modified/added through the built-in function ``classobj.setattributes(membername,val)``. - -the following code iterates through the attributes of all Foo members.:: - - foreach(member,val in Foo) - { - ::print(member+"\n"); - local attr; - if((attr = Foo.getattributes(member)) != null) { - foreach(i,v in attr) - { - ::print("\t"+i+" = "+(typeof v)+"\n"); - } - } - else { - ::print("\t\n") - } - } - ------------------ -Class Instances ------------------ - -.. index:: - pair: instances; Class - single: Class Instances - -The class objects inherits several of the table's feature with the difference that multiple instances of the -same class can be created. -A class instance is an object that share the same structure of the table that created it but -holds is own values. -Class *instantiation* uses function notation. -A class instance is created by calling a class object. Can be useful to imagine a class like a function -that returns a class instance.:: - - //creates a new instance of Foo - local inst = Foo(); - -When a class instance is created its member are initialized *with the same value* specified in the -class declaration. The values are copied verbatim, *no cloning is performed* even if the value is a container or a class instances. - -.. note:: FOR C# and Java programmers: - - Squirrel doesn't clone member's default values nor executes the member declaration for each instance(as C# or java). - - So consider this example: :: - - class Foo { - myarray = [1,2,3] - mytable = {} - } - - local a = Foo(); - local b = Foo(); - - In the snippet above both instances will refer to the same array and same table.To achieve what a C# or Java programmer would - expect, the following approach should be taken. :: - - class Foo { - myarray = null - mytable = null - constructor() - { - myarray = [1,2,3] - mytable = {} - } - } - - local a = Foo(); - local b = Foo(); - -When a class defines a method called 'constructor', the class instantiation operation will -automatically invoke it for the newly created instance. -The constructor method can have parameters, this will impact on the number of parameters -that the *instantiation operation* will require. -Constructors, as normal functions, can have variable number of parameters (using the parameter ``...``).:: - - class Rect { - constructor(w,h) - { - width = w; - height = h; - } - x = 0; - y = 0; - width = null; - height = null; - } - - //Rect's constructor has 2 parameters so the class has to be 'called' - //with 2 parameters - local rc = Rect(100,100); - -After an instance is created, its properties can be set or fetched following the -same rules that apply to tables. Methods cannot be set. - -Instance members cannot be removed. - -The class object that created a certain instance can be retrieved through the built-in function -``instance.getclass()`` (see :ref:`built-in functions `) - -The operator ``instanceof`` tests if a class instance is an instance of a certain class.:: - - local rc = Rect(100,100); - if(rc instanceof ::Rect) { - ::print("It's a rect"); - } - else { - ::print("It isn't a rect"); - } - -.. note:: Since Squirrel 3.x instanceof doesn't throw an exception if the left expression is not a class, it simply fails - --------------- -Inheritance --------------- - -.. index:: - pair: inheritance; Class - single: Inheritance - -Squirrel's classes support single inheritance by adding the keyword ``extends``, followed -by an expression, in the class declaration. -The syntax for a derived class is the following: :: - - class SuperFoo extends Foo { - function DoSomething() { - ::print("I'm doing something"); - } - } - -When a derived class is declared, Squirrel first copies all base's members in the -new class then proceeds with evaluating the rest of the declaration. - -A derived class inherit all members and properties of it's base, if the derived class -overrides a base function the base implementation is shadowed. -It's possible to access a overridden method of the base class by fetching the method from -through the 'base' keyword. - -Here an example: :: - - class Foo { - function DoSomething() { - ::print("I'm the base"); - } - }; - - class SuperFoo extends Foo { - //overridden method - function DoSomething() { - //calls the base method - base.DoSomething(); - ::print("I'm doing something"); - } - } - -Same rule apply to the constructor. The constructor is a regular function (apart from being automatically invoked on construction).:: - - class BaseClass { - constructor() - { - ::print("Base constructor\n"); - } - } - - class ChildClass extends BaseClass { - constructor() - { - base.constructor(); - ::print("Child constructor\n"); - } - } - - local test = ChildClass(); - -The base class of a derived class can be retrieved through the built-in method ``getbase()``.:: - - local thebaseclass = SuperFoo.getbase(); - -Note that because methods do not have special protection policies when calling methods of the same -objects, a method of a base class that calls a method of the same class can end up calling a overridden method of the derived class. - -A method of a base class can be explicitly invoked by a method of a derived class though the keyword ``base`` (as in base.MyMethod() ).:: - - class Foo { - function DoSomething() { - ::print("I'm the base"); - } - function DoIt() - { - DoSomething(); - } - }; - - class SuperFoo extends Foo { - //overridden method - function DoSomething() { - ::print("I'm the derived"); - - } - function DoIt() { - base.DoIt(); - } - } - - //creates a new instance of SuperFoo - local inst = SuperFoo(); - - //prints "I'm the derived" - inst.DoIt(); - ----------------------- -Metamethods ----------------------- - -.. index:: - pair: metamethods; Class - single: Class metamethods - -Class instances allow the customization of certain aspects of the -their semantics through metamethods(see see :ref:`Metamethods `). -For C++ programmers: "metamethods behave roughly like overloaded operators". -The metamethods supported by classes are ``_add, _sub, _mul, _div, _unm, _modulo, -_set, _get, _typeof, _nexti, _cmp, _call, _delslot, _tostring`` - -Class objects instead support only 2 metamethods : ``_newmember`` and ``_inherited`` - -the following example show how to create a class that implements the metamethod ``_add``.:: - - class Vector3 { - constructor(...) - { - if(vargv.len() >= 3) { - x = vargv[0]; - y = vargv[1]; - z = vargv[2]; - } - } - function _add(other) - { - return ::Vector3(x+other.x,y+other.y,z+other.z); - } - - x = 0; - y = 0; - z = 0; - } - - local v0 = Vector3(1,2,3) - local v1 = Vector3(11,12,13) - local v2 = v0 + v1; - ::print(v2.x+","+v2.y+","+v2.z+"\n"); - -Since version 2.1, classes support 2 metamethods ``_inherited`` and ``_newmember``. -``_inherited`` is invoked when a class inherits from the one that implements ``_inherited``. -``_newmember`` is invoked for each member that is added to the class(at declaration time). diff --git a/m_packages/squirrel/doc/source/reference/language/constants_and_enumerations.rst b/m_packages/squirrel/doc/source/reference/language/constants_and_enumerations.rst deleted file mode 100644 index 77fd9bc2..00000000 --- a/m_packages/squirrel/doc/source/reference/language/constants_and_enumerations.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. _constants_and_enumerations: - - -======================== -Constants & Enumerations -======================== - -.. index:: - single: Constants & Enumerations - - - -Squirrel allows to bind constant values to an identifier that will be evaluated compile-time. -This is achieved though constants and Enumerations. - ---------------- -Constants ---------------- - -.. index:: - single: Constants - -Constants bind a specific value to an identifier. Constants are similar to -global values, except that they are evaluated compile time and their value cannot be changed. - -constants values can only be integers, floats or string literals. No expression are allowed. -are declared with the following syntax.:: - - const foobar = 100; - const floatbar = 1.2; - const stringbar = "I'm a constant string"; - -constants are always globally scoped, from the moment they are declared, any following code -can reference them. -Constants will shadow any global slot with the same name( the global slot will remain visible by using the ``::`` syntax).:: - - local x = foobar * 2; - ---------------- -Enumerations ---------------- - -.. index:: - single: Enumerations - -As Constants, Enumerations bind a specific value to a name. Enumerations are also evaluated at compile time -and their value cannot be changed. - -An enum declaration introduces a new enumeration into the program. -Enumeration values can only be integers, floats or string literals. No expression are allowed.:: - - enum Stuff { - first, //this will be 0 - second, //this will be 1 - third //this will be 2 - } - -or:: - - enum Stuff { - first = 10 - second = "string" - third = 1.2 - } - -An enum value is accessed in a manner that's similar to accessing a static class member. -The name of the member must be qualified with the name of the enumeration, for example ``Stuff.second`` -Enumerations will shadow any global slot with the same name( the global slot will remain visible by using the ``::`` syntax).:: - - local x = Stuff.first * 2; - --------------------- -Implementation notes --------------------- - -Enumerations and Constants are a compile-time feature. Only integers, string and floats can be declared as const/enum; -No expressions are allowed(because they would have to be evaluated compile time). -When a const or an enum is declared, it is added compile time to the ``consttable``. This table is stored in the VM shared state -and is shared by the VM and all its threads. -The ``consttable`` is a regular squirrel table; In the same way as the ``roottable`` -it can be modified runtime. -You can access the ``consttable`` through the built-in function ``getconsttable()`` -and also change it through the built-in function ``setconsttable()`` - -here some example: :: - - //creates a constant - getconsttable()["something"] <- 10" - //creates an enumeration - getconsttable()["somethingelse"] <- { a = "10", c = "20", d = "200"}; - //deletes the constant - delete getconsttable()["something"] - //deletes the enumeration - delete getconsttable()["somethingelse"] - -This system allows to procedurally declare constants and enumerations, it is also possible to assign any squirrel type -to a constant/enumeration(function,classes etc...). However this will make serialization of a code chunk impossible. diff --git a/m_packages/squirrel/doc/source/reference/language/datatypes.rst b/m_packages/squirrel/doc/source/reference/language/datatypes.rst deleted file mode 100644 index 843ed8b3..00000000 --- a/m_packages/squirrel/doc/source/reference/language/datatypes.rst +++ /dev/null @@ -1,162 +0,0 @@ -.. _datatypes_and_values: - -===================== -Values and Data types -===================== - -While Squirrel is a dynamically typed language and variables do not -have a type, different operations may interpret the variable as -containing a type. Squirrel's basic types are integer, float, string, -null, table, array, function, generator, class, instance, bool, thread -and userdata. - -.. _userdata-index: - --------- -Integer --------- - -An Integer represents a 32 bit (or better) signed number.:: - - local a = 123 //decimal - local b = 0x0012 //hexadecimal - local c = 075 //octal - local d = 'w' //char code - --------- -Float --------- - -A float represents a 32 bit (or better) floating point number.:: - - local a=1.0 - local b=0.234 - --------- -String --------- - -Strings are an immutable sequence of characters. In order to modify a -string is it necessary create a new one. - -Squirrel's strings are similar to strings in C or C++. They are -delimited by quotation marks(``"``) and can contain escape -sequences (``\t``, ``\a``, ``\b``, ``\n``, ``\r``, ``\v``, ``\f``, -``\\``, ``\"``, ``\'``, ``\0``, ``\x``, ``\u`` and -``\U``). - -Verbatim string literals do not interpret escape sequences. They begin -with ``@"`` and end with the matching quote. Verbatim string literals -also can extend over a line break. If they do, they include any white -space characters between the quotes: :: - - local a = "I'm a wonderful string\n" - // has a newline at the end of the string - local x = @"I'm a verbatim string\n" - // the \n is literal, similar to "\\n" in a regular string. - -However, a doubled quotation mark within a verbatim string is replaced -by a single quotation mark: :: - - local multiline = @" - this is a multiline string - it will ""embed"" all the new line - characters - " - --------- -Null --------- - -The null value is a primitive value that represents the null, empty, or non-existent -reference. The type Null has exactly one value, called null.:: - - local a = null - --------- -Bool --------- - -Bool is a double-valued (Boolean) data type. Its literals are ``true`` -and ``false``. A bool value expresses the validity of a condition -(tells whether the condition is true or false).:: - - local a = true; - --------- -Table --------- - -Tables are associative containers implemented as a set of key/value pairs -called slots.:: - - local t={} - local test= - { - a=10 - b=function(a) { return a+1; } - } - --------- -Array --------- - -Arrays are simple sequence of objects. Their size is dynamic and their index always starts from 0.:: - - local a = ["I'm","an","array"] - local b = [null] - b[0] = a[2]; - --------- -Function --------- - -Functions are similar to those in other C-like languages with a few key differences (see below). - --------- -Class --------- - -Classes are associative containers implemented as sets of key/value -pairs. Classes are created through a 'class expression' or a 'class -statement'. class members can be inherited from another class object -at creation time. After creation, members can be added until an -instance of the class is created. - --------------- -Class Instance --------------- - -Class instances are created by calling a *class object*. Instances, as -tables, are implemented as sets of key/value pairs. Instance members -cannot be dynamically added or removed; however the value of the -members can be changed. - ---------- -Generator ---------- - -Generators are functions that can be suspended with the statement -'yield' and resumed later (see :ref:`Generators `). - ---------- -Userdata ---------- - -Userdata objects are blobs of memory or pointers defined by the host -application but stored within Squirrel variables (See :ref:`Userdata -and UserPointers `). - ---------- -Thread ---------- - -Threads are objects representing a cooperative thread of execution, -also known as coroutines. - --------------- -Weak Reference --------------- - -Weak References are objects that point to another (non-scalar) object but do not own a strong reference to it. -(See :ref:`Weak References `). diff --git a/m_packages/squirrel/doc/source/reference/language/delegation.rst b/m_packages/squirrel/doc/source/reference/language/delegation.rst deleted file mode 100644 index 63607d5c..00000000 --- a/m_packages/squirrel/doc/source/reference/language/delegation.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _delegation: - - -======================== -Delegation -======================== - -.. index:: - single: Delegation - -Squirrel supports implicit delegation. Every table or userdata can have a parent table -(delegate). A parent table is a normal table that allows the definition of special behaviors -for his child. -When a table (or userdata) is indexed with a key that doesn't correspond to one of its -slots, the interpreter automatically delegates the get (or set) operation to its parent.:: - - Entity <- { - } - - function Entity::DoStuff() - { - ::print(_name); - } - - local newentity = { - _name="I'm the new entity" - } - newentity.setdelegate(Entity) - - newentity.DoStuff(); //prints "I'm the new entity" - -The delegate of a table can be retreived through built-in method ``table.getdelegate()``.:: - - local thedelegate = newentity.getdelegate(); - diff --git a/m_packages/squirrel/doc/source/reference/language/execution_context.rst b/m_packages/squirrel/doc/source/reference/language/execution_context.rst deleted file mode 100644 index 47ef3209..00000000 --- a/m_packages/squirrel/doc/source/reference/language/execution_context.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. _executioncontext: - -======================= -Execution Context -======================= - -.. index:: - single: execution context - -The execution context is the union of the function stack frame and the function -environment object(this) and the function root(root table). -The stack frame is the portion of stack where the local variables declared in its body are -stored. -The environment object is an implicit parameter that is automatically passed by the -function caller (see see :ref:`functions `). -The root table is a table associated to the function during its creation. -The root table value of a function is the root table of the VM at the function creation. -The root table of function can also be changed after creation with closure.setroot(). -During the execution, the body of a function can only transparently refer to his execution -context. -This mean that a single identifier can refer to a local variable, to an environment object slot -or to the slot of the closure root table; -The environment object can be explicitly accessed by the keyword ``this``. -The closure root table can be explicitly accessed through the operator ``::`` (see :ref:`Variables `). - -.. _variables: - ------------------ -Variables ------------------ - -There are two types of variables in Squirrel, local variables and tables/arrays slots. -Because global variables(variables stored in the root of a closure) are stored in a table, they are table slots. - -A single identifier refers to a local variable or a slot in the environment object.:: - - derefexp := id; - -:: - - _table["foo"] - _array[10] - -with tables we can also use the '.' syntax:: - - derefexp := exp '.' id - -:: - - _table.foo - -Squirrel first checks if an identifier is a local variable (function arguments are local -variables) if not looks up the environment object (this) and finally looks up -to the closure root. - -For instance::: - - function testy(arg) - { - local a=10; - print(a); - return arg; - } - -in this case 'foo' will be equivalent to 'this.foo' or this["foo"]. - -Global variables are stored in a table called the root table. Usually in the global scope the -environment object is the root table, but to explicitly access the closure root of the function from -another scope, the slot name must be prefixed with ``'::'`` (``::foo``). - -For instance::: - - function testy(arg) - { - local a=10; - return arg+::foo; - } - -accesses the variable 'foo' in the closure root table. - -Since Squirrel 3.1 each function has a weak reference to a specific root table, this can differ from the current VM root table.:: - - function test() { - foo = 10; - } - -is equivalent to write:: - - function test() { - if("foo" in this) { - this.foo = 10; - }else { - ::foo = 10; - } - } diff --git a/m_packages/squirrel/doc/source/reference/language/expressions.rst b/m_packages/squirrel/doc/source/reference/language/expressions.rst deleted file mode 100644 index 7574be83..00000000 --- a/m_packages/squirrel/doc/source/reference/language/expressions.rst +++ /dev/null @@ -1,374 +0,0 @@ -.. _expressions: - - -================= -Expressions -================= - -.. index:: - single: Expressions - ----------------- -Assignment ----------------- - -.. index:: - single: assignment(=) - single: new slot(<-) - -:: - - exp := derefexp '=' exp - exp:= derefexp '<-' exp - -squirrel implements 2 kind of assignment: the normal assignment(=):: - - a = 10; - -and the "new slot" assignment.:: - - a <- 10; - -The new slot expression allows to add a new slot into a table(see :ref:`Tables `). If the slot -already exists in the table it behaves like a normal assignment. - ----------------- -Operators ----------------- - -.. index:: - single: Operators - -^^^^^^^^^^^^^ -?: Operator -^^^^^^^^^^^^^ - -.. index:: - pair: ?: Operator; Operators - -:: - - exp := exp_cond '?' exp1 ':' exp2 - -conditionally evaluate an expression depending on the result of an expression. - -^^^^^^^^^^^^^ -Arithmetic -^^^^^^^^^^^^^ - -.. index:: - pair: Arithmetic Operators; Operators - -:: - - exp:= 'exp' op 'exp' - -Squirrel supports the standard arithmetic operators ``+, -, *, / and %``. -Other than that is also supports compact operators (``+=,-=,*=,/=,%=``) and -increment and decrement operators(++ and --);:: - - a += 2; - //is the same as writing - a = a + 2; - x++ - //is the same as writing - x = x + 1 - -All operators work normally with integers and floats; if one operand is an integer and one -is a float the result of the expression will be float. -The + operator has a special behavior with strings; if one of the operands is a string the -operator + will try to convert the other operand to string as well and concatenate both -together. For instances and tables, ``_tostring`` is invoked. - -^^^^^^^^^^^^^ -Relational -^^^^^^^^^^^^^ - -.. index:: - pair: Relational Operators; Operators - -:: - - exp:= 'exp' op 'exp' - -Relational operators in Squirrel are : ``==, <, <=, <, <=, !=`` - -These operators return true if the expression is false and a value different than true if the -expression is true. Internally the VM uses the integer 1 as true but this could change in -the future. - -^^^^^^^^^^^^^^ -3 ways compare -^^^^^^^^^^^^^^ - -.. index:: - pair: 3 ways compare operator; Operators - -:: - - exp:= 'exp' <=> 'exp' - -the 3 ways compare operator <=> compares 2 values A and B and returns an integer less than 0 -if A < B, 0 if A == B and an integer greater than 0 if A > B. - -^^^^^^^^^^^^^^ -Logical -^^^^^^^^^^^^^^ - -.. index:: - pair: Logical operators; Operators - -:: - - exp := exp op exp - exp := '!' exp - -Logical operators in Squirrel are : ``&&, ||, !`` - -The operator ``&&`` (logical and) returns null if its first argument is null, otherwise returns -its second argument. -The operator ``||`` (logical or) returns its first argument if is different than null, otherwise -returns the second argument. - -The '!' operator will return null if the given value to negate was different than null, or a -value different than null if the given value was null. - -^^^^^^^^^^^^^^^ -in operator -^^^^^^^^^^^^^^^ - -.. index:: - pair: in operator; Operators - -:: - - exp:= keyexp 'in' tableexp - -Tests the existence of a slot in a table. -Returns true if *keyexp* is a valid key in *tableexp* :: - - local t= - { - foo="I'm foo", - [123]="I'm not foo" - } - - if("foo" in t) dostuff("yep"); - if(123 in t) dostuff(); - -^^^^^^^^^^^^^^^^^^^ -instanceof operator -^^^^^^^^^^^^^^^^^^^ - -.. index:: - pair: instanceof operator; Operators - -:: - - exp:= instanceexp 'instanceof' classexp - -Tests if a class instance is an instance of a certain class. -Returns true if *instanceexp* is an instance of *classexp*. - -^^^^^^^^^^^^^^^^^^^ -typeof operator -^^^^^^^^^^^^^^^^^^^ - -.. index:: - pair: typeof operator; Operators - -:: - - exp:= 'typeof' exp - -returns the type name of a value as string.:: - - local a={},b="squirrel" - print(typeof a); //will print "table" - print(typeof b); //will print "string" - -^^^^^^^^^^^^^^^^^^^ -Comma operator -^^^^^^^^^^^^^^^^^^^ - -.. index:: - pair: Comma operator; Operators - -:: - - exp:= exp ',' exp - -The comma operator evaluates two expression left to right, the result of the operator is -the result of the expression on the right; the result of the left expression is discarded.:: - - local j=0,k=0; - for(local i=0; i<10; i++ , j++) - { - k = i + j; - } - local a,k; - a = (k=1,k+2); //a becomes 3 - -^^^^^^^^^^^^^^^^^^^ -Bitwise Operators -^^^^^^^^^^^^^^^^^^^ - -.. index:: - pair: Bitwise Operators; Operators - -:: - - exp:= 'exp' op 'exp' - exp := '~' exp - -Squirrel supports the standard C-like bitwise operators ``&, |, ^, ~, <<, >>`` plus the unsigned -right shift operator ``>>>``. The unsigned right shift works exactly like the normal right shift operator(``>>``) -except for treating the left operand as an unsigned integer, so is not affected by the sign. Those operators -only work on integer values; passing of any other operand type to these operators will -cause an exception. - -^^^^^^^^^^^^^^^^^^^^^ -Operators precedence -^^^^^^^^^^^^^^^^^^^^^ - -.. index:: - pair: Operators precedence; Operators - -+---------------------------------------+-----------+ -| ``-, ~, !, typeof , ++, --`` | highest | -+---------------------------------------+-----------+ -| ``/, *, %`` | ... | -+---------------------------------------+-----------+ -| ``+, -`` | | -+---------------------------------------+-----------+ -| ``<<, >>, >>>`` | | -+---------------------------------------+-----------+ -| ``<, <=, >, >=, instanceof`` | | -+---------------------------------------+-----------+ -| ``==, !=, <=>`` | | -+---------------------------------------+-----------+ -| ``&`` | | -+---------------------------------------+-----------+ -| ``^`` | | -+---------------------------------------+-----------+ -| ``&&, in`` | | -+---------------------------------------+-----------+ -| ``+=, =, -=, /=, *=, %=`` | ... | -+---------------------------------------+-----------+ -| ``, (comma operator)`` | lowest | -+---------------------------------------+-----------+ - -.. _table_constructor: - ------------------ -Table Constructor ------------------ - -.. index:: - single: Table Contructor - -:: - - tslots := ( 'id' '=' exp | '[' exp ']' '=' exp ) [','] - exp := '{' [tslots] '}' - -Creates a new table.:: - - local a = {} //create an empty table - -A table constructor can also contain slots declaration; With the syntax: :: - - local a = { - slot1 = "I'm the slot value" - } - -An alternative syntax can be:: - - '[' exp1 ']' = exp2 [','] - -A new slot with exp1 as key and exp2 as value is created:: - - local a= - { - [1]="I'm the value" - } - -Both syntaxes can be mixed:: - - local table= - { - a=10, - b="string", - [10]={}, - function bau(a,b) - { - return a+b; - } - } - -The comma between slots is optional. - -^^^^^^^^^^^^^^^^^^^^^^ -Table with JSON syntax -^^^^^^^^^^^^^^^^^^^^^^ - -.. index:: - single: Table with JSON syntax - -Since Squirrel 3.0 is possible to declare a table using JSON syntax(see http://www.wikipedia.org/wiki/JSON). - -the following JSON snippet: :: - - local x = { - "id": 1, - "name": "Foo", - "price": 123, - "tags": ["Bar","Eek"] - } - -is equivalent to the following squirrel code: :: - - local x = { - id = 1, - name = "Foo", - price = 123, - tags = ["Bar","Eek"] - } - ------------------ -clone ------------------ - -.. index:: - single: clone - -:: - - exp:= 'clone' exp - -Clone performs shallow copy of a table, array or class instance (copies all slots in the new object without -recursion). If the source table has a delegate, the same delegate will be assigned as -delegate (not copied) to the new table (see :ref:`Delegation `). - -After the new object is ready the "_cloned" meta method is called (see :ref:`Metamethods `). - -When a class instance is cloned the constructor is not invoked(initializations must rely on ```_cloned``` instead - ------------------ -Array contructor ------------------ - -.. index:: - single: Array constructor - -:: - - exp := '[' [explist] ']' - -Creates a new array.:: - - a <- [] //creates an empty array - -Arrays can be initialized with values during the construction:: - - a <- [1,"string!",[],{}] //creates an array with 4 elements diff --git a/m_packages/squirrel/doc/source/reference/language/functions.rst b/m_packages/squirrel/doc/source/reference/language/functions.rst deleted file mode 100644 index 08eced85..00000000 --- a/m_packages/squirrel/doc/source/reference/language/functions.rst +++ /dev/null @@ -1,355 +0,0 @@ -.. _functions: - - -================= -Functions -================= - -.. index:: - single: Functions - -Functions are first class values like integer or strings and can be stored in table slots, -local variables, arrays and passed as function parameters. -Functions can be implemented in Squirrel or in a native language with calling conventions -compatible with ANSI C. - --------------------- -Function declaration --------------------- - -.. index:: - single: Function Declaration - -Functions are declared through the function expression:: - - local a = function(a, b, c) { return a + b - c; } - -or with the syntactic sugar:: - - function ciao(a,b,c) - { - return a+b-c; - } - -that is equivalent to:: - - this.ciao <- function(a,b,c) - { - return a+b-c; - } - -a local function can be declared with this syntactic sugar:: - - local function tuna(a,b,c) - { - return a+b-c; - } - -that is equivalent to:: - - local tuna = function(a,b,c) - { - return a+b-c; - } - -is also possible to declare something like:: - - T <- {} - function T::ciao(a,b,c) - { - return a+b-c; - } - - //that is equivalent to write - - T.ciao <- function(a,b,c) - { - return a+b-c; - } - - //or - - T <- { - function ciao(a,b,c) - { - return a+b-c; - } - } - -^^^^^^^^^^^^^^^^^^ -Default Paramaters -^^^^^^^^^^^^^^^^^^ - -.. index:: - single: Function Default Paramaters - -Squirrel's functions can have default parameters. - -A function with default parameters is declared as follows: :: - - function test(a,b,c = 10, d = 20) - { - .... - } - -when the function *test* is invoked and the parameter c or d are not specified, -the VM autometically assigns the default value to the unspecified parameter. A default parameter can be -any valid squirrel expression. The expression is evaluated at runtime. - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Function with variable number of paramaters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. index:: - single: Function with variable number of paramaters - -Squirrel's functions can have variable number of parameters(varargs functions). - -A vararg function is declared by adding three dots (`...`) at the end of its parameter list. - -When the function is called all the extra parameters will be accessible through the *array* -called ``vargv``, that is passed as implicit parameter. - -``vargv`` is a regular squirrel array and can be used accordingly.:: - - function test(a,b,...) - { - for(local i = 0; i< vargv.len(); i++) - { - ::print("varparam "+i+" = "+vargv[i]+"\n"); - } - foreach(i,val in vargv) - { - ::print("varparam "+i+" = "+val+"\n"); - } - } - - test("goes in a","goes in b",0,1,2,3,4,5,6,7,8); - ---------------- -Function calls ---------------- - -.. index:: - single: Function calls - -:: - - exp:= derefexp '(' explist ')' - -The expression is evaluated in this order: derefexp after the explist (arguments) and at -the end the call. - -A function call in Squirrel passes the current environment object *this* as a hidden parameter. -But when the function was immediately indexed from an object, *this* shall be the object -which was indexed, instead. - -If we call a function with the syntax:: - - mytable.foo(x,y) - -the environment object passed to 'foo' as *this* will be 'mytable' (since 'foo' was immediately indexed from 'mytable') - -Whereas with the syntax:: - - foo(x,y) // implicitly equivalent to this.foo(x,y) - -the environment object will be the current *this* (that is, propagated from the caller's *this*). - -It may help to remember the rules in the following way: - - foo(x,y) ---> this.foo(x,y) - table.foo(x,y) ---> call foo with (table,x,y) - -It may also help to consider why it works this way: it's designed to assist with object-oriented style. -When calling 'foo(x,y)' it's assumed you're calling another member of the object (or of the file) and -so should operate on the same object. -When calling 'mytable.foo(x,y)' it's written plainly that you're calling a member of a different object. - ---------------------------------------------- -Raw calls ---------------------------------------------- - -.. index:: - single: Raw calls - -It is possible to call a function overriding the default calling semantics by utilizing the keywork *rawcall*. -Rawcall allows to invoke a function specifying the *this* object explicitly:: - - local retval = rawcall(functionobj,thisobj,parameters); - -for example:: - - local env = {} - function test(a,b) { - return a + b; - } - local ret = rawcall(test,env,1,2) //passes the table env as 'this' to the function test - ---------------------- -Post-call Initializer ---------------------- - -Since version 3.2 Squirrel offers a syntactic sugar to initialize the object returned by a function call(anf class instance creation). -The post-call initializer has the following syntax:: - - function test() { - local retval = { x = 0, y = 0}; - return retval; - } - local ret1 = test() { x = 10, y = 20 } - local ret2 = test() { x = 30, y = 40 } - -that is equivalent to:: - - function test() { - local retval = { x = 0, y = 0}; - return retval; - } - local ret1 = test() { x = 10, y = 20 } - ret1.x = 10; - ret1.y = 20; - local ret2 = test() { x = 30, y = 40 } - ret1.x = 30; - ret1.y = 40; - -this is also usable with classes:: - - class vector3 { - x = 0; - y = 0; - z = 0; - } - local v0 = vector3() { x = 1, y = 2, z = 3 }; - local v2 = vector3() { x = 4, y = 5, z = 6 }; - -and can be nested:: - - class entity { - position = null; - direction = null; - } - local ret = entity() { - position = vector3() { x = 1, y = 2, z = 3 } - direction = vector3() { x = 0, y = 1, z = 0 } - } - ---------------------------------------------- -Binding an environment to a function ---------------------------------------------- - -.. index:: - single: Binding an environment to a function - -while by default a squirrel function call passes as environment object 'this', the object -where the function was indexed from. However, is also possible to statically bind an evironment to a -closure using the following syntax.:: - - function test[env_obj](a,b) { - return a + b; - } - - local test = function[env_obj](a,b) { - return a + b; - } - - local function test[env_obj](a,b) { - return a + b; - } - -It is also possible to statically bind an evironment to a closure using the built-in method ``closure.bindenv(env_obj)``. -The method bindenv() returns a new instance of a closure with the environment bound to it. - -When an environment object is bound to a function, every time the function is invoked, its -'this' parameter will always be the previously bound environent. -This mechanism is useful to implement callbacks systems similar to C# delegates. - -.. note:: The closure keeps a weak reference to the bound environmet object, because of this if - the object is deleted, the next call to the closure will result in a ``null`` - environment object. - ---------------------------------------------- -Lambda Expressions ---------------------------------------------- - -.. index:: - single: Lambda Expressions - -:: - - exp := '@' '(' paramlist ')' exp - -Lambda expressions are a syntactic sugar to quickly define a function that consists of a single expression. -This feature comes handy when functional programming patterns are applied, like map/reduce or passing a compare method to -array.sort(). - -here a lambda expression:: - - local myexp = @(a,b) a + b - -that is equivalent to:: - - local myexp = function(a,b) { return a + b; } - -a more useful usage could be:: - - local arr = [2,3,5,8,3,5,1,2,6]; - arr.sort(@(a,b) a <=> b); - arr.sort(@(a,b) -(a <=> b)); - -that could have been written as:: - - local arr = [2,3,5,8,3,5,1,2,6]; - arr.sort(function(a,b) { return a <=> b; } ); - arr.sort(function(a,b) { return -(a <=> b); } ); - -other than being limited to a single expression lambdas support all features of regular functions. -in fact are implemented as a compile time feature. - ---------------------------------------------- -Free Variables ---------------------------------------------- - -.. index:: - single: Free Variables - -A free variable is a variable external from the function scope as is not a local variable -or parameter of the function. -Free variables reference a local variable from a outer scope. -In the following example the variables 'testy', 'x' and 'y' are bound to the function 'foo'.:: - - local x=10,y=20 - local testy="I'm testy" - - function foo(a,b) - { - ::print(testy); - return a+b+x+y; - } - -A program can read or write a free variable. - ---------------------------------------------- -Tail Recursion ---------------------------------------------- - -.. index:: - single: Tail Recursion - -Tail recursion is a method for partially transforming a recursion in a program into an -iteration: it applies when the recursive calls in a function are the last executed -statements in that function (just before the return). -If this happenes the squirrel interpreter collapses the caller stack frame before the -recursive call; because of that very deep recursions are possible without risk of a stack -overflow.:: - - function loopy(n) - { - if(n>0){ - ::print("n="+n+"\n"); - return loopy(n-1); - } - } - - loopy(1000); - diff --git a/m_packages/squirrel/doc/source/reference/language/generators.rst b/m_packages/squirrel/doc/source/reference/language/generators.rst deleted file mode 100644 index 6c03de9a..00000000 --- a/m_packages/squirrel/doc/source/reference/language/generators.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. _generators: - - -================= -Generators -================= - -.. index:: - single: Generators - -A function that contains a ``yield`` statement is called *'generator function'* . -When a generator function is called, it does not execute the function body, instead it -returns a new suspended generator. -The returned generator can be resumed through the resume statement while it is alive. -The yield keyword, suspends the execution of a generator and optionally returns the -result of an expression to the function that resumed the generator. -The generator dies when it returns, this can happen through an explicit return -statement or by exiting the function body; If an unhandled exception (or runtime error) -occurs while a generator is running, the generator will automatically die. A dead -generator cannot be resumed anymore.:: - - function geny(n) - { - for(local i=1;i<=n;i+=1) - yield i; - return null; - } - - local gtor=geny(10); - local x; - while(x=resume gtor) print(x+"\n"); - -the output of this program will be:: - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - -generators can also be iterated using the foreach statement. When a generator is evaluated -by ``foreach``, the generator will be resumed for each iteration until it returns. The value -returned by the ``return`` statement will be ignored. - -.. note:: A suspended generator will hold a strong reference to all the values stored in it's local variables except the ``this`` - object that is only a weak reference. A running generator hold a strong reference also to the ``this`` object. diff --git a/m_packages/squirrel/doc/source/reference/language/lexical_structure.rst b/m_packages/squirrel/doc/source/reference/language/lexical_structure.rst deleted file mode 100644 index 11fbf35c..00000000 --- a/m_packages/squirrel/doc/source/reference/language/lexical_structure.rst +++ /dev/null @@ -1,156 +0,0 @@ -.. _lexical_structure: - - -================= -Lexical Structure -================= - -.. index:: single: lexical structure - ------------ -Identifiers ------------ - -.. index:: single: identifiers - -Identifiers start with an alphabetic character or the symbol '_' followed by any number -of alphabetic characters, '_' or digits ([0-9]). Squirrel is a case sensitive language -meaning that the lowercase and uppercase representation of the same alphabetic -character are considered different characters. For instance, "foo", "Foo" and "fOo" are -treated as 3 distinct identifiers. - ------------ -Keywords ------------ - -.. index:: single: keywords - -The following words are reserved and cannot be used as identifiers: - -+------------+------------+-----------+------------+------------+-------------+ -| base | break | case | catch | class | clone | -+------------+------------+-----------+------------+------------+-------------+ -| continue | const | default | delete | else | enum | -+------------+------------+-----------+------------+------------+-------------+ -| extends | for | foreach | function | if | in | -+------------+------------+-----------+------------+------------+-------------+ -| local | null | resume | return | switch | this | -+------------+------------+-----------+------------+------------+-------------+ -| throw | try | typeof | while | yield | constructor | -+------------+------------+-----------+------------+------------+-------------+ -| instanceof | true | false | static | __LINE__ | __FILE__ | -+------------+------------+-----------+------------+------------+-------------+ -| rawcall | | | | | | -+------------+------------+-----------+------------+------------+-------------+ - -Keywords are covered in detail later in this document. - ------------ -Operators ------------ - -.. index:: single: operators - -Squirrel recognizes the following operators: - -+----------+----------+----------+----------+----------+----------+----------+----------+ -| ``!`` | ``!=`` | ``||`` | ``==`` | ``&&`` | ``>=`` | ``<=`` | ``>`` | -+----------+----------+----------+----------+----------+----------+----------+----------+ -| ``<=>`` | ``+`` | ``+=`` | ``-`` | ``-=`` | ``/`` | ``/=`` | ``*`` | -+----------+----------+----------+----------+----------+----------+----------+----------+ -| ``*=`` | ``%`` | ``%=`` | ``++`` | ``--`` | ``<-`` | ``=`` | ``&`` | -+----------+----------+----------+----------+----------+----------+----------+----------+ -| ``^`` | ``|`` | ``~`` | ``>>`` | ``<<`` | ``>>>`` | | | -+----------+----------+----------+----------+----------+----------+----------+----------+ - ------------- -Other tokens ------------- - -.. index:: - single: delimiters - single: other tokens - -Other significant tokens are: - -+----------+----------+----------+----------+----------+----------+ -| ``{`` | ``}`` | ``[`` | ``]`` | ``.`` | ``:`` | -+----------+----------+----------+----------+----------+----------+ -| ``::`` | ``'`` | ``;`` | ``"`` | ``@"`` | | -+----------+----------+----------+----------+----------+----------+ - ------------ -Literals ------------ - -.. index:: - single: literals - single: string literals - single: numeric literals - -Squirrel accepts integer numbers, floating point numbers and string literals. - -+-------------------------------+------------------------------------------+ -| ``34`` | Integer number(base 10) | -+-------------------------------+------------------------------------------+ -| ``0xFF00A120`` | Integer number(base 16) | -+-------------------------------+------------------------------------------+ -| ``0753`` | Integer number(base 8) | -+-------------------------------+------------------------------------------+ -| ``'a'`` | Integer number | -+-------------------------------+------------------------------------------+ -| ``1.52`` | Floating point number | -+-------------------------------+------------------------------------------+ -| ``1.e2`` | Floating point number | -+-------------------------------+------------------------------------------+ -| ``1.e-2`` | Floating point number | -+-------------------------------+------------------------------------------+ -| ``"I'm a string"`` | String | -+-------------------------------+------------------------------------------+ -| ``@"I'm a verbatim string"`` | String | -+-------------------------------+------------------------------------------+ -| ``@" I'm a`` | | -| ``multiline verbatim string`` | | -| ``"`` | String | -+-------------------------------+------------------------------------------+ - -Pesudo BNF - -.. productionlist:: - IntegerLiteral : [1-9][0-9]* | '0x' [0-9A-Fa-f]+ | ''' [.]+ ''' | 0[0-7]+ - FloatLiteral : [0-9]+ '.' [0-9]+ - FloatLiteral : [0-9]+ '.' 'e'|'E' '+'|'-' [0-9]+ - StringLiteral: '"'[.]* '"' - VerbatimStringLiteral: '@''"'[.]* '"' - ------------ -Comments ------------ - -.. index:: single: comments - -A comment is text that the compiler ignores but that is useful for programmers. -Comments are normally used to embed annotations in the code. The compiler -treats them as white space. - -A comment can be ``/*`` (slash, asterisk) characters, followed by any -sequence of characters (including new lines), -followed by the ``*/`` characters. This syntax is the same as ANSI C.:: - - /* - this is - a multiline comment. - this lines will be ignored by the compiler - */ - -A comment can also be ``//`` (two slashes) characters, followed by any sequence of -characters. A new line not immediately preceded by a backslash terminates this form of -comment. It is commonly called a *"single-line comment."*:: - - //this is a single line comment. this line will be ignored by the compiler - -The character ``#`` is an alternative syntax for single line comment.:: - - # this is also a single line comment. - -This to facilitate the use of squirrel in UNIX-style shell scripts. diff --git a/m_packages/squirrel/doc/source/reference/language/metamethods.rst b/m_packages/squirrel/doc/source/reference/language/metamethods.rst deleted file mode 100644 index 260b0308..00000000 --- a/m_packages/squirrel/doc/source/reference/language/metamethods.rst +++ /dev/null @@ -1,270 +0,0 @@ -.. _metamethods: - ------------ -Metamethods ------------ - -Metamethods are a mechanism that allows the customization of certain aspects of the -language semantics. Those methods are normal functions placed in a table -parent(delegate) or class declaration; It is possible to change many aspects of a table/class instance behavior by just defining -a metamethod. Class objects (not instances) support only 2 metamethods ``_newmember, _inherited`` . - -For example when we use relational operators other than '==' on 2 tables, the VM will -check if the table has a method in his parent called '_cmp'; if so it will call it to determine -the relation between the tables.:: - - local comparable={ - _cmp = function (other) - { - if(nameother.name)return 1; - return 0; - } - } - - local a={ name="Alberto" }.setdelegate(comparable); - local b={ name="Wouter" }.setdelegate(comparable); - - if(a>b) - print("a>b") - else - print("b<=a"); - -for classes the previous code become: :: - - class Comparable { - constructor(n) - { - name = n; - } - function _cmp(other) - { - if(nameother.name) return 1; - return 0; - } - name = null; - } - - local a = Comparable("Alberto"); - local b = Comparable("Wouter"); - - if(a>b) - print("a>b") - else - print("b<=a"); - -^^^^^ -_set -^^^^^ - -:: - - _set(idx,val) - -invoked when the index idx is not present in the object or in its delegate chain. -``_set`` must 'throw null' to notify that a key wasn't found but the there were not runtime errors (clean failure). -This allows the program to differentiate between a runtime error and a 'index not found'. - -^^^^^ -_get -^^^^^ - -:: - - _get(idx) - -invoked when the index idx is not present in the object or in its delegate chain. -_get must 'throw null' to notify that a key wasn't found but the there were not runtime errors (clean failure). -This allows the program to differentiate between a runtime error and a 'index not found'. - -^^^^^^^^^ -_newslot -^^^^^^^^^ - -:: - - _newslot(key,value) - -invoked when a script tries to add a new slot in a table. - -if the slot already exists in the target table the method will not be invoked also if the -"new slot" operator is used. - -^^^^^^^^^ -_delslot -^^^^^^^^^ - -:: - - _delslot(key) - -invoked when a script deletes a slot from a table. -if the method is invoked squirrel will not try to delete the slot himself - -^^^^^^^^ -_add -^^^^^^^^ - -:: - - _add(other) - -the + operator - -returns this + other - -^^^^^^^^^^^^^^^^^^^^^^^^ -_sub -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _sub(other) - -the - operator (like _add) - -^^^^^^^^^^^^^^^^^^^^^^^^ -_mul -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _mul(other) - -the ``*`` operator (like _add) - -^^^^^^^^^^^^^^^^^^^^^^^^ -_div -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _div(other) - -the ``/`` operator (like _add) - -^^^^^^^^^^^^^^^^^^^^^^^^ -_modulo -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _modulo(other) - -the ``%`` operator (like _add) - -^^^^^^^^^ -_unm -^^^^^^^^^ - -:: - - _unm() - -the unary minus operator - -^^^^^^^^^^^^^^^^^^^^^^^^ -_typeof -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _typeof() - -invoked by the typeof operator on tables, userdata, and class instances. - -Returns the type of ``this`` as string - -^^^^^^^^^^^^^^^^^^^^^^^^ -_cmp -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _cmp(other) - -invoked to emulate the ``< > <= >=`` and ``<=>`` operators - -returns an integer as follow: - -+-----------+----------------------------+ -| returns | relationship | -+===========+============================+ -| > 0 | if ``this`` > ``other`` | -+-----------+----------------------------+ -| 0 | if ``this`` == ``other`` | -+-----------+----------------------------+ -| < 0 | if ``this`` < ``other`` | -+-----------+----------------------------+ - -^^^^^^^^^^^^^^^^^^^^^^^^ -_call -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _call(other) - -invoked when a table, userdata, or class instance is called - -^^^^^^^^^^^^^^^^^^^^^^^^ -_cloned -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _cloned(original) - -invoked when a table or class instance is cloned(in the cloned table) - -^^^^^^^^^^^^^^^^^^^^^^^^ -_nexti -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _nexti(previdx) - -invoked when a userdata or class instance is iterated by a foreach loop. - -If previdx==null it means that it is the first iteration. -The function has to return the index of the 'next' value. - -^^^^^^^^^^^^^^^^^^^^^^^^ -_tostring -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _tostring() - -Invoked when during string concatenation or when the ``print`` function prints a table, instance, or userdata. -The method is also invoked by the sq_tostring() API. - -Must return a string representation of the object. - -^^^^^^^^^^^^^^^^^^^^^^^^ -_inherited -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _inherited(attributes) - -invoked when a class object inherits from the class implementing ``_inherited``. -The ``this`` contains the new class. - -Return value is ignored. - -^^^^^^^^^^^^^^^^^^^^^^^^ -_newmember -^^^^^^^^^^^^^^^^^^^^^^^^ - -:: - - _newmember(index,value,attributes,isstatic) - -invoked for each member declared in a class body (at declaration time). - -If the function is implemented, members will not be added to the class. diff --git a/m_packages/squirrel/doc/source/reference/language/statements.rst b/m_packages/squirrel/doc/source/reference/language/statements.rst deleted file mode 100644 index febde526..00000000 --- a/m_packages/squirrel/doc/source/reference/language/statements.rst +++ /dev/null @@ -1,386 +0,0 @@ -.. _statements: - - -================= -Statements -================= - -.. index:: - single: statements - -A squirrel program is a simple sequence of statements.:: - - stats := stat [';'|'\n'] stats - -Statements in squirrel are comparable to the C-Family languages (C/C++, Java, C# -etc...): assignment, function calls, program flow control structures etc.. plus some -custom statement like yield, table and array constructors (All those will be covered in detail -later in this document). -Statements can be separated with a new line or ';' (or with the keywords case or default if -inside a switch/case statement), both symbols are not required if the statement is -followed by '}'. - ------- -Block ------- - -.. index:: - pair: block; statement - -:: - - stat := '{' stats '}' - -A sequence of statements delimited by curly brackets ({ }) is called block; -a block is a statement itself. - ------------------------ -Control Flow Statements ------------------------ - -.. index:: - single: control flow statements - -squirrel implements the most common control flow statements: ``if, while, do-while, switch-case, for, foreach`` - -^^^^^^^^^^^^^^ -true and false -^^^^^^^^^^^^^^ - -.. index:: - single: true and false - single: true - single: false - -Squirrel has a boolean type (bool) however like C++ it considers null, 0(integer) and 0.0(float) -as *false*, any other value is considered *true*. - -^^^^^^^^^^^^^^^^^ -if/else statement -^^^^^^^^^^^^^^^^^ - -.. index:: - pair: if/else; statement - pair: if; statement - pair: else; statement - -:: - - stat:= 'if' '(' exp ')' stat ['else' stat] - -Conditionally execute a statement depending on the result of an expression.:: - - if(a>b) - a=b; - else - b=a; - //// - if(a==10) - { - b=a+b; - return a; - } - -^^^^^^^^^^^^^^^^^ -while statement -^^^^^^^^^^^^^^^^^ - -.. index:: - pair: while; statement - -:: - - stat:= 'while' '(' exp ')' stat - -Executes a statement while the condition is true.:: - - function testy(n) - { - local a=0; - while(a100) - -^^^^^^^^^^^^^^^^^ -switch statement -^^^^^^^^^^^^^^^^^ - -.. index:: - pair: switch; statement - -:: - - stat := 'switch' ''( exp ')' '{' - 'case' case_exp ':' - stats - ['default' ':' - stats] - '}' - -Switch is a control statement allows multiple selections of code by passing control to one of the -case statements within its body. -The control is transferred to the case label whose case_exp matches with exp if none of -the case match will jump to the default label (if present). -A switch statement can contain any number if case instances, if 2 case have the same -expression result the first one will be taken in account first. The default label is only -allowed once and must be the last one. -A break statement will jump outside the switch block. - ------ -Loops ------ - -.. index:: - single: Loops - -^^^^^^^^ -for -^^^^^^^^ - -.. index:: - pair: for; statement - -:: - - stat:= 'for' '(' [initexp] ';' [condexp] ';' [incexp] ')' statement - -Executes a statement as long as a condition is different than false.:: - - for(local a=0;a<10;a+=1) - print(a+"\n"); - //or - glob <- null - for(glob=0;glob<10;glob+=1){ - print(glob+"\n"); - } - //or - for(;;){ - print(loops forever+"\n"); - } - -^^^^^^^^ -foreach -^^^^^^^^ - -.. index:: - pair: foreach; statement - -:: - - 'foreach' '(' [index_id','] value_id 'in' exp ')' stat - -Executes a statement for every element contained in an array, table, class, string or generator. -If exp is a generator it will be resumed every iteration as long as it is alive; the value will -be the result of 'resume' and the index the sequence number of the iteration starting -from 0.:: - - local a=[10,23,33,41,589,56] - foreach(idx,val in a) - print("index="+idx+" value="+val+"\n"); - //or - foreach(val in a) - print("value="+val+"\n"); - -------- -break -------- - -.. index:: - pair: break; statement - -:: - - stat := 'break' - -The break statement terminates the execution of a loop (for, foreach, while or do/while) -or jumps out of switch statement; - ---------- -continue ---------- - -.. index:: - pair: continue; statement - -:: - - stat := 'continue' - -The continue operator jumps to the next iteration of the loop skipping the execution of -the following statements. - ---------- -return ---------- - -.. index:: - pair: return; statement - -:: - - stat:= return [exp] - -The return statement terminates the execution of the current function/generator and -optionally returns the result of an expression. If the expression is omitted the function -will return null. If the return statement is used inside a generator, the generator will not -be resumable anymore. - ---------- -yield ---------- - -.. index:: - pair: yield; statement - -:: - - stat := yield [exp] - -(see :ref:`Generators `). - - ---------------------------- -Local variables declaration ---------------------------- - -.. index:: - pair: Local variables declaration; statement - -:: - - initz := id [= exp][',' initz] - stat := 'local' initz - -Local variables can be declared at any point in the program; they exist between their -declaration to the end of the block where they have been declared. -*EXCEPTION:* a local declaration statement is allowed as first expression in a for loop.:: - - for(local a=0;a<10;a+=1) - print(a); - --------------------- -Function declaration --------------------- - -.. index:: - pair: Function declaration; statement - -:: - - funcname := id ['::' id] - stat:= 'function' id ['::' id]+ '(' args ')' stat - -creates a new function. - ------------------ -Class declaration ------------------ - -.. index:: - pair: Class declaration; statement - -:: - - memberdecl := id '=' exp [';'] | '[' exp ']' '=' exp [';'] | functionstat | 'constructor' functionexp - stat:= 'class' derefexp ['extends' derefexp] '{' - [memberdecl] - '}' - -creates a new class. - ------------ -try/catch ------------ - -.. index:: - pair: try/catch; statement - -:: - - stat:= 'try' stat 'catch' '(' id ')' stat - -The try statement encloses a block of code in which an exceptional condition can occur, -such as a runtime error or a throw statement. The catch clause provides the exception-handling -code. When a catch clause catches an exception, its id is bound to that -exception. - ------------ -throw ------------ - -.. index:: - pair: throw; statement - -:: - - stat:= 'throw' exp - -Throws an exception. Any value can be thrown. - --------------- -const --------------- - -.. index:: - pair: const; statement - -:: - - stat:= 'const' id '=' 'Integer | Float | StringLiteral - -Declares a constant (see :ref:`Constants & Enumerations `). - --------------- -enum --------------- - -.. index:: - pair: enum; statement - -:: - - enumerations := ( 'id' '=' Integer | Float | StringLiteral ) [','] - stat:= 'enum' id '{' enumerations '}' - -Declares an enumeration (see :ref:`Constants & Enumerations `). - --------------------- -Expression statement --------------------- - -.. index:: - pair: Expression statement; statement - -:: - - stat := exp - -In Squirrel every expression is also allowed as statement, if so, the result of the -expression is thrown away. - diff --git a/m_packages/squirrel/doc/source/reference/language/tables.rst b/m_packages/squirrel/doc/source/reference/language/tables.rst deleted file mode 100644 index eb80a688..00000000 --- a/m_packages/squirrel/doc/source/reference/language/tables.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. _tables: - - -================= -Tables -================= - -.. index:: - single: Tables - -Tables are associative containers implemented as pairs of key/value (called slot); values -can be any possible type and keys any type except 'null'. -Tables are squirrel's skeleton, delegation and many other features are all implemented -through this type; even the environment, where "global" variables are stored, is a table -(known as root table). - ------------------- -Construction ------------------- - -Tables are created through the table constructor (see :ref:`Table constructor `) - ------------------- -Slot creation ------------------- - -.. index:: - single: Slot Creation(table) - -Adding a new slot in a existing table is done through the "new slot" operator ``<-``; this -operator behaves like a normal assignment except that if the slot does not exists it will -be created.:: - - local a = {} - -The following line will cause an exception because the slot named 'newslot' does not exist -in the table 'a':: - - a.newslot = 1234 - -this will succeed: :: - - a.newslot <- 1234; - -or:: - - a[1] <- "I'm the value of the new slot"; - ------------------ -Slot deletion ------------------ - -.. index:: - single: Slot Deletion(table) - - -:: - - exp:= delete derefexp - -Deletion of a slot is done through the keyword delete; the result of this expression will be -the value of the deleted slot.:: - - a <- { - test1=1234 - deleteme="now" - } - - delete a.test1 - print(delete a.deleteme); //this will print the string "now" - diff --git a/m_packages/squirrel/doc/source/reference/language/threads.rst b/m_packages/squirrel/doc/source/reference/language/threads.rst deleted file mode 100644 index efe114ab..00000000 --- a/m_packages/squirrel/doc/source/reference/language/threads.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. _threads: - - -======================== -Threads -======================== - -.. index:: - single: Threads - -Squirrel supports cooperative threads(also known as coroutines). -A cooperative thread is a subroutine that can suspended in mid-execution and provide a value to the -caller without returning program flow, then its execution can be resumed later from the same -point where it was suspended. -At first look a Squirrel thread can be confused with a generator, in fact their behaviour is quite similar. -However while a generator runs in the caller stack and can suspend only the local routine stack a thread -has its own execution stack, global table and error handler; This allows a thread to suspend nested calls and -have it's own error policies. - ------------------- -Using threads ------------------- - -.. index:: - single: Using Threads - -Threads are created through the built-in function 'newthread(func)'; this function -gets as parameter a squirrel function and bind it to the new thread objects (will be the thread body). -The returned thread object is initially in 'idle' state. the thread can be started with the function -'threadobj.call()'; the parameters passed to 'call' are passed to the thread function. - -A thread can be be suspended calling the function suspend(), when this happens the function -that wokeup(or started) the thread returns (If a parameter is passed to suspend() it will -be the return value of the wakeup function , if no parameter is passed the return value will be null). -A suspended thread can be resumed calling the function 'threadobj.wakeup', when this happens -the function that suspended the thread will return(if a parameter is passed to wakeup it will -be the return value of the suspend function, if no parameter is passed the return value will be null). - -A thread terminates when its main function returns or when an unhandled exception occurs during its execution.:: - - function coroutine_test(a,b) - { - ::print(a+" "+b+"\n"); - local ret = ::suspend("suspend 1"); - ::print("the coroutine says "+ret+"\n"); - ret = ::suspend("suspend 2"); - ::print("the coroutine says "+ret+"\n"); - ret = ::suspend("suspend 3"); - ::print("the coroutine says "+ret+"\n"); - return "I'm done" - } - - local coro = ::newthread(coroutine_test); - - local susparam = coro.call("test","coroutine"); //starts the coroutine - - local i = 1; - do - { - ::print("suspend passed ("+susparam+")\n") - susparam = coro.wakeup("ciao "+i); - ++i; - }while(coro.getstatus()=="suspended") - - ::print("return passed ("+susparam+")\n") - -the result of this program will be:: - - test coroutine - suspend passed (suspend 1) - the coroutine says ciao 1 - suspend passed (suspend 2) - the coroutine says ciao 2 - suspend passed (suspend 3) - the coroutine says ciao 3 - return passed (I'm done). - - -the following is an interesting example of how threads and tail recursion -can be combined.:: - - function state1() - { - ::suspend("state1"); - return state2(); //tail call - } - - function state2() - { - ::suspend("state2"); - return state3(); //tail call - } - - function state3() - { - ::suspend("state3"); - return state1(); //tail call - } - - local statethread = ::newthread(state1) - - ::print(statethread.call()+"\n"); - - for(local i = 0; i < 10000; i++) - ::print(statethread.wakeup()+"\n"); - diff --git a/m_packages/squirrel/doc/source/reference/language/weak_references.rst b/m_packages/squirrel/doc/source/reference/language/weak_references.rst deleted file mode 100644 index 5f87bc82..00000000 --- a/m_packages/squirrel/doc/source/reference/language/weak_references.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. _weak_references: - - -======================== -Weak References -======================== - -.. index:: - single: Weak References - - -The weak references allows the programmers to create references to objects without -influencing the lifetime of the object itself. -In squirrel Weak references are first-class objects created through the built-in method obj.weakref(). -All types except null implement the weakref() method; however in bools, integers, and floats the method -simply returns the object itself(this because this types are always passed by value). -When a weak references is assigned to a container (table slot,array,class or -instance) is treated differently than other objects; When a container slot that hold a weak -reference is fetched, it always returns the value pointed by the weak reference instead of the weak -reference object. This allow the programmer to ignore the fact that the value handled is weak. -When the object pointed by weak reference is destroyed, the weak reference is automatically set to null.:: - - local t = {} - local a = ["first","second","third"] - //creates a weakref to the array and assigns it to a table slot - t.thearray <- a.weakref(); - -The table slot 'thearray' contains a weak reference to an array. -The following line prints "first", because tables(and all other containers) always return -the object pointed by a weak ref:: - - print(t.thearray[0]); - -the only strong reference to the array is owned by the local variable 'a', so -because the following line assigns a integer to 'a' the array is destroyed.:: - - a = 123; - -When an object pointed by a weak ref is destroyed the weak ref is automatically set to null, -so the following line will print "null".:: - - ::print(typeof(t.thearray)) - ------------------------------------ -Handling weak references explicitly ------------------------------------ - -If a weak reference is assigned to a local variable, then is treated as any other value.:: - - local t = {} - local weakobj = t.weakref(); - -the following line prints "weakref".:: - - ::print(typeof(weakobj)) - -the object pointed by the weakref can be obtained through the built-in method weakref.ref(). - -The following line prints "table".:: - - ::print(typeof(weakobj.ref())) diff --git a/m_packages/squirrel/doc/source/simple_nut.png b/m_packages/squirrel/doc/source/simple_nut.png deleted file mode 100644 index 4c0e8a20f4a17c3cee8d723f9749f9977e265d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNvoyDk_?r1rPZ$^&#XMacLn>~)oxPX$kby|c=KwJW zLDnm08eE(m&k9`G(xLexf{87GX_|vmPJ=+shZS$xa{jEYxxTbRsCHMmrFG|utjp=V zv*vL#Fud4#D@I&QP`NfVv;b&VKt9_IS|(>t!om7u$b5^ZtDK`mIdL3=CBcGPd*9YgMs;*bVnj2ksWX z!`HpS{8yg(v5z^$pQ_$H2I^EeU)Qku*y*)18K*1r0r_CCV1isi`THB$%>j4i*?}UZ zYgpG!++`1vKXrzo`aC~K&{Jh&-K?U&->#RwZDeL(XxL=T01^g)Q`gx!U%ACSFNshB OaXnrAT-G@yGywq8bBb#K diff --git a/m_packages/squirrel/doc/source/stdlib/index.rst b/m_packages/squirrel/doc/source/stdlib/index.rst deleted file mode 100644 index 29b5f9f9..00000000 --- a/m_packages/squirrel/doc/source/stdlib/index.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. _stdlib: - -################################# - Squirrel Standard Library 3.2 -################################# - -Copyright (c) 2003-2022 Alberto Demichelis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -.. toctree:: - :maxdepth: 1 - :numbered: - - introduction.rst - stdiolib.rst - stdbloblib.rst - stdmathlib.rst - stdsystemlib.rst - stdstringlib.rst - stdauxlib.rst - diff --git a/m_packages/squirrel/doc/source/stdlib/introduction.rst b/m_packages/squirrel/doc/source/stdlib/introduction.rst deleted file mode 100644 index 171e2425..00000000 --- a/m_packages/squirrel/doc/source/stdlib/introduction.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. _stdlib_introduction: - -============ -Introduction -============ - -The squirrel standard libraries consist in a set of modules implemented in C++. -While are not essential for the language, they provide a set of useful services that are -commonly used by a wide range of applications(file I/O, regular expressions, etc...), -plus they offer a foundation for developing additional libraries. - -All libraries are implemented through the squirrel API and the ANSI C runtime library. -The modules are organized in the following way: - -* I/O : input and output -* blob : binary buffers manipilation -* math : basic mathematical routines -* system : system access function -* string : string formatting and manipulation -* aux : auxiliary functions - -The libraries can be registered independently,except for the IO library that depends from the bloblib. diff --git a/m_packages/squirrel/doc/source/stdlib/stdauxlib.rst b/m_packages/squirrel/doc/source/stdlib/stdauxlib.rst deleted file mode 100644 index b800c100..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdauxlib.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. _stdlib_stdauxlib: - -=============== -The Aux library -=============== - -The aux library implements default handlers for compiler and runtime errors and a stack dumping. - -+++++++++++ -C API -+++++++++++ - -.. _sqstd_seterrorhandlers: - -.. c:function:: void sqstd_seterrorhandlers(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - - initialize compiler and runtime error handlers, the handlers - use the print function set through(:ref:`sq_setprintfunc `) to output - the error. - -.. _sqstd_printcallstack: - -.. c:function:: void sqstd_printcallstack(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - - prints the call stack and stack contents. the function - uses the print function set through(:ref:`sq_setprintfunc `) to output - the stack dump. diff --git a/m_packages/squirrel/doc/source/stdlib/stdbloblib.rst b/m_packages/squirrel/doc/source/stdlib/stdbloblib.rst deleted file mode 100644 index 1d1f8d41..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdbloblib.rst +++ /dev/null @@ -1,213 +0,0 @@ -.. _stdlib_stdbloblib: - -================== -The Blob library -================== -The blob library implements binary data manipulations routines. The library is -based on `blob objects` that represent a buffer of arbitrary -binary data. - ---------------- -Squirrel API ---------------- - -+++++++++++++++ -Global symbols -+++++++++++++++ - -.. js:function:: castf2i(f) - - casts a float to a int - -.. js:function:: casti2f(n) - - casts a int to a float - -.. js:function:: swap2(n) - - swap the byte order of a number (like it would be a 16bits integer) - -.. js:function:: swap4(n) - - swap the byte order of an integer - -.. js:function:: swapfloat(n) - - swaps the byteorder of a float - -++++++++++++++++++ -The blob class -++++++++++++++++++ - -The blob object is a buffer of arbitrary binary data. The object behaves like -a file stream, it has a read/write pointer and it automatically grows if data -is written out of his boundary. -A blob can also be accessed byte by byte through the `[]` operator. - -.. js:class:: blob(size) - - :param int size: initial size of the blob - - returns a new instance of a blob class of the specified size in bytes - -.. js:function:: blob.eos() - - returns a non null value if the read/write pointer is at the end of the stream. - -.. js:function:: blob.flush() - - flushes the stream.return a value != null if succeded, otherwise returns null - -.. js:function:: blob.len() - - returns the length of the stream - -.. js:function:: blob.readblob(size) - - :param int size: number of bytes to read - - read n bytes from the stream and returns them as blob - -.. js:function:: blob.readn(type) - - :param int type: type of the number to read - - reads a number from the stream according to the type parameter. - - `type` can have the following values: - -+--------------+--------------------------------------------------------------------------------+----------------------+ -| parameter | return description | return type | -+==============+================================================================================+======================+ -| 'l' | processor dependent, 32bits on 32bits processors, 64bits on 64bits processors | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'i' | 32bits number | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 's' | 16bits signed integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'w' | 16bits unsigned integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'c' | 8bits signed integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'b' | 8bits unsigned integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'f' | 32bits float | float | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'd' | 64bits float | float | -+--------------+--------------------------------------------------------------------------------+----------------------+ - -.. js:function:: blob.resize(size) - - :param int size: the new size of the blob in bytes - - resizes the blob to the specified `size` - -.. js:function:: blob.seek(offset [,origin]) - - :param int offset: indicates the number of bytes from `origin`. - :param int origin: origin of the seek - - +--------------+-------------------------------------------+ - | 'b' | beginning of the stream | - +--------------+-------------------------------------------+ - | 'c' | current location | - +--------------+-------------------------------------------+ - | 'e' | end of the stream | - +--------------+-------------------------------------------+ - - Moves the read/write pointer to a specified location. - -.. note:: If origin is omitted the parameter is defaulted as 'b'(beginning of the stream). - -.. js:function:: blob.swap2() - - swaps the byte order of the blob content as it would be an array of `16bits integers` - -.. js:function:: blob.swap4() - - swaps the byte order of the blob content as it would be an array of `32bits integers` - -.. js:function:: blob.tell() - - returns the read/write pointer absolute position - -.. js:function:: blob.writeblob(src) - - :param blob src: the source blob containing the data to be written - - writes a blob in the stream - -.. js:function:: blob.writen(n, type) - - :param number n: the value to be written - :param int type: type of the number to write - - writes a number in the stream formatted according to the `type` parameter - - `type` can have the following values: - -+--------------+--------------------------------------------------------------------------------+ -| parameter | return description | -+==============+================================================================================+ -| 'i' | 32bits number | -+--------------+--------------------------------------------------------------------------------+ -| 's' | 16bits signed integer | -+--------------+--------------------------------------------------------------------------------+ -| 'w' | 16bits unsigned integer | -+--------------+--------------------------------------------------------------------------------+ -| 'c' | 8bits signed integer | -+--------------+--------------------------------------------------------------------------------+ -| 'b' | 8bits unsigned integer | -+--------------+--------------------------------------------------------------------------------+ -| 'f' | 32bits float | -+--------------+--------------------------------------------------------------------------------+ -| 'd' | 64bits float | -+--------------+--------------------------------------------------------------------------------+ - - ------- -C API ------- - -.. _sqstd_register_bloblib: - -.. c:function:: SQRESULT sqstd_register_bloblib(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: an SQRESULT - :remarks: The function aspects a table on top of the stack where to register the global library functions. - - initializes and registers the blob library in the given VM. - -.. _sqstd_getblob: - -.. c:function:: SQRESULT sqstd_getblob(HSQUIRRELVM v, SQInteger idx, SQUserPointer * ptr) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: and index in the stack - :param SQUserPointer * ptr: A pointer to the userpointer that will point to the blob's payload - :returns: an SQRESULT - - retrieve the pointer of a blob's payload from an arbitrary - position in the stack. - -.. _sqstd_getblobsize: - -.. c:function:: SQInteger sqstd_getblobsize(HSQUIRRELVM v, SQInteger idx) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: and index in the stack - :returns: the size of the blob at `idx` position - - retrieves the size of a blob's payload from an arbitrary - position in the stack. - -.. _sqstd_createblob: - -.. c:function:: SQUserPointer sqstd_createblob(HSQUIRRELVM v, SQInteger size) - - :param HSQUIRRELVM v: the target VM - :param SQInteger size: the size of the blob payload that has to be created - :returns: a pointer to the newly created blob payload - - creates a blob with the given payload size and pushes it in the stack. diff --git a/m_packages/squirrel/doc/source/stdlib/stdiolib.rst b/m_packages/squirrel/doc/source/stdlib/stdiolib.rst deleted file mode 100644 index 7ed4c9bd..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdiolib.rst +++ /dev/null @@ -1,264 +0,0 @@ -.. _stdlib_stdiolib: - -======================== -The Input/Output library -======================== - -the i/o library implements basic input/output routines. - --------------- -Squirrel API --------------- - -++++++++++++++ -Global Symbols -++++++++++++++ - - -.. js:function:: dofile(path, [raiseerror]) - - compiles a squirrel script or loads a precompiled one and executes it. - returns the value returned by the script or null if no value is returned. - if the optional parameter 'raiseerror' is true, the compiler error handler is invoked - in case of a syntax error. If raiseerror is omitted or set to false, the compiler - error handler is not invoked. - When squirrel is compiled in Unicode mode the function can handle different character encodings, - UTF8 with and without prefix and UCS-2 prefixed(both big endian an little endian). - If the source stream is not prefixed UTF8 encoding is used as default. - -.. js:function:: loadfile(path, [raiseerror]) - - compiles a squirrel script or loads a precompiled one an returns it as as function. - if the optional parameter 'raiseerror' is true, the compiler error handler is invoked - in case of a syntax error. If raiseerror is omitted or set to false, the compiler - error handler is not invoked. - When squirrel is compiled in Unicode mode the function can handle different character encodings, - UTF8 with and without prefix and UCS-2 prefixed(both big endian an little endian). - If the source stream is not prefixed UTF8 encoding is used as default. - -.. js:function:: writeclosuretofile(destpath, closure) - - serializes a closure to a bytecode file (destpath). The serialized file can be loaded - using loadfile() and dofile(). - - -.. js:data:: stderr - - File object bound on the os *standard error* stream - -.. js:data:: stdin - - File object bound on the os *standard input* stream - -.. js:data:: stdout - - File object bound on the os *standard output* stream - - -++++++++++++++ -The file class -++++++++++++++ - - The file object implements a stream on a operating system file. - -.. js:class:: file(path, patten) - - It's constructor imitates the behaviour of the C runtime function fopen for eg. :: - - local myfile = file("test.xxx","wb+"); - - creates a file with read/write access in the current directory. - -.. js:function:: file.close() - - closes the file. - -.. js:function:: file.eos() - - returns a non null value if the read/write pointer is at the end of the stream. - -.. js:function:: file.flush() - - flushes the stream.return a value != null if succeeded, otherwise returns null - -.. js:function:: file.len() - - returns the length of the stream - -.. js:function:: file.readblob(size) - - :param int size: number of bytes to read - - read n bytes from the stream and returns them as blob - -.. js:function:: file.readn(type) - - :param int type: type of the number to read - - reads a number from the stream according to the type parameter. - - `type` can have the following values: - -+--------------+--------------------------------------------------------------------------------+----------------------+ -| parameter | return description | return type | -+==============+================================================================================+======================+ -| 'l' | processor dependent, 32bits on 32bits processors, 64bits on 64bits processors | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'i' | 32bits number | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 's' | 16bits signed integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'w' | 16bits unsigned integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'c' | 8bits signed integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'b' | 8bits unsigned integer | integer | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'f' | 32bits float | float | -+--------------+--------------------------------------------------------------------------------+----------------------+ -| 'd' | 64bits float | float | -+--------------+--------------------------------------------------------------------------------+----------------------+ - -.. js:function:: file.resize(size) - - :param int size: the new size of the blob in bytes - - resizes the blob to the specified `size` - -.. js:function:: file.seek(offset [,origin]) - - :param int offset: indicates the number of bytes from `origin`. - :param int origin: origin of the seek - - +--------------+-------------------------------------------+ - | 'b' | beginning of the stream | - +--------------+-------------------------------------------+ - | 'c' | current location | - +--------------+-------------------------------------------+ - | 'e' | end of the stream | - +--------------+-------------------------------------------+ - - Moves the read/write pointer to a specified location. - -.. note:: If origin is omitted the parameter is defaulted as 'b'(beginning of the stream). - -.. js:function:: file.tell() - - returns the read/write pointer absolute position - -.. js:function:: file.writeblob(src) - - :param blob src: the source blob containing the data to be written - - writes a blob in the stream - -.. js:function:: file.writen(n, type) - - :param number n: the value to be written - :param int type: type of the number to write - - writes a number in the stream formatted according to the `type` pamraeter - - `type` can have the following values: - -+--------------+--------------------------------------------------------------------------------+ -| parameter | return description | -+==============+================================================================================+ -| 'i' | 32bits number | -+--------------+--------------------------------------------------------------------------------+ -| 's' | 16bits signed integer | -+--------------+--------------------------------------------------------------------------------+ -| 'w' | 16bits unsigned integer | -+--------------+--------------------------------------------------------------------------------+ -| 'c' | 8bits signed integer | -+--------------+--------------------------------------------------------------------------------+ -| 'b' | 8bits unsigned integer | -+--------------+--------------------------------------------------------------------------------+ -| 'f' | 32bits float | -+--------------+--------------------------------------------------------------------------------+ -| 'd' | 64bits float | -+--------------+--------------------------------------------------------------------------------+ - - --------------- -C API --------------- - -.. _sqstd_register_iolib: - -.. c:function:: SQRESULT sqstd_register_iolib(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: an SQRESULT - :remarks: The function aspects a table on top of the stack where to register the global library functions. - - initialize and register the io library in the given VM. - -++++++++++++++ -File Object -++++++++++++++ - -.. c:function:: SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file, SQBool owns) - - :param HSQUIRRELVM v: the target VM - :param SQFILE file: the stream that will be rapresented by the file object - :param SQBool owns: if different true the stream will be automatically closed when the newly create file object is destroyed. - :returns: an SQRESULT - - creates a file object bound to the SQFILE passed as parameter - and pushes it in the stack - -.. c:function:: SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE* file) - - :param HSQUIRRELVM v: the target VM - :param SQInteger idx: and index in the stack - :param SQFILE * file: A pointer to a SQFILE handle that will store the result - :returns: an SQRESULT - - retrieve the pointer of a stream handle from an arbitrary - position in the stack. - -++++++++++++++++++++++++++++++++ -Script loading and serialization -++++++++++++++++++++++++++++++++ - -.. c:function:: SQRESULT sqstd_loadfile(HSQUIRRELVM v, const SQChar * filename, SQBool printerror) - - :param HSQUIRRELVM v: the target VM - :param SQChar * filename: path of the script that has to be loaded - :param SQBool printerror: if true the compiler error handler will be called if a error occurs - :returns: an SQRESULT - - Compiles a squirrel script or loads a precompiled one an pushes it as closure in the stack. - When squirrel is compiled in Unicode mode the function can handle different character encodings, - UTF8 with and without prefix and UCS-2 prefixed(both big endian an little endian). - If the source stream is not prefixed UTF8 encoding is used as default. - -.. c:function:: SQRESULT sqstd_dofile(HSQUIRRELVM v, const SQChar * filename, SQBool retval, SQBool printerror) - - :param HSQUIRRELVM v: the target VM - :param SQChar * filename: path of the script that has to be loaded - :param SQBool retval: if true the function will push the return value of the executed script in the stack. - :param SQBool printerror: if true the compiler error handler will be called if a error occurs - :returns: an SQRESULT - :remarks: the function expects a table on top of the stack that will be used as 'this' for the execution of the script. The 'this' parameter is left untouched in the stack. - - Compiles a squirrel script or loads a precompiled one and executes it. - Optionally pushes the return value of the executed script in the stack. - When squirrel is compiled in unicode mode the function can handle different character encodings, - UTF8 with and without prefix and UCS-2 prefixed(both big endian an little endian). - If the source stream is not prefixed, UTF8 encoding is used as default. :: - - sq_pushroottable(v); //push the root table(were the globals of the script will are stored) - sqstd_dofile(v, _SC("test.nut"), SQFalse, SQTrue);// also prints syntax errors if any - -.. c:function:: SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v, const SQChar * filename) - - :param HSQUIRRELVM v: the target VM - :param SQChar * filename: destination path of serialized closure - :returns: an SQRESULT - - serializes the closure at the top position in the stack as bytecode in - the file specified by the parameter filename. If a file with the - same name already exists, it will be overwritten. - diff --git a/m_packages/squirrel/doc/source/stdlib/stdmathlib.rst b/m_packages/squirrel/doc/source/stdlib/stdmathlib.rst deleted file mode 100644 index 5f0b8b49..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdmathlib.rst +++ /dev/null @@ -1,111 +0,0 @@ -.. _stdlib_stdmathlib: - -================ -The Math library -================ - -the math lib provides basic mathematic routines. The library mimics the -C runtime library implementation. - ------------- -Squirrel API ------------- - -+++++++++++++++ -Global Symbols -+++++++++++++++ - -.. js:function:: abs(x) - - returns the absolute value of `x` as an integer - -.. js:function:: acos(x) - - returns the arccosine of `x` - -.. js:function:: asin(x) - - returns the arcsine of `x` - -.. js:function:: atan(x) - - returns the arctangent of `x` - -.. js:function:: atan2(x,y) - - returns the arctangent of `x/y` - -.. js:function:: ceil(x) - - returns a float value representing the smallest integer that is greater than or equal to `x` - -.. js:function:: cos(x) - - returns the cosine of `x` - -.. js:function:: exp(x) - - returns the exponential value of the float parameter `x` - -.. js:function:: fabs(x) - - returns the absolute value of `x` as a float - -.. js:function:: floor(x) - - returns a float value representing the largest integer that is less than or equal to `x` - -.. js:function:: log(x) - - returns the natural logarithm of `x` - -.. js:function:: log10(x) - - returns the logarithm base-10 of `x` - -.. js:function:: pow(x,y) - - returns `x` raised to the power of `y` - -.. js:function:: rand() - - returns a pseudorandom integer in the range 0 to `RAND_MAX` - -.. js:function:: sin(x) - - rreturns the sine of `x` - -.. js:function:: sqrt(x) - - returns the square root of `x` - -.. js:function:: srand(seed) - - sets the starting point for generating a series of pseudorandom integers - -.. js:function:: tan(x) - - returns the tangent of `x` - -.. js:data:: RAND_MAX - - the maximum value that can be returned by the `rand()` function - -.. js:data:: PI - - The numeric constant pi (3.141592) is the ratio of the circumference of a circle to its diameter - ------------- -C API ------------- - -.. _sqstd_register_mathlib: - -.. c:function:: SQRESULT sqstd_register_mathlib(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: an SQRESULT - :remarks: The function aspects a table on top of the stack where to register the global library functions. - - initializes and register the math library in the given VM. - diff --git a/m_packages/squirrel/doc/source/stdlib/stdstringlib.rst b/m_packages/squirrel/doc/source/stdlib/stdstringlib.rst deleted file mode 100644 index 03da6d9d..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdstringlib.rst +++ /dev/null @@ -1,323 +0,0 @@ -.. _stdlib_stdstringlib: - -================== -The String library -================== - -the string lib implements string formatting and regular expression matching routines. - --------------- -Squirrel API --------------- - -++++++++++++++ -Global Symbols -++++++++++++++ - -.. js:function:: endswith(str, cmp) - - returns `true` if the end of the string `str` matches a the string `cmp` otherwise returns `false` - -.. js:function:: escape(str) - - Returns a string with backslashes before characters that need to be escaped(`\",\a,\b,\t,\n,\v,\f,\r,\\,\",\',\0,\xnn`). - -.. js:function:: format(formatstr, ...) - - Returns a string formatted according `formatstr` and the optional parameters following it. - The format string follows the same rules as the `printf` family of - standard C functions( the "*" is not supported). :: - - e.g. - sq> print(format("%s %d 0x%02X\n","this is a test :",123,10)); - this is a test : 123 0x0A - -.. js:function:: printf(formatstr, ...) - - Just like calling `print(format(formatstr` as in the example above, but is more convenient AND more efficient. :: - - e.g. - sq> printf("%s %d 0x%02X\n","this is a test :",123,10); - this is a test : 123 0x0A - -.. js:function:: lstrip(str) - - Strips white-space-only characters that might appear at the beginning of the given string - and returns the new stripped string. - -.. js:function:: rstrip(str) - - Strips white-space-only characters that might appear at the end of the given string - and returns the new stripped string. - -.. js:function:: split(str, separators [, skipempty]) - - returns an array of strings split at each point where a separator character occurs in `str`. - The separator is not returned as part of any array element. - The parameter `separators` is a string that specifies the characters as to be used for the splitting. - The parameter `skipempty` is a boolean (default false). If `skipempty` is true, empty strings are not added to array. - - :: - - eg. - local a = split("1.2-3;;4/5",".-/;"); - // the result will be [1,2,3,,4,5] - or - local b = split("1.2-3;;4/5",".-/;",true); - // the result will be [1,2,3,4,5] - - -.. js:function:: startswith(str, cmp) - - returns `true` if the beginning of the string `str` matches the string `cmp`; otherwise returns `false` - -.. js:function:: strip(str) - - Strips white-space-only characters that might appear at the beginning or end of the given string and returns the new stripped string. - -++++++++++++++++++ -The regexp class -++++++++++++++++++ - -.. js:class:: regexp(pattern) - - The regexp object represents a precompiled regular expression pattern. The object is created - through `regexp(pattern)`. - - -+---------------------+--------------------------------------+ -| `\\` | Quote the next metacharacter | -+---------------------+--------------------------------------+ -| `^` | Match the beginning of the string | -+---------------------+--------------------------------------+ -| `.` | Match any character | -+---------------------+--------------------------------------+ -| `$` | Match the end of the string | -+---------------------+--------------------------------------+ -| `|` | Alternation | -+---------------------+--------------------------------------+ -| `(subexp)` | Grouping (creates a capture) | -+---------------------+--------------------------------------+ -| `(?:subexp)` | No Capture Grouping (no capture) | -+---------------------+--------------------------------------+ -| `[]` | Character class | -+---------------------+--------------------------------------+ - -**GREEDY CLOSURES** - -+---------------------+---------------------------------------------+ -| `*` | Match 0 or more times | -+---------------------+---------------------------------------------+ -| `+` | Match 1 or more times | -+---------------------+---------------------------------------------+ -| `?` | Match 1 or 0 times | -+---------------------+---------------------------------------------+ -| `{n}` | Match exactly n times | -+---------------------+---------------------------------------------+ -| `{n,}` | Match at least n times | -+---------------------+---------------------------------------------+ -| `{n,m}` | Match at least n but not more than m times | -+---------------------+---------------------------------------------+ - -**ESCAPE CHARACTERS** - -+---------------------+--------------------------------------+ -| `\\t` | tab (HT, TAB) | -+---------------------+--------------------------------------+ -| `\\n` | newline (LF, NL) | -+---------------------+--------------------------------------+ -| `\\r` | return (CR) | -+---------------------+--------------------------------------+ -| `\\f` | form feed (FF) | -+---------------------+--------------------------------------+ - -**PREDEFINED CLASSES** - -+---------------------+--------------------------------------+ -| `\\l` | lowercase next char | -+---------------------+--------------------------------------+ -| `\\u` | uppercase next char | -+---------------------+--------------------------------------+ -| `\\a` | letters | -+---------------------+--------------------------------------+ -| `\\A` | non letters | -+---------------------+--------------------------------------+ -| `\\w` | alphanumeric `[_0-9a-zA-Z]` | -+---------------------+--------------------------------------+ -| `\\W` | non alphanumeric `[^_0-9a-zA-Z]` | -+---------------------+--------------------------------------+ -| `\\s` | space | -+---------------------+--------------------------------------+ -| `\\S` | non space | -+---------------------+--------------------------------------+ -| `\\d` | digits | -+---------------------+--------------------------------------+ -| `\\D` | non digits | -+---------------------+--------------------------------------+ -| `\\x` | hexadecimal digits | -+---------------------+--------------------------------------+ -| `\\X` | non hexadecimal digits | -+---------------------+--------------------------------------+ -| `\\c` | control characters | -+---------------------+--------------------------------------+ -| `\\C` | non control characters | -+---------------------+--------------------------------------+ -| `\\p` | punctuation | -+---------------------+--------------------------------------+ -| `\\P` | non punctuation | -+---------------------+--------------------------------------+ -| `\\b` | word boundary | -+---------------------+--------------------------------------+ -| `\\B` | non word boundary | -+---------------------+--------------------------------------+ - - -.. js:function:: regexp.capture(str [, start]) - - returns an array of tables containing two indexes ("begin" and "end") of - the first match of the regular expression in the string `str`. - An array entry is created for each captured sub expressions. If no match occurs returns null. - The search starts from the index `start` - of the string; if `start` is omitted the search starts from the beginning of the string. - - The first element of the returned array(index 0) always contains the complete match. - - :: - - local ex = regexp(@"(\d+) ([a-zA-Z]+)(\p)"); - local string = "stuff 123 Test;"; - local res = ex.capture(string); - foreach(i,val in res) - { - print(format("match number[%02d] %s\n", - i,string.slice(val.begin,val.end))); //prints "Test" - } - - ... - will print - match number[00] 123 Test; - match number[01] 123 - match number[02] Test - match number[03] ; - -.. js:function:: regexp.match(str) - - returns a true if the regular expression matches the string - `str`, otherwise returns false. - -.. js:function:: regexp.search(str [, start]) - - returns a table containing two indexes ("begin" and "end") of the first match of the regular expression in - the string `str`, otherwise if no match occurs returns null. The search starts from the index `start` - of the string; if `start` is omitted the search starts from the beginning of the string. - - :: - - local ex = regexp("[a-zA-Z]+"); - local string = "123 Test;"; - local res = ex.search(string); - print(string.slice(res.begin,res.end)); //prints "Test" - -------------- -C API -------------- - -.. _sqstd_register_stringlib: - -.. c:function:: SQRESULT sqstd_register_stringlib(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: an SQRESULT - :remarks: The function aspects a table on top of the stack where to register the global library functions. - - initialize and register the string library in the given VM. - -+++++++++++++ -Formatting -+++++++++++++ - -.. c:function:: SQRESULT sqstd_format(HSQUIRRELVM v, SQInteger nformatstringidx, SQInteger * outlen, SQChar ** output) - - :param HSQUIRRELVM v: the target VM - :param SQInteger nformatstringidx: index in the stack of the format string - :param SQInteger * outlen: a pointer to an integer that will be filled with the length of the newly created string - :param SQChar ** output: a pointer to a string pointer that will receive the newly created string - :returns: an SQRESULT - :remarks: the newly created string is allocated in the scratchpad memory. - - - creates a new string formatted according to the object at position `nformatstringidx` and the optional parameters following it. - The format string follows the same rules as the `printf` family of - standard C functions( the "*" is not supported). - -++++++++++++++++++ -Regular Expessions -++++++++++++++++++ - -.. c:function:: SQRex* sqstd_rex_compile(const SQChar * pattern, const SQChar ** error) - - :param SQChar * pattern: a pointer to a zero terminated string containing the pattern that has to be compiled. - :param SQChar ** error: a pointer to a string pointer that will be set with an error string in case of failure. - :returns: a pointer to the compiled pattern - - compiles an expression and returns a pointer to the compiled version. - in case of failure returns NULL.The returned object has to be deleted - through the function sqstd_rex_free(). - -.. c:function:: void sqstd_rex_free(SQRex * exp) - - :param SQRex * exp: the expression structure that has to be deleted. - - deletes a expression structure created with sqstd_rex_compile() - -.. c:function:: SQBool sqstd_rex_match(SQRex * exp,const SQChar * text) - - :param SQRex * exp: a compiled expression - :param SQChar * text: the string that has to be tested - :returns: SQTrue if successful otherwise SQFalse - - returns SQTrue if the string specified in the parameter text is an - exact match of the expression, otherwise returns SQFalse. - -.. c:function:: SQBool sqstd_rex_search(SQRex * exp, const SQChar * text, const SQChar ** out_begin, const SQChar ** out_end) - - :param SQRex * exp: a compiled expression - :param SQChar * text: the string that has to be tested - :param SQChar ** out_begin: a pointer to a string pointer that will be set with the beginning of the match - :param SQChar ** out_end: a pointer to a string pointer that will be set with the end of the match - :returns: SQTrue if successful otherwise SQFalse - - searches the first match of the expression in the string specified in the parameter text. - if the match is found returns SQTrue and the sets out_begin to the beginning of the - match and out_end at the end of the match; otherwise returns SQFalse. - -.. c:function:: SQBool sqstd_rex_searchrange(SQRex * exp, const SQChar * text_begin, const SQChar * text_end, const SQChar ** out_begin, const SQChar ** out_end) - - :param SQRex * exp: a compiled expression - :param SQChar * text_begin: a pointer to the beginnning of the string that has to be tested - :param SQChar * text_end: a pointer to the end of the string that has to be tested - :param SQChar ** out_begin: a pointer to a string pointer that will be set with the beginning of the match - :param SQChar ** out_end: a pointer to a string pointer that will be set with the end of the match - :returns: SQTrue if successful otherwise SQFalse - - searches the first match of the expression in the string delimited - by the parameter text_begin and text_end. - if the match is found returns SQTrue and sets out_begin to the beginning of the - match and out_end at the end of the match; otherwise returns SQFalse. - -.. c:function:: SQInteger sqstd_rex_getsubexpcount(SQRex * exp) - - :param SQRex * exp: a compiled expression - :returns: the number of sub expressions matched by the expression - - returns the number of sub expressions matched by the expression - -.. c:function:: SQBool sqstd_rex_getsubexp(SQRex * exp, SQInteger n, SQRexMatch * subexp) - - :param SQRex * exp: a compiled expression - :param SQInteger n: the index of the submatch(0 is the complete match) - :param SQRexMatch * a: pointer to structure that will store the result - :returns: the function returns SQTrue if n is a valid index; otherwise SQFalse. - - retrieve the begin and and pointer to the length of the sub expression indexed - by n. The result is passed through the struct SQRexMatch. diff --git a/m_packages/squirrel/doc/source/stdlib/stdsystemlib.rst b/m_packages/squirrel/doc/source/stdlib/stdsystemlib.rst deleted file mode 100644 index 5c565fd6..00000000 --- a/m_packages/squirrel/doc/source/stdlib/stdsystemlib.rst +++ /dev/null @@ -1,82 +0,0 @@ -.. _stdlib_stdsystemlib: - -================== -The System library -================== - -The system library exposes operating system facilities like environment variables, -date time manipulation etc.. - --------------- -Squirrel API --------------- - -++++++++++++++ -Global Symbols -++++++++++++++ - -.. js:function:: clock() - - returns a float representing the number of seconds elapsed since the start of the process - -.. js:function:: date([time [, format]]) - - returns a table containing a date/time split into the slots: - -+-------------+----------------------------------------+ -| sec | Seconds after minute (0 - 59). | -+-------------+----------------------------------------+ -| min | Minutes after hour (0 - 59). | -+-------------+----------------------------------------+ -| hour | Hours since midnight (0 - 23). | -+-------------+----------------------------------------+ -| day | Day of month (1 - 31). | -+-------------+----------------------------------------+ -| month | Month (0 - 11; January = 0). | -+-------------+----------------------------------------+ -| year | Year (current year). | -+-------------+----------------------------------------+ -| wday | Day of week (0 - 6; Sunday = 0). | -+-------------+----------------------------------------+ -| yday | Day of year (0 - 365; January 1 = 0). | -+-------------+----------------------------------------+ - -if `time` is omitted the current time is used. - -if `format` can be 'l' local time or 'u' UTC time, if omitted is defaulted as 'l'(local time). - -.. js:function:: getenv(varaname) - - Returns a string containing the value of the environment variable `varname` - -.. js:function:: remove(path) - - deletes the file specified by `path` - -.. js:function:: rename(oldname, newname) - - renames the file or directory specified by `oldname` to the name given by `newname` - -.. js:function:: system(cmd) - - xecutes the string `cmd` through the os command interpreter. - -.. js:function:: time() - - returns the number of seconds elapsed since midnight 00:00:00, January 1, 1970. - - the result of this function can be formatted through the function `date()` - --------------- -C API --------------- - -.. _sqstd_register_systemlib: - -.. c:function:: SQRESULT sqstd_register_systemlib(HSQUIRRELVM v) - - :param HSQUIRRELVM v: the target VM - :returns: an SQRESULT - :remarks: The function aspects a table on top of the stack where to register the global library functions. - - initialize and register the system library in the given VM. diff --git a/m_packages/squirrel/etc/minimal.c b/m_packages/squirrel/etc/minimal.c deleted file mode 100644 index 0695768b..00000000 --- a/m_packages/squirrel/etc/minimal.c +++ /dev/null @@ -1,78 +0,0 @@ -#include -#include - -#include -#include -#include - -#ifdef _MSC_VER -#pragma comment (lib ,"squirrel.lib") -#pragma comment (lib ,"sqstdlib.lib") -#endif - -#ifdef SQUNICODE - -#define scvprintf vfwprintf -#else - -#define scvprintf vfprintf -#endif - -void printfunc(HSQUIRRELVM v,const SQChar *s,...) -{ - va_list vl; - va_start(vl, s); - scvprintf(stdout, s, vl); - va_end(vl); -} - -void errorfunc(HSQUIRRELVM v,const SQChar *s,...) -{ - va_list vl; - va_start(vl, s); - scvprintf(stderr, s, vl); - va_end(vl); -} - -void call_foo(HSQUIRRELVM v, int n,float f,const SQChar *s) -{ - SQInteger top = sq_gettop(v); //saves the stack size before the call - sq_pushroottable(v); //pushes the global table - sq_pushstring(v,_SC("foo"),-1); - if(SQ_SUCCEEDED(sq_get(v,-2))) { //gets the field 'foo' from the global table - sq_pushroottable(v); //push the 'this' (in this case is the global table) - sq_pushinteger(v,n); - sq_pushfloat(v,f); - sq_pushstring(v,s,-1); - sq_call(v,4,SQFalse,SQTrue); //calls the function - } - sq_settop(v,top); //restores the original stack size -} - -int main(int argc, char* argv[]) -{ - HSQUIRRELVM v; - v = sq_open(1024); // creates a VM with initial stack size 1024 - - //REGISTRATION OF STDLIB - //sq_pushroottable(v); //push the root table where the std function will be registered - //sqstd_register_iolib(v); //registers a library - // ... call here other stdlibs string,math etc... - //sq_pop(v,1); //pops the root table - //END REGISTRATION OF STDLIB - - sqstd_seterrorhandlers(v); //registers the default error handlers - - sq_setprintfunc(v, printfunc,errorfunc); //sets the print function - - sq_pushroottable(v); //push the root table(were the globals of the script will be stored) - if(SQ_SUCCEEDED(sqstd_dofile(v, _SC("test.nut"), SQFalse, SQTrue))) // also prints syntax errors if any - { - call_foo(v,1,2.5,_SC("teststring")); - } - - sq_pop(v,1); //pops the root table - sq_close(v); - - return 0; -} diff --git a/m_packages/squirrel/etc/test.nut b/m_packages/squirrel/etc/test.nut deleted file mode 100644 index 125df32c..00000000 --- a/m_packages/squirrel/etc/test.nut +++ /dev/null @@ -1,4 +0,0 @@ -function foo(i, f, s) -{ - print("Called foo(), i="+i+", f="+f+", s='"+s+"'\n"); -} diff --git a/m_packages/squirrel/include/sqconfig.h b/m_packages/squirrel/include/sqconfig.h deleted file mode 100644 index 58bc9793..00000000 --- a/m_packages/squirrel/include/sqconfig.h +++ /dev/null @@ -1,146 +0,0 @@ - -#ifdef _SQ64 - -#ifdef _MSC_VER -typedef __int64 SQInteger; -typedef unsigned __int64 SQUnsignedInteger; -typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/ -#else -typedef long long SQInteger; -typedef unsigned long long SQUnsignedInteger; -typedef unsigned long long SQHash; /*should be the same size of a pointer*/ -#endif -typedef int SQInt32; -typedef unsigned int SQUnsignedInteger32; -#else -typedef int SQInteger; -typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/ -typedef unsigned int SQUnsignedInteger32; /*must be 32 bits(also on 64bits processors)*/ -typedef unsigned int SQUnsignedInteger; -typedef unsigned int SQHash; /*should be the same size of a pointer*/ -#endif - - -#ifdef SQUSEDOUBLE -typedef double SQFloat; -#else -typedef float SQFloat; -#endif - -#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) -#ifdef _MSC_VER -typedef __int64 SQRawObjectVal; //must be 64bits -#else -typedef long long SQRawObjectVal; //must be 64bits -#endif -#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; } -#else -typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise -#define SQ_OBJECT_RAWINIT() -#endif - -#ifndef SQ_ALIGNMENT // SQ_ALIGNMENT shall be less than or equal to SQ_MALLOC alignments, and its value shall be power of 2. -#if defined(SQUSEDOUBLE) || defined(_SQ64) -#define SQ_ALIGNMENT 8 -#else -#define SQ_ALIGNMENT 4 -#endif -#endif - -typedef void* SQUserPointer; -typedef SQUnsignedInteger SQBool; -typedef SQInteger SQRESULT; - -#ifdef SQUNICODE -#include -#include - - -typedef wchar_t SQChar; - - -#define scstrcmp wcscmp -#ifdef _WIN32 -#define scsprintf _snwprintf -#else -#define scsprintf swprintf -#endif -#define scstrlen wcslen -#define scstrtod wcstod -#ifdef _SQ64 -#define scstrtol wcstoll -#else -#define scstrtol wcstol -#endif -#define scstrtoul wcstoul -#define scvsprintf vswprintf -#define scstrstr wcsstr -#define scprintf wprintf - -#ifdef _WIN32 -#define WCHAR_SIZE 2 -#define WCHAR_SHIFT_MUL 1 -#define MAX_CHAR 0xFFFF -#else -#define WCHAR_SIZE 4 -#define WCHAR_SHIFT_MUL 2 -#define MAX_CHAR 0xFFFFFFFF -#endif - -#define _SC(a) L##a - - -#define scisspace iswspace -#define scisdigit iswdigit -#define scisprint iswprint -#define scisxdigit iswxdigit -#define scisalpha iswalpha -#define sciscntrl iswcntrl -#define scisalnum iswalnum - - -#define sq_rsl(l) ((l)<=0) - -#ifdef __GNUC__ -# define SQ_UNUSED_ARG(x) x __attribute__((__unused__)) -#else -# define SQ_UNUSED_ARG(x) x -#endif - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif /*_SQUIRREL_H_*/ diff --git a/m_packages/squirrel/samples/ackermann.nut b/m_packages/squirrel/samples/ackermann.nut deleted file mode 100644 index 8b18ec21..00000000 --- a/m_packages/squirrel/samples/ackermann.nut +++ /dev/null @@ -1,23 +0,0 @@ -/* -* -* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/) -* -*/ - -function Ack(M, N) { - if (M == 0) return( N + 1 ); - if (N == 0) return( Ack(M - 1, 1) ); - return( Ack(M - 1, Ack(M, (N - 1))) ); -} - -local n; - -if(vargv.len()!=0) { - n = vargv[0].tointeger(); - if(n < 1) n = 1; -} else { - n = 1; -} -print("n="+n+"\n"); -print("Ack(3,"+ n+ "):"+ Ack(3, n)); - diff --git a/m_packages/squirrel/samples/array.nut b/m_packages/squirrel/samples/array.nut deleted file mode 100644 index 0102d62f..00000000 --- a/m_packages/squirrel/samples/array.nut +++ /dev/null @@ -1,29 +0,0 @@ -/* -* -* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/) -* -*/ -local n, i, k; - -if(vargv.len()!=0) { - n = vargv[0].tointeger(); - if(n < 1) n = 1; -} else { - n = 1; -} - -local x = []; x.resize(n); -local y = []; y.resize(n); - -for (i = 0; i < n; i+=1) { - x[i] = i + 1; - y[i] = 0; -} - -for (k = 0 ; k < n; k+=1) { - for (i = n-1; i >= 0; i-=1) { - y[i] = y[i]+ x[i]; - } -} -print(y[0].tostring()+" "+y[n-1]); - diff --git a/m_packages/squirrel/samples/class.nut b/m_packages/squirrel/samples/class.nut deleted file mode 100644 index 2d924602..00000000 --- a/m_packages/squirrel/samples/class.nut +++ /dev/null @@ -1,49 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////// -class BaseVector { - constructor(...) - { - if(vargv.len() >= 3) { - x = vargv[0]; - y = vargv[1]; - z = vargv[2]; - } - } - - - x = 0; - y = 0; - z = 0; -} - -class Vector3 extends BaseVector { - function _add(other) - { - if(other instanceof this.getclass()) - return ::Vector3(x+other.x,y+other.y,z+other.z); - else - throw "wrong parameter"; - } - function Print() - { - ::print(x+","+y+","+z+"\n"); - } -} - -local v0 = Vector3(1,2,3) -local v1 = Vector3(11,12,13) -local v2 = v0 + v1; -v2.Print(); - -FakeNamespace <- { - Utils = {} -} - -class FakeNamespace.Utils.SuperClass { - constructor() - { - ::print("FakeNamespace.Utils.SuperClass") - } -} - -local testy = FakeNamespace.Utils.SuperClass(); diff --git a/m_packages/squirrel/samples/classattributes.nut b/m_packages/squirrel/samples/classattributes.nut deleted file mode 100644 index 4d2d078d..00000000 --- a/m_packages/squirrel/samples/classattributes.nut +++ /dev/null @@ -1,35 +0,0 @@ -class Foo { - //constructor - constructor(a) - { - testy = ["stuff",1,2,3]; - } - //attributes of PrintTesty - - function PrintTesty() - { - foreach(i,val in testy) - { - ::print("idx = "+i+" = "+val+" \n"); - } - } - //attributes of testy - - testy = null; - -} - -foreach(member,val in Foo) -{ - ::print(member+"\n"); - local attr; - if((attr = Foo.getattributes(member)) != null) { - foreach(i,v in attr) - { - ::print("\t"+i+" = "+(typeof v)+"\n"); - } - } - else { - ::print("\t\n") - } -} diff --git a/m_packages/squirrel/samples/coroutines.nut b/m_packages/squirrel/samples/coroutines.nut deleted file mode 100644 index 0cc19920..00000000 --- a/m_packages/squirrel/samples/coroutines.nut +++ /dev/null @@ -1,25 +0,0 @@ -function coroutine_test(a,b) -{ - ::print(a+" "+b+"\n"); - local ret = ::suspend("suspend 1"); - ::print("the coroutine says "+ret+"\n"); - ret = ::suspend("suspend 2"); - ::print("the coroutine says "+ret+"\n"); - ret = ::suspend("suspend 3"); - ::print("the coroutine says "+ret+"\n"); - return "I'm done" -} - -local coro = ::newthread(coroutine_test); - -local susparam = coro.call("test","coroutine"); //starts the coroutine - -local i = 1; -do -{ - ::print("suspend passed ["+susparam+"]\n") - susparam = coro.wakeup("ciao "+i); - ++i; -}while(coro.getstatus()=="suspended") - -::print("return passed ["+susparam+"]\n") diff --git a/m_packages/squirrel/samples/delegation.nut b/m_packages/squirrel/samples/delegation.nut deleted file mode 100644 index 9f208dc4..00000000 --- a/m_packages/squirrel/samples/delegation.nut +++ /dev/null @@ -1,54 +0,0 @@ - -PEntity <- { - name="noname" - pos={x=0,y=0,z=0} - type="entity" - //methamethod - _typeof=function() - { - return type; - } -} - -function PEntity::PrintPos() -{ - ::print("x="+pos.x+" y="+pos.y+" z="+pos.z+"\n"); -} - -function PEntity::new(name,pos) -{ - local newentity=clone ::PEntity; - if(name) - newentity.name=name; - if(pos) - newentity.pos=pos; - return newentity; -} - -PPlayer <- { - model="warrior.mdl" - weapon="fist" - health=100 - armor=0 - //overrides the parent type - type="player" -} - -function PPlayer::new(name,pos) -{ - local p = clone ::PPlayer; - local newplayer = ::PEntity.new(name,pos); - newplayer.setdelegate(p); - return newplayer; -} - -local player=PPlayer.new("godzilla",{x=10,y=20,z=30}); - -::print("PLAYER NAME"+player.name+"\n"); -::print("ENTITY TYPE"+typeof player+"\n"); - -player.PrintPos(); - -player.pos.x=123; - -player.PrintPos(); diff --git a/m_packages/squirrel/samples/fibonacci.nut b/m_packages/squirrel/samples/fibonacci.nut deleted file mode 100644 index c722d1a1..00000000 --- a/m_packages/squirrel/samples/fibonacci.nut +++ /dev/null @@ -1,15 +0,0 @@ -/* -* -* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/) -* -*/ - -function fib(n) -{ - if (n < 2) return 1 - return fib(n-2) + fib(n-1) -} - -local n = vargv.len()!=0?vargv[0].tointeger():1 - -print(fib(n)+"\n") diff --git a/m_packages/squirrel/samples/flow.nut b/m_packages/squirrel/samples/flow.nut deleted file mode 100644 index 635bc89f..00000000 --- a/m_packages/squirrel/samples/flow.nut +++ /dev/null @@ -1,33 +0,0 @@ -function min(x,y) - return xy?x:y; - -if(min(100,200)>max(50,20)) - print("I'm useless statement just to show up the if/else\n"); -else - print("squirrel!!\n"); - -print("\n") - -function typy(obj) -{ - switch(typeof obj) - { - case "integer": - case "float": - return "is a number"; - case "table": - case "array": - return "is a container"; - default: - return "is other stuff" - } -} - -local a=1,b={},c=function(a,b){return a+b;} - -print("a "+typy(a)+"\n"); -print("b "+typy(b)+"\n"); -print("c "+typy(c)+"\n"); diff --git a/m_packages/squirrel/samples/generators.nut b/m_packages/squirrel/samples/generators.nut deleted file mode 100644 index eb5eef6b..00000000 --- a/m_packages/squirrel/samples/generators.nut +++ /dev/null @@ -1,42 +0,0 @@ -/* -*Random number function from The Great Computer Language shootout -*converted to a generator func -*/ - -function gen_random(max) { - local last=42 - local IM = 139968; - local IA = 3877; - local IC = 29573; - for(;;){ //loops forever - yield (max * (last = (last * IA + IC) % IM) / IM); - } -} - -local randtor=gen_random(100); - -print("RAND NUMBERS \n") - -for(local i=0;i<10;i+=1) - print(">"+resume randtor+"\n"); - -print("FIBONACCI \n") -function fiboz(n) -{ - local prev=0; - local curr=1; - yield 1; - - for(local i=0;i"+val+"\n"); -} diff --git a/m_packages/squirrel/samples/hello.nut b/m_packages/squirrel/samples/hello.nut deleted file mode 100644 index f301245e..00000000 --- a/m_packages/squirrel/samples/hello.nut +++ /dev/null @@ -1 +0,0 @@ -print("Hello World!") diff --git a/m_packages/squirrel/samples/list.nut b/m_packages/squirrel/samples/list.nut deleted file mode 100644 index e7cc2218..00000000 --- a/m_packages/squirrel/samples/list.nut +++ /dev/null @@ -1,40 +0,0 @@ -/*translation of the list test from The Great Computer Language Shootout -*/ - -function compare_arr(a1,a2) -{ - foreach(i,val in a1) - if(val!=a2[i])return null; - return 1; -} - -function test() -{ - local size=10000 - local l1=[]; l1.resize(size); - for(local i=0;i0) - l3.append(l2.pop()); - while(l3.len()>0) - l2.append(l3.pop()); - l1.reverse(); - - if(compare_arr(l1,l2)) - return l1.len(); - return null; -} - -local n = vargv.len()!=0?vargv[0].tointeger():1 -for(local i=0;i\n"); -else - print("\n"); diff --git a/m_packages/squirrel/samples/methcall.nut b/m_packages/squirrel/samples/methcall.nut deleted file mode 100644 index 73bb2e84..00000000 --- a/m_packages/squirrel/samples/methcall.nut +++ /dev/null @@ -1,68 +0,0 @@ -/*translation of the methcall test from The Great Computer Language Shootout -*/ - -class Toggle { - bool=null -} - -function Toggle::constructor(startstate) { - bool = startstate -} - -function Toggle::value() { - return bool; -} - -function Toggle::activate() { - bool = !bool; - return this; -} - -class NthToggle extends Toggle { - count_max=null - count=0 -} - -function NthToggle::constructor(start_state,max_counter) -{ - base.constructor(start_state); - count_max = max_counter -} - -function NthToggle::activate () -{ - ++count; - if (count >= count_max ) { - base.activate(); - count = 0; - } - return this; -} - - -function main() { - local n = vargv.len()!=0?vargv[0].tointeger():1 - - - - local val = 1; - local toggle = Toggle(val); - local i = n; - while(i--) { - val = toggle.activate().value(); - - } - print(toggle.value() ? "true\n" : "false\n"); - - val = 1; - local ntoggle = NthToggle(val, 3); - i = n; - while(i--) { - val = ntoggle.activate().value(); - } - print(ntoggle.value() ? "true\n" : "false\n"); - -} -local start=clock(); -main(); -print("TIME="+(clock()-start)+"\n"); diff --git a/m_packages/squirrel/samples/regex.nut b/m_packages/squirrel/samples/regex.nut deleted file mode 100644 index fcd8e59e..00000000 --- a/m_packages/squirrel/samples/regex.nut +++ /dev/null @@ -1,10 +0,0 @@ -local ex = regexp("[a-zA-Z]+"); -local string = "123 Test; strlen(str);"; -local res = ex.search(string); -print(string.slice(res.begin,res.end)); //prints "Test" -print("\n"); -ex = regexp(@"\m()"); -string = "123 Test; doSomething(str, getTemp(), (a+(b/c)));"; -res = ex.search(string); -print(string.slice(res.begin,res.end)); //prints "(...)" -print("\n"); diff --git a/m_packages/squirrel/samples/tailstate.nut b/m_packages/squirrel/samples/tailstate.nut deleted file mode 100644 index 7ea06c69..00000000 --- a/m_packages/squirrel/samples/tailstate.nut +++ /dev/null @@ -1,24 +0,0 @@ -function state1() -{ - ::suspend("state1"); - return state2(); -} - -function state2() -{ - ::suspend("state2"); - return state3(); -} - -function state3() -{ - ::suspend("state3"); - return state1(); -} - -local statethread = ::newthread(state1) - -::print(statethread.call()+"\n"); - -for(local i = 0; i < 10000; i++) - ::print(statethread.wakeup()+"\n"); diff --git a/m_packages/squirrel/sq/CMakeLists.txt b/m_packages/squirrel/sq/CMakeLists.txt deleted file mode 100644 index f7629a3f..00000000 --- a/m_packages/squirrel/sq/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -set(CMAKE_C_STANDARD 99) -if(NOT DISABLE_DYNAMIC) - add_executable(sq sq.c) - add_executable(squirrel::interpreter ALIAS sq) - set_target_properties(sq PROPERTIES LINKER_LANGUAGE C EXPORT_NAME interpreter) - target_link_libraries(sq squirrel sqstdlib) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS sq EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime) - endif() - target_include_directories(sq PUBLIC - "$" - "$" - ) -endif() - -if(NOT DISABLE_STATIC) - add_executable(sq_static sq.c) - add_executable(squirrel::interpreter_static ALIAS sq_static) - set_target_properties(sq_static PROPERTIES LINKER_LANGUAGE C EXPORT_NAME interpreter_static) - target_link_libraries(sq_static squirrel_static sqstdlib_static) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS sq_static EXPORT squirrel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime) - endif() - target_include_directories(sq_static PUBLIC - "$" - "$" - ) -endif() - -if(LONG_OUTPUT_NAMES) - if(NOT DISABLE_DYNAMIC) - set_target_properties(sq PROPERTIES OUTPUT_NAME squirrel3) - endif() - - if(NOT DISABLE_STATIC) - set_target_properties(sq_static PROPERTIES OUTPUT_NAME squirrel3_static) - endif() -endif() diff --git a/m_packages/squirrel/sq/Makefile b/m_packages/squirrel/sq/Makefile deleted file mode 100644 index 948fd1ea..00000000 --- a/m_packages/squirrel/sq/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -SQUIRREL= .. - - -OUT= $(SQUIRREL)/bin/sq -INCZ= -I$(SQUIRREL)/include -I. -I$(SQUIRREL)/sqlibs -LIBZ= -L$(SQUIRREL)/lib -LIB= -lsquirrel -lsqstdlib - -OBJS= sq.o - -SRCS= sq.c - - -sq32: - g++ -O2 -fno-exceptions -fno-rtti -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) - -sqprof: - g++ -O2 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) - -sq64: - g++ -O2 -m64 -fno-exceptions -fno-rtti -D_SQ64 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) diff --git a/m_packages/squirrel/sq/sq.c b/m_packages/squirrel/sq/sq.c deleted file mode 100644 index ee5eabbb..00000000 --- a/m_packages/squirrel/sq/sq.c +++ /dev/null @@ -1,349 +0,0 @@ -/* see copyright notice in squirrel.h */ - -#include -#include -#include -#include - -#if defined(_MSC_VER) && defined(_DEBUG) -#include -#include -#endif -#include -#include -#include -#include -#include -#include -#include - -#ifdef SQUNICODE -#define scfprintf fwprintf -#define scvprintf vfwprintf -#else -#define scfprintf fprintf -#define scvprintf vfprintf -#endif - - -void PrintVersionInfos(); - -#if defined(_MSC_VER) && defined(_DEBUG) -int MemAllocHook( int allocType, void *userData, size_t size, int blockType, - long requestNumber, const unsigned char *filename, int lineNumber) -{ - //if(requestNumber==769)_asm int 3; - return 1; -} -#endif - - -SQInteger quit(HSQUIRRELVM v) -{ - int *done; - sq_getuserpointer(v,-1,(SQUserPointer*)&done); - *done=1; - return 0; -} - -void printfunc(HSQUIRRELVM SQ_UNUSED_ARG(v),const SQChar *s,...) -{ - va_list vl; - va_start(vl, s); - scvprintf(stdout, s, vl); - va_end(vl); -} - -void errorfunc(HSQUIRRELVM SQ_UNUSED_ARG(v),const SQChar *s,...) -{ - va_list vl; - va_start(vl, s); - scvprintf(stderr, s, vl); - va_end(vl); -} - -void PrintVersionInfos() -{ - scfprintf(stdout,_SC("%s %s (%d bits)\n"),SQUIRREL_VERSION,SQUIRREL_COPYRIGHT,((int)(sizeof(SQInteger)*8))); -} - -void PrintUsage() -{ - scfprintf(stderr,_SC("usage: sq .\n") - _SC("Available options are:\n") - _SC(" -c compiles the file to bytecode(default output 'out.cnut')\n") - _SC(" -o specifies output file for the -c option\n") - _SC(" -c compiles only\n") - _SC(" -d generates debug infos\n") - _SC(" -v displays version infos\n") - _SC(" -h prints help\n")); -} - -#define _INTERACTIVE 0 -#define _DONE 2 -#define _ERROR 3 -//<> this func is a mess -int getargs(HSQUIRRELVM v,int argc, char* argv[],SQInteger *retval) -{ - int i; - int compiles_only = 0; -#ifdef SQUNICODE - static SQChar temp[500]; -#endif - char * output = NULL; - *retval = 0; - if(argc>1) - { - int arg=1,exitloop=0; - - while(arg < argc && !exitloop) - { - - if(argv[arg][0]=='-') - { - switch(argv[arg][1]) - { - case 'd': //DEBUG(debug infos) - sq_enabledebuginfo(v,1); - break; - case 'c': - compiles_only = 1; - break; - case 'o': - if(arg < argc) { - arg++; - output = argv[arg]; - } - break; - case 'v': - PrintVersionInfos(); - return _DONE; - - case 'h': - PrintVersionInfos(); - PrintUsage(); - return _DONE; - default: - PrintVersionInfos(); - scprintf(_SC("unknown prameter '-%c'\n"),argv[arg][1]); - PrintUsage(); - *retval = -1; - return _ERROR; - } - }else break; - arg++; - } - - // src file - - if(arg")); - for(;;) { - int c; - if(done)return; - c = getchar(); - if (c == _SC('\n')) { - if (i>0 && buffer[i-1] == _SC('\\')) - { - buffer[i-1] = _SC('\n'); - } - else if(blocks==0)break; - buffer[i++] = _SC('\n'); - } - else if (c==_SC('}')) {blocks--; buffer[i++] = (SQChar)c;} - else if(c==_SC('{') && !string){ - blocks++; - buffer[i++] = (SQChar)c; - } - else if(c==_SC('"') || c==_SC('\'')){ - string=!string; - buffer[i++] = (SQChar)c; - } - else if (i >= MAXINPUT-1) { - scfprintf(stderr, _SC("sq : input line too long\n")); - break; - } - else{ - buffer[i++] = (SQChar)c; - } - } - buffer[i] = _SC('\0'); - - if(buffer[0]==_SC('=')){ - scsprintf(sq_getscratchpad(v,MAXINPUT),(size_t)MAXINPUT,_SC("return (%s)"),&buffer[1]); - memcpy(buffer,sq_getscratchpad(v,-1),(scstrlen(sq_getscratchpad(v,-1))+1)*sizeof(SQChar)); - retval=1; - } - i=scstrlen(buffer); - if(i>0){ - SQInteger oldtop=sq_gettop(v); - if(SQ_SUCCEEDED(sq_compilebuffer(v,buffer,i,_SC("interactive console"),SQTrue))){ - sq_pushroottable(v); - if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue)) && retval){ - scprintf(_SC("\n")); - sq_pushroottable(v); - sq_pushstring(v,_SC("print"),-1); - sq_get(v,-2); - sq_pushroottable(v); - sq_push(v,-4); - sq_call(v,2,SQFalse,SQTrue); - retval=0; - scprintf(_SC("\n")); - } - } - - sq_settop(v,oldtop); - } - } -} - -int main(int argc, char* argv[]) -{ - HSQUIRRELVM v; - SQInteger retval = 0; -#if defined(_MSC_VER) && defined(_DEBUG) - _CrtSetAllocHook(MemAllocHook); -#endif - - v=sq_open(1024); - sq_setprintfunc(v,printfunc,errorfunc); - - sq_pushroottable(v); - - sqstd_register_bloblib(v); - sqstd_register_iolib(v); - sqstd_register_systemlib(v); - sqstd_register_mathlib(v); - sqstd_register_stringlib(v); - - //aux library - //sets error handlers - sqstd_seterrorhandlers(v); - - //gets arguments - switch(getargs(v,argc,argv,&retval)) - { - case _INTERACTIVE: - Interactive(v); - break; - case _DONE: - case _ERROR: - default: - break; - } - - sq_close(v); - -#if defined(_MSC_VER) && defined(_DEBUG) - _getch(); - _CrtMemDumpAllObjectsSince( NULL ); -#endif - return retval; -} - diff --git a/m_packages/squirrel/sq/sq.dsp b/m_packages/squirrel/sq/sq.dsp deleted file mode 100644 index a632d12b..00000000 --- a/m_packages/squirrel/sq/sq.dsp +++ /dev/null @@ -1,101 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sq" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=sq - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "sq.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "sq.mak" CFG="sq - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "sq - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "sq - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_LocalPath ".." -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sq - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /I "..\sqstdlib" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x410 /d "NDEBUG" -# ADD RSC /l 0x410 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 squirrel.lib sqstdlib.lib /nologo /subsystem:console /machine:I386 /out:"../bin/sq.exe" /libpath:"../lib" - -!ELSEIF "$(CFG)" == "sq - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\sqstdlib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x410 /d "_DEBUG" -# ADD RSC /l 0x410 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 squirrel.lib sqstdlib.lib /nologo /subsystem:console /debug /machine:I386 /out:"../bin/sq.exe" /pdbtype:sept /libpath:"../lib" - -!ENDIF - -# Begin Target - -# Name "sq - Win32 Release" -# Name "sq - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\sq.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/m_packages/squirrel/sqstdlib/CMakeLists.txt b/m_packages/squirrel/sqstdlib/CMakeLists.txt deleted file mode 100644 index a606ba81..00000000 --- a/m_packages/squirrel/sqstdlib/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -set(SQSTDLIB_SRC sqstdaux.cpp - sqstdblob.cpp - sqstdio.cpp - sqstdmath.cpp - sqstdrex.cpp - sqstdstream.cpp - sqstdstring.cpp - sqstdsystem.cpp) - -if(NOT DISABLE_DYNAMIC) - add_library(sqstdlib SHARED ${SQSTDLIB_SRC}) - add_library(squirrel::sqstdlib ALIAS sqstdlib) - set_property(TARGET sqstdlib PROPERTY EXPORT_NAME sqstdlib) - set_property(TARGET sqstdlib PROPERTY OUTPUT_NAME ${SQSTDLIB_NAME}) - target_link_libraries(sqstdlib squirrel) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS sqstdlib EXPORT squirrel - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libraries - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries NAMELINK_SKIP - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries - ) - install(TARGETS sqstdlib EXPORT squirrel - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development NAMELINK_ONLY - ) - endif() - target_include_directories(sqstdlib PUBLIC - "$" - "$" - ) -endif() - -if(NOT DISABLE_STATIC) - add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC}) - add_library(squirrel::sqstdlib_static ALIAS sqstdlib_static) - set_property(TARGET sqstdlib_static PROPERTY EXPORT_NAME sqstdlib_static) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS sqstdlib_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development) - endif() - target_include_directories(sqstdlib_static PUBLIC - "$" - "$" - ) -endif() - -if(LONG_OUTPUT_NAMES) - if(NOT DISABLE_STATIC) - set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib3_static) - endif() -endif() diff --git a/m_packages/squirrel/sqstdlib/Makefile b/m_packages/squirrel/sqstdlib/Makefile deleted file mode 100644 index 6ed1c12b..00000000 --- a/m_packages/squirrel/sqstdlib/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -SQUIRREL= .. - - -CC?= gcc -OUT?= $(SQUIRREL)/lib/libsqstdlib.a -INCZ?= -I$(SQUIRREL)/include -I. -Iinclude -DEFS= $(CC_EXTRA_FLAGS) -LIB= - -OBJS= \ - sqstdblob.o \ - sqstdio.o \ - sqstdstream.o \ - sqstdmath.o \ - sqstdsystem.o \ - sqstdstring.o \ - sqstdaux.o \ - sqstdrex.o - -SRCS= \ - sqstdblob.cpp \ - sqstdio.cpp \ - sqstdstream.cpp \ - sqstdmath.cpp \ - sqstdsystem.cpp \ - sqstdstring.cpp \ - sqstdaux.cpp \ - sqstdrex.cpp - - -sq32: - $(CC) -O2 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o - -sqprof: - $(CC) -O2 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3 -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o - -sq64: - $(CC) -O2 -m64 -fno-exceptions -D_SQ64 -fno-rtti -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o diff --git a/m_packages/squirrel/sqstdlib/sqstdaux.cpp b/m_packages/squirrel/sqstdlib/sqstdaux.cpp deleted file mode 100644 index 75c16533..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdaux.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include - -void sqstd_printcallstack(HSQUIRRELVM v) -{ - SQPRINTFUNCTION pf = sq_geterrorfunc(v); - if(pf) { - SQStackInfos si; - SQInteger i; - SQFloat f; - const SQChar *s; - SQInteger level=1; //1 is to skip this function that is level 0 - const SQChar *name=0; - SQInteger seq=0; - pf(v,_SC("\nCALLSTACK\n")); - while(SQ_SUCCEEDED(sq_stackinfos(v,level,&si))) - { - const SQChar *fn=_SC("unknown"); - const SQChar *src=_SC("unknown"); - if(si.funcname)fn=si.funcname; - if(si.source)src=si.source; - pf(v,_SC("*FUNCTION [%s()] %s line [%d]\n"),fn,src,si.line); - level++; - } - level=0; - pf(v,_SC("\nLOCALS\n")); - - for(level=0;level<10;level++){ - seq=0; - while((name = sq_getlocal(v,level,seq))) - { - seq++; - switch(sq_gettype(v,-1)) - { - case OT_NULL: - pf(v,_SC("[%s] NULL\n"),name); - break; - case OT_INTEGER: - sq_getinteger(v,-1,&i); - pf(v,_SC("[%s] %d\n"),name,i); - break; - case OT_FLOAT: - sq_getfloat(v,-1,&f); - pf(v,_SC("[%s] %.14g\n"),name,f); - break; - case OT_USERPOINTER: - pf(v,_SC("[%s] USERPOINTER\n"),name); - break; - case OT_STRING: - sq_getstring(v,-1,&s); - pf(v,_SC("[%s] \"%s\"\n"),name,s); - break; - case OT_TABLE: - pf(v,_SC("[%s] TABLE\n"),name); - break; - case OT_ARRAY: - pf(v,_SC("[%s] ARRAY\n"),name); - break; - case OT_CLOSURE: - pf(v,_SC("[%s] CLOSURE\n"),name); - break; - case OT_NATIVECLOSURE: - pf(v,_SC("[%s] NATIVECLOSURE\n"),name); - break; - case OT_GENERATOR: - pf(v,_SC("[%s] GENERATOR\n"),name); - break; - case OT_USERDATA: - pf(v,_SC("[%s] USERDATA\n"),name); - break; - case OT_THREAD: - pf(v,_SC("[%s] THREAD\n"),name); - break; - case OT_CLASS: - pf(v,_SC("[%s] CLASS\n"),name); - break; - case OT_INSTANCE: - pf(v,_SC("[%s] INSTANCE\n"),name); - break; - case OT_WEAKREF: - pf(v,_SC("[%s] WEAKREF\n"),name); - break; - case OT_BOOL:{ - SQBool bval; - sq_getbool(v,-1,&bval); - pf(v,_SC("[%s] %s\n"),name,bval == SQTrue ? _SC("true"):_SC("false")); - } - break; - default: assert(0); break; - } - sq_pop(v,1); - } - } - } -} - -static SQInteger _sqstd_aux_printerror(HSQUIRRELVM v) -{ - SQPRINTFUNCTION pf = sq_geterrorfunc(v); - if(pf) { - const SQChar *sErr = 0; - if(sq_gettop(v)>=1) { - if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr))) { - pf(v,_SC("\nAN ERROR HAS OCCURRED [%s]\n"),sErr); - } - else{ - pf(v,_SC("\nAN ERROR HAS OCCURRED [unknown]\n")); - } - sqstd_printcallstack(v); - } - } - return 0; -} - -void _sqstd_compiler_error(HSQUIRRELVM v,const SQChar *sErr,const SQChar *sSource,SQInteger line,SQInteger column) -{ - SQPRINTFUNCTION pf = sq_geterrorfunc(v); - if(pf) { - pf(v,_SC("%s line = (%d) column = (%d) : error %s\n"),sSource,line,column,sErr); - } -} - -void sqstd_seterrorhandlers(HSQUIRRELVM v) -{ - sq_setcompilererrorhandler(v,_sqstd_compiler_error); - sq_newclosure(v,_sqstd_aux_printerror,0); - sq_seterrorhandler(v); -} - -SQRESULT sqstd_throwerrorf(HSQUIRRELVM v,const SQChar *err,...) -{ - SQInteger n=256; - va_list args; -begin: - va_start(args,err); - SQChar *b=sq_getscratchpad(v,n); - SQInteger r=scvsprintf(b,n,err,args); - va_end(args); - if (r>=n) { - n=r+1;//required+null - goto begin; - } else if (r<0) { - return sq_throwerror(v,_SC("@failed to generate formatted error message")); - } else { - return sq_throwerror(v,b); - } -} diff --git a/m_packages/squirrel/sqstdlib/sqstdblob.cpp b/m_packages/squirrel/sqstdlib/sqstdblob.cpp deleted file mode 100644 index 22df0cf9..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdblob.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include -#include "sqstdstream.h" -#include "sqstdblobimpl.h" - -#define SQSTD_BLOB_TYPE_TAG ((SQUnsignedInteger)(SQSTD_STREAM_TYPE_TAG | 0x00000002)) - -//Blob - - -#define SETUP_BLOB(v) \ - SQBlob *self = NULL; \ - { if(SQ_FAILED(sq_getinstanceup(v,1,(SQUserPointer*)&self,(SQUserPointer)SQSTD_BLOB_TYPE_TAG,SQFalse))) \ - return sq_throwerror(v,_SC("invalid type tag")); } \ - if(!self || !self->IsValid()) \ - return sq_throwerror(v,_SC("the blob is invalid")); - - -static SQInteger _blob_resize(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - SQInteger size; - sq_getinteger(v,2,&size); - if(!self->Resize(size)) - return sq_throwerror(v,_SC("resize failed")); - return 0; -} - -static void __swap_dword(unsigned int *n) -{ - *n=(unsigned int)(((*n&0xFF000000)>>24) | - ((*n&0x00FF0000)>>8) | - ((*n&0x0000FF00)<<8) | - ((*n&0x000000FF)<<24)); -} - -static void __swap_word(unsigned short *n) -{ - *n=(unsigned short)((*n>>8)&0x00FF)| ((*n<<8)&0xFF00); -} - -static SQInteger _blob_swap4(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - SQInteger num=(self->Len()-(self->Len()%4))>>2; - unsigned int *t=(unsigned int *)self->GetBuf(); - for(SQInteger i = 0; i < num; i++) { - __swap_dword(&t[i]); - } - return 0; -} - -static SQInteger _blob_swap2(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - SQInteger num=(self->Len()-(self->Len()%2))>>1; - unsigned short *t = (unsigned short *)self->GetBuf(); - for(SQInteger i = 0; i < num; i++) { - __swap_word(&t[i]); - } - return 0; -} - -static SQInteger _blob__set(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - SQInteger idx,val; - sq_getinteger(v,2,&idx); - sq_getinteger(v,3,&val); - if(idx < 0 || idx >= self->Len()) - return sq_throwerror(v,_SC("index out of range")); - ((unsigned char *)self->GetBuf())[idx] = (unsigned char) val; - sq_push(v,3); - return 1; -} - -static SQInteger _blob__get(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - SQInteger idx; - - if ((sq_gettype(v, 2) & SQOBJECT_NUMERIC) == 0) - { - sq_pushnull(v); - return sq_throwobject(v); - } - sq_getinteger(v,2,&idx); - if(idx < 0 || idx >= self->Len()) - return sq_throwerror(v,_SC("index out of range")); - sq_pushinteger(v,((unsigned char *)self->GetBuf())[idx]); - return 1; -} - -static SQInteger _blob__nexti(HSQUIRRELVM v) -{ - SETUP_BLOB(v); - if(sq_gettype(v,2) == OT_NULL) { - sq_pushinteger(v, 0); - return 1; - } - SQInteger idx; - if(SQ_SUCCEEDED(sq_getinteger(v, 2, &idx))) { - if(idx+1 < self->Len()) { - sq_pushinteger(v, idx+1); - return 1; - } - sq_pushnull(v); - return 1; - } - return sq_throwerror(v,_SC("internal error (_nexti) wrong argument type")); -} - -static SQInteger _blob__typeof(HSQUIRRELVM v) -{ - sq_pushstring(v,_SC("blob"),-1); - return 1; -} - -static SQInteger _blob_releasehook(SQUserPointer p, SQInteger SQ_UNUSED_ARG(size)) -{ - SQBlob *self = (SQBlob*)p; - self->~SQBlob(); - sq_free(self,sizeof(SQBlob)); - return 1; -} - -static SQInteger _blob_constructor(HSQUIRRELVM v) -{ - SQInteger nparam = sq_gettop(v); - SQInteger size = 0; - if(nparam == 2) { - sq_getinteger(v, 2, &size); - } - if(size < 0) return sq_throwerror(v, _SC("cannot create blob with negative size")); - //SQBlob *b = new SQBlob(size); - - SQBlob *b = new (sq_malloc(sizeof(SQBlob)))SQBlob(size); - if(SQ_FAILED(sq_setinstanceup(v,1,b))) { - b->~SQBlob(); - sq_free(b,sizeof(SQBlob)); - return sq_throwerror(v, _SC("cannot create blob")); - } - sq_setreleasehook(v,1,_blob_releasehook); - return 0; -} - -static SQInteger _blob__cloned(HSQUIRRELVM v) -{ - SQBlob *other = NULL; - { - if(SQ_FAILED(sq_getinstanceup(v,2,(SQUserPointer*)&other,(SQUserPointer)SQSTD_BLOB_TYPE_TAG,SQFalse))) - return SQ_ERROR; - } - //SQBlob *thisone = new SQBlob(other->Len()); - SQBlob *thisone = new (sq_malloc(sizeof(SQBlob)))SQBlob(other->Len()); - memcpy(thisone->GetBuf(),other->GetBuf(),thisone->Len()); - if(SQ_FAILED(sq_setinstanceup(v,1,thisone))) { - thisone->~SQBlob(); - sq_free(thisone,sizeof(SQBlob)); - return sq_throwerror(v, _SC("cannot clone blob")); - } - sq_setreleasehook(v,1,_blob_releasehook); - return 0; -} - -#define _DECL_BLOB_FUNC(name,nparams,typecheck) {_SC(#name),_blob_##name,nparams,typecheck} -static const SQRegFunction _blob_methods[] = { - _DECL_BLOB_FUNC(constructor,-1,_SC("xn")), - _DECL_BLOB_FUNC(resize,2,_SC("xn")), - _DECL_BLOB_FUNC(swap2,1,_SC("x")), - _DECL_BLOB_FUNC(swap4,1,_SC("x")), - _DECL_BLOB_FUNC(_set,3,_SC("xnn")), - _DECL_BLOB_FUNC(_get,2,_SC("x.")), - _DECL_BLOB_FUNC(_typeof,1,_SC("x")), - _DECL_BLOB_FUNC(_nexti,2,_SC("x")), - _DECL_BLOB_FUNC(_cloned,2,_SC("xx")), - {NULL,(SQFUNCTION)0,0,NULL} -}; - - - -//GLOBAL FUNCTIONS - -static SQInteger _g_blob_casti2f(HSQUIRRELVM v) -{ - SQInteger i; - sq_getinteger(v,2,&i); - sq_pushfloat(v,*((const SQFloat *)&i)); - return 1; -} - -static SQInteger _g_blob_castf2i(HSQUIRRELVM v) -{ - SQFloat f; - sq_getfloat(v,2,&f); - sq_pushinteger(v,*((const SQInteger *)&f)); - return 1; -} - -static SQInteger _g_blob_swap2(HSQUIRRELVM v) -{ - SQInteger i; - sq_getinteger(v,2,&i); - unsigned short s = (unsigned short)i; - sq_pushinteger(v, ((s << 8) | ((s >> 8) & 0x00FFu)) & 0xFFFFu); - return 1; -} - -static SQInteger _g_blob_swap4(HSQUIRRELVM v) -{ - SQInteger i; - sq_getinteger(v,2,&i); - unsigned int t4 = (unsigned int)i; - __swap_dword(&t4); - sq_pushinteger(v,(SQInteger)t4); - return 1; -} - -static SQInteger _g_blob_swapfloat(HSQUIRRELVM v) -{ - SQFloat f; - sq_getfloat(v,2,&f); - __swap_dword((unsigned int *)&f); - sq_pushfloat(v,f); - return 1; -} - -#define _DECL_GLOBALBLOB_FUNC(name,nparams,typecheck) {_SC(#name),_g_blob_##name,nparams,typecheck} -static const SQRegFunction bloblib_funcs[]={ - _DECL_GLOBALBLOB_FUNC(casti2f,2,_SC(".n")), - _DECL_GLOBALBLOB_FUNC(castf2i,2,_SC(".n")), - _DECL_GLOBALBLOB_FUNC(swap2,2,_SC(".n")), - _DECL_GLOBALBLOB_FUNC(swap4,2,_SC(".n")), - _DECL_GLOBALBLOB_FUNC(swapfloat,2,_SC(".n")), - {NULL,(SQFUNCTION)0,0,NULL} -}; - -SQRESULT sqstd_getblob(HSQUIRRELVM v,SQInteger idx,SQUserPointer *ptr) -{ - SQBlob *blob; - if(SQ_FAILED(sq_getinstanceup(v,idx,(SQUserPointer *)&blob,(SQUserPointer)SQSTD_BLOB_TYPE_TAG,SQTrue))) - return -1; - *ptr = blob->GetBuf(); - return SQ_OK; -} - -SQInteger sqstd_getblobsize(HSQUIRRELVM v,SQInteger idx) -{ - SQBlob *blob; - if(SQ_FAILED(sq_getinstanceup(v,idx,(SQUserPointer *)&blob,(SQUserPointer)SQSTD_BLOB_TYPE_TAG,SQTrue))) - return -1; - return blob->Len(); -} - -SQUserPointer sqstd_createblob(HSQUIRRELVM v, SQInteger size) -{ - SQInteger top = sq_gettop(v); - sq_pushregistrytable(v); - sq_pushstring(v,_SC("std_blob"),-1); - if(SQ_SUCCEEDED(sq_get(v,-2))) { - sq_remove(v,-2); //removes the registry - sq_push(v,1); // push the this - sq_pushinteger(v,size); //size - SQBlob *blob = NULL; - if(SQ_SUCCEEDED(sq_call(v,2,SQTrue,SQFalse)) - && SQ_SUCCEEDED(sq_getinstanceup(v,-1,(SQUserPointer *)&blob,(SQUserPointer)SQSTD_BLOB_TYPE_TAG,SQTrue))) { - sq_remove(v,-2); - return blob->GetBuf(); - } - } - sq_settop(v,top); - return NULL; -} - -SQRESULT sqstd_register_bloblib(HSQUIRRELVM v) -{ - return declare_stream(v,_SC("blob"),(SQUserPointer)SQSTD_BLOB_TYPE_TAG,_SC("std_blob"),_blob_methods,bloblib_funcs); -} - diff --git a/m_packages/squirrel/sqstdlib/sqstdblobimpl.h b/m_packages/squirrel/sqstdlib/sqstdblobimpl.h deleted file mode 100644 index bfdaddc2..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdblobimpl.h +++ /dev/null @@ -1,108 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQSTD_BLOBIMPL_H_ -#define _SQSTD_BLOBIMPL_H_ - -struct SQBlob : public SQStream -{ - SQBlob(SQInteger size) { - _size = size; - _allocated = size; - _buf = (unsigned char *)sq_malloc(size); - memset(_buf, 0, _size); - _ptr = 0; - _owns = true; - } - virtual ~SQBlob() { - sq_free(_buf, _allocated); - } - SQInteger Write(void *buffer, SQInteger size) { - if(!CanAdvance(size)) { - GrowBufOf(_ptr + size - _size); - } - memcpy(&_buf[_ptr], buffer, size); - _ptr += size; - return size; - } - SQInteger Read(void *buffer,SQInteger size) { - SQInteger n = size; - if(!CanAdvance(size)) { - if((_size - _ptr) > 0) - n = _size - _ptr; - else return 0; - } - memcpy(buffer, &_buf[_ptr], n); - _ptr += n; - return n; - } - bool Resize(SQInteger n) { - if(!_owns) return false; - if(n != _allocated) { - unsigned char *newbuf = (unsigned char *)sq_malloc(n); - memset(newbuf,0,n); - if(_size > n) - memcpy(newbuf,_buf,n); - else - memcpy(newbuf,_buf,_size); - sq_free(_buf,_allocated); - _buf=newbuf; - _allocated = n; - if(_size > _allocated) - _size = _allocated; - if(_ptr > _allocated) - _ptr = _allocated; - } - return true; - } - bool GrowBufOf(SQInteger n) - { - bool ret = true; - if(_size + n > _allocated) { - if(_size + n > _size * 2) - ret = Resize(_size + n); - else - ret = Resize(_size * 2); - } - _size = _size + n; - return ret; - } - bool CanAdvance(SQInteger n) { - if(_ptr+n>_size)return false; - return true; - } - SQInteger Seek(SQInteger offset, SQInteger origin) { - switch(origin) { - case SQ_SEEK_SET: - if(offset > _size || offset < 0) return -1; - _ptr = offset; - break; - case SQ_SEEK_CUR: - if(_ptr + offset > _size || _ptr + offset < 0) return -1; - _ptr += offset; - break; - case SQ_SEEK_END: - if(_size + offset > _size || _size + offset < 0) return -1; - _ptr = _size + offset; - break; - default: return -1; - } - return 0; - } - bool IsValid() { - return _size == 0 || _buf?true:false; - } - bool EOS() { - return _ptr == _size; - } - SQInteger Flush() { return 0; } - SQInteger Tell() { return _ptr; } - SQInteger Len() { return _size; } - SQUserPointer GetBuf(){ return _buf; } -private: - SQInteger _size; - SQInteger _allocated; - SQInteger _ptr; - unsigned char *_buf; - bool _owns; -}; - -#endif //_SQSTD_BLOBIMPL_H_ diff --git a/m_packages/squirrel/sqstdlib/sqstdio.cpp b/m_packages/squirrel/sqstdlib/sqstdio.cpp deleted file mode 100644 index ec6ee07e..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdio.cpp +++ /dev/null @@ -1,489 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include "sqstdstream.h" - -#define SQSTD_FILE_TYPE_TAG ((SQUnsignedInteger)(SQSTD_STREAM_TYPE_TAG | 0x00000001)) -//basic API -SQFILE sqstd_fopen(const SQChar *filename ,const SQChar *mode) -{ -#ifndef SQUNICODE - return (SQFILE)fopen(filename,mode); -#else - return (SQFILE)_wfopen(filename,mode); -#endif -} - -SQInteger sqstd_fread(void* buffer, SQInteger size, SQInteger count, SQFILE file) -{ - SQInteger ret = (SQInteger)fread(buffer,size,count,(FILE *)file); - return ret; -} - -SQInteger sqstd_fwrite(const SQUserPointer buffer, SQInteger size, SQInteger count, SQFILE file) -{ - return (SQInteger)fwrite(buffer,size,count,(FILE *)file); -} - -SQInteger sqstd_fseek(SQFILE file, SQInteger offset, SQInteger origin) -{ - SQInteger realorigin; - switch(origin) { - case SQ_SEEK_CUR: realorigin = SEEK_CUR; break; - case SQ_SEEK_END: realorigin = SEEK_END; break; - case SQ_SEEK_SET: realorigin = SEEK_SET; break; - default: return -1; //failed - } - return fseek((FILE *)file,(long)offset,(int)realorigin); -} - -SQInteger sqstd_ftell(SQFILE file) -{ - return ftell((FILE *)file); -} - -SQInteger sqstd_fflush(SQFILE file) -{ - return fflush((FILE *)file); -} - -SQInteger sqstd_fclose(SQFILE file) -{ - return fclose((FILE *)file); -} - -SQInteger sqstd_feof(SQFILE file) -{ - return feof((FILE *)file); -} - -//File -struct SQFile : public SQStream { - SQFile() { _handle = NULL; _owns = false;} - SQFile(SQFILE file, bool owns) { _handle = file; _owns = owns;} - virtual ~SQFile() { Close(); } - bool Open(const SQChar *filename ,const SQChar *mode) { - Close(); - if( (_handle = sqstd_fopen(filename,mode)) ) { - _owns = true; - return true; - } - return false; - } - void Close() { - if(_handle && _owns) { - sqstd_fclose(_handle); - _handle = NULL; - _owns = false; - } - } - SQInteger Read(void *buffer,SQInteger size) { - return sqstd_fread(buffer,1,size,_handle); - } - SQInteger Write(void *buffer,SQInteger size) { - return sqstd_fwrite(buffer,1,size,_handle); - } - SQInteger Flush() { - return sqstd_fflush(_handle); - } - SQInteger Tell() { - return sqstd_ftell(_handle); - } - SQInteger Len() { - SQInteger prevpos=Tell(); - Seek(0,SQ_SEEK_END); - SQInteger size=Tell(); - Seek(prevpos,SQ_SEEK_SET); - return size; - } - SQInteger Seek(SQInteger offset, SQInteger origin) { - return sqstd_fseek(_handle,offset,origin); - } - bool IsValid() { return _handle?true:false; } - bool EOS() { return Tell()==Len()?true:false;} - SQFILE GetHandle() {return _handle;} -private: - SQFILE _handle; - bool _owns; -}; - -static SQInteger _file__typeof(HSQUIRRELVM v) -{ - sq_pushstring(v,_SC("file"),-1); - return 1; -} - -static SQInteger _file_releasehook(SQUserPointer p, SQInteger SQ_UNUSED_ARG(size)) -{ - SQFile *self = (SQFile*)p; - self->~SQFile(); - sq_free(self,sizeof(SQFile)); - return 1; -} - -static SQInteger _file_constructor(HSQUIRRELVM v) -{ - const SQChar *filename,*mode; - bool owns = true; - SQFile *f; - SQFILE newf; - if(sq_gettype(v,2) == OT_STRING && sq_gettype(v,3) == OT_STRING) { - sq_getstring(v, 2, &filename); - sq_getstring(v, 3, &mode); - newf = sqstd_fopen(filename, mode); - if(!newf) return sq_throwerror(v, _SC("cannot open file")); - } else if(sq_gettype(v,2) == OT_USERPOINTER) { - owns = !(sq_gettype(v,3) == OT_NULL); - sq_getuserpointer(v,2,&newf); - } else { - return sq_throwerror(v,_SC("wrong parameter")); - } - - f = new (sq_malloc(sizeof(SQFile)))SQFile(newf,owns); - if(SQ_FAILED(sq_setinstanceup(v,1,f))) { - f->~SQFile(); - sq_free(f,sizeof(SQFile)); - return sq_throwerror(v, _SC("cannot create blob with negative size")); - } - sq_setreleasehook(v,1,_file_releasehook); - return 0; -} - -static SQInteger _file_close(HSQUIRRELVM v) -{ - SQFile *self = NULL; - if(SQ_SUCCEEDED(sq_getinstanceup(v,1,(SQUserPointer*)&self,(SQUserPointer)SQSTD_FILE_TYPE_TAG, SQTrue)) - && self != NULL) - { - self->Close(); - } - return 0; -} - -//bindings -#define _DECL_FILE_FUNC(name,nparams,typecheck) {_SC(#name),_file_##name,nparams,typecheck} -static const SQRegFunction _file_methods[] = { - _DECL_FILE_FUNC(constructor,3,_SC("x")), - _DECL_FILE_FUNC(_typeof,1,_SC("x")), - _DECL_FILE_FUNC(close,1,_SC("x")), - {NULL,(SQFUNCTION)0,0,NULL} -}; - - - -SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file,SQBool own) -{ - SQInteger top = sq_gettop(v); - sq_pushregistrytable(v); - sq_pushstring(v,_SC("std_file"),-1); - if(SQ_SUCCEEDED(sq_get(v,-2))) { - sq_remove(v,-2); //removes the registry - sq_pushroottable(v); // push the this - sq_pushuserpointer(v,file); //file - if(own){ - sq_pushinteger(v,1); //true - } - else{ - sq_pushnull(v); //false - } - if(SQ_SUCCEEDED( sq_call(v,3,SQTrue,SQFalse) )) { - sq_remove(v,-2); - return SQ_OK; - } - } - sq_settop(v,top); - return SQ_ERROR; -} - -SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file) -{ - SQFile *fileobj = NULL; - if(SQ_SUCCEEDED(sq_getinstanceup(v,idx,(SQUserPointer*)&fileobj,(SQUserPointer)SQSTD_FILE_TYPE_TAG,SQFalse))) { - *file = fileobj->GetHandle(); - return SQ_OK; - } - return sq_throwerror(v,_SC("not a file")); -} - - - -#define IO_BUFFER_SIZE 2048 -struct IOBuffer { - unsigned char buffer[IO_BUFFER_SIZE]; - SQInteger size; - SQInteger ptr; - SQFILE file; -}; - -SQInteger _read_byte(IOBuffer *iobuffer) -{ - if(iobuffer->ptr < iobuffer->size) { - - SQInteger ret = iobuffer->buffer[iobuffer->ptr]; - iobuffer->ptr++; - return ret; - } - else { - if( (iobuffer->size = sqstd_fread(iobuffer->buffer,1,IO_BUFFER_SIZE,iobuffer->file )) > 0 ) - { - SQInteger ret = iobuffer->buffer[0]; - iobuffer->ptr = 1; - return ret; - } - } - - return 0; -} - -SQInteger _read_two_bytes(IOBuffer *iobuffer) -{ - if(iobuffer->ptr < iobuffer->size) { - if(iobuffer->size < 2) return 0; - SQInteger ret = *((const wchar_t*)&iobuffer->buffer[iobuffer->ptr]); - iobuffer->ptr += 2; - return ret; - } - else { - if( (iobuffer->size = sqstd_fread(iobuffer->buffer,1,IO_BUFFER_SIZE,iobuffer->file )) > 0 ) - { - if(iobuffer->size < 2) return 0; - SQInteger ret = *((const wchar_t*)&iobuffer->buffer[0]); - iobuffer->ptr = 2; - return ret; - } - } - - return 0; -} - -static SQInteger _io_file_lexfeed_PLAIN(SQUserPointer iobuf) -{ - IOBuffer *iobuffer = (IOBuffer *)iobuf; - return _read_byte(iobuffer); - -} - -#ifdef SQUNICODE -static SQInteger _io_file_lexfeed_UTF8(SQUserPointer iobuf) -{ - IOBuffer *iobuffer = (IOBuffer *)iobuf; -#define READ(iobuf) \ - if((inchar = (unsigned char)_read_byte(iobuf)) == 0) \ - return 0; - - static const SQInteger utf8_lengths[16] = - { - 1,1,1,1,1,1,1,1, /* 0000 to 0111 : 1 byte (plain ASCII) */ - 0,0,0,0, /* 1000 to 1011 : not valid */ - 2,2, /* 1100, 1101 : 2 bytes */ - 3, /* 1110 : 3 bytes */ - 4 /* 1111 :4 bytes */ - }; - static const unsigned char byte_masks[5] = {0,0,0x1f,0x0f,0x07}; - unsigned char inchar; - SQInteger c = 0; - READ(iobuffer); - c = inchar; - // - if(c >= 0x80) { - SQInteger tmp; - SQInteger codelen = utf8_lengths[c>>4]; - if(codelen == 0) - return 0; - //"invalid UTF-8 stream"; - tmp = c&byte_masks[codelen]; - for(SQInteger n = 0; n < codelen-1; n++) { - tmp<<=6; - READ(iobuffer); - tmp |= inchar & 0x3F; - } - c = tmp; - } - return c; -} -#endif - -static SQInteger _io_file_lexfeed_UCS2_LE(SQUserPointer iobuf) -{ - SQInteger ret; - IOBuffer *iobuffer = (IOBuffer *)iobuf; - if( (ret = _read_two_bytes(iobuffer)) > 0 ) - return ret; - return 0; -} - -static SQInteger _io_file_lexfeed_UCS2_BE(SQUserPointer iobuf) -{ - SQInteger c; - IOBuffer *iobuffer = (IOBuffer *)iobuf; - if( (c = _read_two_bytes(iobuffer)) > 0 ) { - c = ((c>>8)&0x00FF)| ((c<<8)&0xFF00); - return c; - } - return 0; -} - -SQInteger file_read(SQUserPointer file,SQUserPointer buf,SQInteger size) -{ - SQInteger ret; - if( ( ret = sqstd_fread(buf,1,size,(SQFILE)file ))!=0 )return ret; - return -1; -} - -SQInteger file_write(SQUserPointer file,SQUserPointer p,SQInteger size) -{ - return sqstd_fwrite(p,1,size,(SQFILE)file); -} - -SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror) -{ - SQFILE file = sqstd_fopen(filename,_SC("rb")); - - SQInteger ret; - unsigned short us; - unsigned char uc; - SQLEXREADFUNC func = _io_file_lexfeed_PLAIN; - if(file){ - ret = sqstd_fread(&us,1,2,file); - if(ret != 2) { - //probably an empty file - us = 0; - } - if(us == SQ_BYTECODE_STREAM_TAG) { //BYTECODE - sqstd_fseek(file,0,SQ_SEEK_SET); - if(SQ_SUCCEEDED(sq_readclosure(v,file_read,file))) { - sqstd_fclose(file); - return SQ_OK; - } - } - else { //SCRIPT - - switch(us) - { - //gotta swap the next 2 lines on BIG endian machines - case 0xFFFE: func = _io_file_lexfeed_UCS2_BE; break;//UTF-16 little endian; - case 0xFEFF: func = _io_file_lexfeed_UCS2_LE; break;//UTF-16 big endian; - case 0xBBEF: - if(sqstd_fread(&uc,1,sizeof(uc),file) == 0) { - sqstd_fclose(file); - return sq_throwerror(v,_SC("io error")); - } - if(uc != 0xBF) { - sqstd_fclose(file); - return sq_throwerror(v,_SC("Unrecognized encoding")); - } -#ifdef SQUNICODE - func = _io_file_lexfeed_UTF8; -#else - func = _io_file_lexfeed_PLAIN; -#endif - break;//UTF-8 ; - default: sqstd_fseek(file,0,SQ_SEEK_SET); break; // ascii - } - IOBuffer buffer; - buffer.ptr = 0; - buffer.size = 0; - buffer.file = file; - if(SQ_SUCCEEDED(sq_compile(v,func,&buffer,filename,printerror))){ - sqstd_fclose(file); - return SQ_OK; - } - } - sqstd_fclose(file); - return SQ_ERROR; - } - return sq_throwerror(v,_SC("cannot open the file")); -} - -SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror) -{ - //at least one entry must exist in order for us to push it as the environment - if(sq_gettop(v) == 0) - return sq_throwerror(v,_SC("environment table expected")); - - if(SQ_SUCCEEDED(sqstd_loadfile(v,filename,printerror))) { - sq_push(v,-2); - if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue))) { - sq_remove(v,retval?-2:-1); //removes the closure - return 1; - } - sq_pop(v,1); //removes the closure - } - return SQ_ERROR; -} - -SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v,const SQChar *filename) -{ - SQFILE file = sqstd_fopen(filename,_SC("wb+")); - if(!file) return sq_throwerror(v,_SC("cannot open the file")); - if(SQ_SUCCEEDED(sq_writeclosure(v,file_write,file))) { - sqstd_fclose(file); - return SQ_OK; - } - sqstd_fclose(file); - return SQ_ERROR; //forward the error -} - -SQInteger _g_io_loadfile(HSQUIRRELVM v) -{ - const SQChar *filename; - SQBool printerror = SQFalse; - sq_getstring(v,2,&filename); - if(sq_gettop(v) >= 3) { - sq_getbool(v,3,&printerror); - } - if(SQ_SUCCEEDED(sqstd_loadfile(v,filename,printerror))) - return 1; - return SQ_ERROR; //propagates the error -} - -SQInteger _g_io_writeclosuretofile(HSQUIRRELVM v) -{ - const SQChar *filename; - sq_getstring(v,2,&filename); - if(SQ_SUCCEEDED(sqstd_writeclosuretofile(v,filename))) - return 1; - return SQ_ERROR; //propagates the error -} - -SQInteger _g_io_dofile(HSQUIRRELVM v) -{ - const SQChar *filename; - SQBool printerror = SQFalse; - sq_getstring(v,2,&filename); - if(sq_gettop(v) >= 3) { - sq_getbool(v,3,&printerror); - } - sq_push(v,1); //repush the this - if(SQ_SUCCEEDED(sqstd_dofile(v,filename,SQTrue,printerror))) - return 1; - return SQ_ERROR; //propagates the error -} - -#define _DECL_GLOBALIO_FUNC(name,nparams,typecheck) {_SC(#name),_g_io_##name,nparams,typecheck} -static const SQRegFunction iolib_funcs[]={ - _DECL_GLOBALIO_FUNC(loadfile,-2,_SC(".sb")), - _DECL_GLOBALIO_FUNC(dofile,-2,_SC(".sb")), - _DECL_GLOBALIO_FUNC(writeclosuretofile,3,_SC(".sc")), - {NULL,(SQFUNCTION)0,0,NULL} -}; - -SQRESULT sqstd_register_iolib(HSQUIRRELVM v) -{ - SQInteger top = sq_gettop(v); - //create delegate - declare_stream(v,_SC("file"),(SQUserPointer)SQSTD_FILE_TYPE_TAG,_SC("std_file"),_file_methods,iolib_funcs); - sq_pushstring(v,_SC("stdout"),-1); - sqstd_createfile(v,stdout,SQFalse); - sq_newslot(v,-3,SQFalse); - sq_pushstring(v,_SC("stdin"),-1); - sqstd_createfile(v,stdin,SQFalse); - sq_newslot(v,-3,SQFalse); - sq_pushstring(v,_SC("stderr"),-1); - sqstd_createfile(v,stderr,SQFalse); - sq_newslot(v,-3,SQFalse); - sq_settop(v,top); - return SQ_OK; -} diff --git a/m_packages/squirrel/sqstdlib/sqstdlib.dsp b/m_packages/squirrel/sqstdlib/sqstdlib.dsp deleted file mode 100644 index ef5b7f48..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdlib.dsp +++ /dev/null @@ -1,131 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sqstdlib" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=sqstdlib - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "sqstdlib.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "sqstdlib.mak" CFG="sqstdlib - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "sqstdlib - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "sqstdlib - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_LocalPath ".." -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sqstdlib - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x410 /d "NDEBUG" -# ADD RSC /l 0x410 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib" - -!ELSEIF "$(CFG)" == "sqstdlib - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x410 /d "_DEBUG" -# ADD RSC /l 0x410 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib" - -!ENDIF - -# Begin Target - -# Name "sqstdlib - Win32 Release" -# Name "sqstdlib - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\sqstdblob.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdio.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdmath.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdrex.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdstream.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdstring.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdaux.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqstdsystem.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\sqstdblobimpl.h -# End Source File -# Begin Source File - -SOURCE=.\sqstdstream.h -# End Source File -# End Group -# End Target -# End Project diff --git a/m_packages/squirrel/sqstdlib/sqstdmath.cpp b/m_packages/squirrel/sqstdlib/sqstdmath.cpp deleted file mode 100644 index c41ffd5e..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdmath.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include - -#define SINGLE_ARG_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \ - SQFloat f; \ - sq_getfloat(v,2,&f); \ - sq_pushfloat(v,(SQFloat)_funcname(f)); \ - return 1; \ -} - -#define TWO_ARGS_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \ - SQFloat p1,p2; \ - sq_getfloat(v,2,&p1); \ - sq_getfloat(v,3,&p2); \ - sq_pushfloat(v,(SQFloat)_funcname(p1,p2)); \ - return 1; \ -} - -static SQInteger math_srand(HSQUIRRELVM v) -{ - SQInteger i; - if(SQ_FAILED(sq_getinteger(v,2,&i))) - return sq_throwerror(v,_SC("invalid param")); - srand((unsigned int)i); - return 0; -} - -static SQInteger math_rand(HSQUIRRELVM v) -{ - sq_pushinteger(v,rand()); - return 1; -} - -static SQInteger math_abs(HSQUIRRELVM v) -{ - SQInteger n; - sq_getinteger(v,2,&n); - sq_pushinteger(v,(SQInteger)abs((int)n)); - return 1; -} - -SINGLE_ARG_FUNC(sqrt) -SINGLE_ARG_FUNC(fabs) -SINGLE_ARG_FUNC(sin) -SINGLE_ARG_FUNC(cos) -SINGLE_ARG_FUNC(asin) -SINGLE_ARG_FUNC(acos) -SINGLE_ARG_FUNC(log) -SINGLE_ARG_FUNC(log10) -SINGLE_ARG_FUNC(tan) -SINGLE_ARG_FUNC(atan) -TWO_ARGS_FUNC(atan2) -TWO_ARGS_FUNC(pow) -SINGLE_ARG_FUNC(floor) -SINGLE_ARG_FUNC(ceil) -SINGLE_ARG_FUNC(exp) - -#define _DECL_FUNC(name,nparams,tycheck) {_SC(#name),math_##name,nparams,tycheck} -static const SQRegFunction mathlib_funcs[] = { - _DECL_FUNC(sqrt,2,_SC(".n")), - _DECL_FUNC(sin,2,_SC(".n")), - _DECL_FUNC(cos,2,_SC(".n")), - _DECL_FUNC(asin,2,_SC(".n")), - _DECL_FUNC(acos,2,_SC(".n")), - _DECL_FUNC(log,2,_SC(".n")), - _DECL_FUNC(log10,2,_SC(".n")), - _DECL_FUNC(tan,2,_SC(".n")), - _DECL_FUNC(atan,2,_SC(".n")), - _DECL_FUNC(atan2,3,_SC(".nn")), - _DECL_FUNC(pow,3,_SC(".nn")), - _DECL_FUNC(floor,2,_SC(".n")), - _DECL_FUNC(ceil,2,_SC(".n")), - _DECL_FUNC(exp,2,_SC(".n")), - _DECL_FUNC(srand,2,_SC(".n")), - _DECL_FUNC(rand,1,NULL), - _DECL_FUNC(fabs,2,_SC(".n")), - _DECL_FUNC(abs,2,_SC(".n")), - {NULL,(SQFUNCTION)0,0,NULL} -}; -#undef _DECL_FUNC - -#ifndef M_PI -#define M_PI (3.14159265358979323846) -#endif - -SQRESULT sqstd_register_mathlib(HSQUIRRELVM v) -{ - SQInteger i=0; - while(mathlib_funcs[i].name!=0) { - sq_pushstring(v,mathlib_funcs[i].name,-1); - sq_newclosure(v,mathlib_funcs[i].f,0); - sq_setparamscheck(v,mathlib_funcs[i].nparamscheck,mathlib_funcs[i].typemask); - sq_setnativeclosurename(v,-1,mathlib_funcs[i].name); - sq_newslot(v,-3,SQFalse); - i++; - } - sq_pushstring(v,_SC("RAND_MAX"),-1); - sq_pushinteger(v,RAND_MAX); - sq_newslot(v,-3,SQFalse); - sq_pushstring(v,_SC("PI"),-1); - sq_pushfloat(v,(SQFloat)M_PI); - sq_newslot(v,-3,SQFalse); - return SQ_OK; -} diff --git a/m_packages/squirrel/sqstdlib/sqstdrex.cpp b/m_packages/squirrel/sqstdlib/sqstdrex.cpp deleted file mode 100644 index d0583a6b..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdrex.cpp +++ /dev/null @@ -1,666 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include - -#ifdef _DEBUG -#include - -static const SQChar *g_nnames[] = -{ - _SC("NONE"),_SC("OP_GREEDY"), _SC("OP_OR"), - _SC("OP_EXPR"),_SC("OP_NOCAPEXPR"),_SC("OP_DOT"), _SC("OP_CLASS"), - _SC("OP_CCLASS"),_SC("OP_NCLASS"),_SC("OP_RANGE"),_SC("OP_CHAR"), - _SC("OP_EOL"),_SC("OP_BOL"),_SC("OP_WB"),_SC("OP_MB") -}; - -#endif - -#define OP_GREEDY (MAX_CHAR+1) // * + ? {n} -#define OP_OR (MAX_CHAR+2) -#define OP_EXPR (MAX_CHAR+3) //parentesis () -#define OP_NOCAPEXPR (MAX_CHAR+4) //parentesis (?:) -#define OP_DOT (MAX_CHAR+5) -#define OP_CLASS (MAX_CHAR+6) -#define OP_CCLASS (MAX_CHAR+7) -#define OP_NCLASS (MAX_CHAR+8) //negates class the [^ -#define OP_RANGE (MAX_CHAR+9) -#define OP_CHAR (MAX_CHAR+10) -#define OP_EOL (MAX_CHAR+11) -#define OP_BOL (MAX_CHAR+12) -#define OP_WB (MAX_CHAR+13) -#define OP_MB (MAX_CHAR+14) //match balanced - -#define SQREX_SYMBOL_ANY_CHAR ('.') -#define SQREX_SYMBOL_GREEDY_ONE_OR_MORE ('+') -#define SQREX_SYMBOL_GREEDY_ZERO_OR_MORE ('*') -#define SQREX_SYMBOL_GREEDY_ZERO_OR_ONE ('?') -#define SQREX_SYMBOL_BRANCH ('|') -#define SQREX_SYMBOL_END_OF_STRING ('$') -#define SQREX_SYMBOL_BEGINNING_OF_STRING ('^') -#define SQREX_SYMBOL_ESCAPE_CHAR ('\\') - - -typedef int SQRexNodeType; - -typedef struct tagSQRexNode{ - SQRexNodeType type; - SQInteger left; - SQInteger right; - SQInteger next; -}SQRexNode; - -struct SQRex{ - const SQChar *_eol; - const SQChar *_bol; - const SQChar *_p; - SQInteger _first; - SQInteger _op; - SQRexNode *_nodes; - SQInteger _nallocated; - SQInteger _nsize; - SQInteger _nsubexpr; - SQRexMatch *_matches; - SQInteger _currsubexp; - void *_jmpbuf; - const SQChar **_error; -}; - -static SQInteger sqstd_rex_list(SQRex *exp); - -static SQInteger sqstd_rex_newnode(SQRex *exp, SQRexNodeType type) -{ - SQRexNode n; - n.type = type; - n.next = n.right = n.left = -1; - if(type == OP_EXPR) - n.right = exp->_nsubexpr++; - if(exp->_nallocated < (exp->_nsize + 1)) { - SQInteger oldsize = exp->_nallocated; - exp->_nallocated *= 2; - exp->_nodes = (SQRexNode *)sq_realloc(exp->_nodes, oldsize * sizeof(SQRexNode) ,exp->_nallocated * sizeof(SQRexNode)); - } - exp->_nodes[exp->_nsize++] = n; - SQInteger newid = exp->_nsize - 1; - return (SQInteger)newid; -} - -static void sqstd_rex_error(SQRex *exp,const SQChar *error) -{ - if(exp->_error) *exp->_error = error; - longjmp(*((jmp_buf*)exp->_jmpbuf),-1); -} - -static void sqstd_rex_expect(SQRex *exp, SQInteger n){ - if((*exp->_p) != n) - sqstd_rex_error(exp, _SC("expected paren")); - exp->_p++; -} - -static SQChar sqstd_rex_escapechar(SQRex *exp) -{ - if(*exp->_p == SQREX_SYMBOL_ESCAPE_CHAR){ - exp->_p++; - switch(*exp->_p) { - case 'v': exp->_p++; return '\v'; - case 'n': exp->_p++; return '\n'; - case 't': exp->_p++; return '\t'; - case 'r': exp->_p++; return '\r'; - case 'f': exp->_p++; return '\f'; - default: return (*exp->_p++); - } - } else if(!scisprint(*exp->_p)) sqstd_rex_error(exp,_SC("letter expected")); - return (*exp->_p++); -} - -static SQInteger sqstd_rex_charclass(SQRex *exp,SQInteger classid) -{ - SQInteger n = sqstd_rex_newnode(exp,OP_CCLASS); - exp->_nodes[n].left = classid; - return n; -} - -static SQInteger sqstd_rex_charnode(SQRex *exp,SQBool isclass) -{ - SQChar t; - if(*exp->_p == SQREX_SYMBOL_ESCAPE_CHAR) { - exp->_p++; - switch(*exp->_p) { - case 'n': exp->_p++; return sqstd_rex_newnode(exp,'\n'); - case 't': exp->_p++; return sqstd_rex_newnode(exp,'\t'); - case 'r': exp->_p++; return sqstd_rex_newnode(exp,'\r'); - case 'f': exp->_p++; return sqstd_rex_newnode(exp,'\f'); - case 'v': exp->_p++; return sqstd_rex_newnode(exp,'\v'); - case 'a': case 'A': case 'w': case 'W': case 's': case 'S': - case 'd': case 'D': case 'x': case 'X': case 'c': case 'C': - case 'p': case 'P': case 'l': case 'u': - { - t = *exp->_p; exp->_p++; - return sqstd_rex_charclass(exp,t); - } - case 'm': - { - SQChar cb, ce; //cb = character begin match ce = character end match - cb = *++exp->_p; //skip 'm' - ce = *++exp->_p; - exp->_p++; //points to the next char to be parsed - if ((!cb) || (!ce)) sqstd_rex_error(exp,_SC("balanced chars expected")); - if ( cb == ce ) sqstd_rex_error(exp,_SC("open/close char can't be the same")); - SQInteger node = sqstd_rex_newnode(exp,OP_MB); - exp->_nodes[node].left = cb; - exp->_nodes[node].right = ce; - return node; - } - case 0: - sqstd_rex_error(exp,_SC("letter expected for argument of escape sequence")); - break; - case 'b': - case 'B': - if(!isclass) { - SQInteger node = sqstd_rex_newnode(exp,OP_WB); - exp->_nodes[node].left = *exp->_p; - exp->_p++; - return node; - } //else default - default: - t = *exp->_p; exp->_p++; - return sqstd_rex_newnode(exp,t); - } - } - else if(!scisprint(*exp->_p)) { - - sqstd_rex_error(exp,_SC("letter expected")); - } - t = *exp->_p; exp->_p++; - return sqstd_rex_newnode(exp,t); -} -static SQInteger sqstd_rex_class(SQRex *exp) -{ - SQInteger ret = -1; - SQInteger first = -1,chain; - if(*exp->_p == SQREX_SYMBOL_BEGINNING_OF_STRING){ - ret = sqstd_rex_newnode(exp,OP_NCLASS); - exp->_p++; - }else ret = sqstd_rex_newnode(exp,OP_CLASS); - - if(*exp->_p == ']') sqstd_rex_error(exp,_SC("empty class")); - chain = ret; - while(*exp->_p != ']' && exp->_p != exp->_eol) { - if(*exp->_p == '-' && first != -1){ - SQInteger r; - if(*exp->_p++ == ']') sqstd_rex_error(exp,_SC("unfinished range")); - r = sqstd_rex_newnode(exp,OP_RANGE); - if(exp->_nodes[first].type>*exp->_p) sqstd_rex_error(exp,_SC("invalid range")); - if(exp->_nodes[first].type == OP_CCLASS) sqstd_rex_error(exp,_SC("cannot use character classes in ranges")); - exp->_nodes[r].left = exp->_nodes[first].type; - SQInteger t = sqstd_rex_escapechar(exp); - exp->_nodes[r].right = t; - exp->_nodes[chain].next = r; - chain = r; - first = -1; - } - else{ - if(first!=-1){ - SQInteger c = first; - exp->_nodes[chain].next = c; - chain = c; - first = sqstd_rex_charnode(exp,SQTrue); - } - else{ - first = sqstd_rex_charnode(exp,SQTrue); - } - } - } - if(first!=-1){ - SQInteger c = first; - exp->_nodes[chain].next = c; - } - /* hack? */ - exp->_nodes[ret].left = exp->_nodes[ret].next; - exp->_nodes[ret].next = -1; - return ret; -} - -static SQInteger sqstd_rex_parsenumber(SQRex *exp) -{ - SQInteger ret = *exp->_p-'0'; - SQInteger positions = 10; - exp->_p++; - while(isdigit(*exp->_p)) { - ret = ret*10+(*exp->_p++-'0'); - if(positions==1000000000) sqstd_rex_error(exp,_SC("overflow in numeric constant")); - positions *= 10; - }; - return ret; -} - -static SQInteger sqstd_rex_element(SQRex *exp) -{ - SQInteger ret = -1; - switch(*exp->_p) - { - case '(': { - SQInteger expr; - exp->_p++; - - - if(*exp->_p =='?') { - exp->_p++; - sqstd_rex_expect(exp,':'); - expr = sqstd_rex_newnode(exp,OP_NOCAPEXPR); - } - else - expr = sqstd_rex_newnode(exp,OP_EXPR); - SQInteger newn = sqstd_rex_list(exp); - exp->_nodes[expr].left = newn; - ret = expr; - sqstd_rex_expect(exp,')'); - } - break; - case '[': - exp->_p++; - ret = sqstd_rex_class(exp); - sqstd_rex_expect(exp,']'); - break; - case SQREX_SYMBOL_END_OF_STRING: exp->_p++; ret = sqstd_rex_newnode(exp,OP_EOL);break; - case SQREX_SYMBOL_ANY_CHAR: exp->_p++; ret = sqstd_rex_newnode(exp,OP_DOT);break; - default: - ret = sqstd_rex_charnode(exp,SQFalse); - break; - } - - - SQBool isgreedy = SQFalse; - unsigned short p0 = 0, p1 = 0; - switch(*exp->_p){ - case SQREX_SYMBOL_GREEDY_ZERO_OR_MORE: p0 = 0; p1 = 0xFFFF; exp->_p++; isgreedy = SQTrue; break; - case SQREX_SYMBOL_GREEDY_ONE_OR_MORE: p0 = 1; p1 = 0xFFFF; exp->_p++; isgreedy = SQTrue; break; - case SQREX_SYMBOL_GREEDY_ZERO_OR_ONE: p0 = 0; p1 = 1; exp->_p++; isgreedy = SQTrue; break; - case '{': - exp->_p++; - if(!isdigit(*exp->_p)) sqstd_rex_error(exp,_SC("number expected")); - p0 = (unsigned short)sqstd_rex_parsenumber(exp); - /*******************************/ - switch(*exp->_p) { - case '}': - p1 = p0; exp->_p++; - break; - case ',': - exp->_p++; - p1 = 0xFFFF; - if(isdigit(*exp->_p)){ - p1 = (unsigned short)sqstd_rex_parsenumber(exp); - } - sqstd_rex_expect(exp,'}'); - break; - default: - sqstd_rex_error(exp,_SC(", or } expected")); - } - /*******************************/ - isgreedy = SQTrue; - break; - - } - if(isgreedy) { - SQInteger nnode = sqstd_rex_newnode(exp,OP_GREEDY); - exp->_nodes[nnode].left = ret; - exp->_nodes[nnode].right = ((p0)<<16)|p1; - ret = nnode; - } - - if((*exp->_p != SQREX_SYMBOL_BRANCH) && (*exp->_p != ')') && (*exp->_p != SQREX_SYMBOL_GREEDY_ZERO_OR_MORE) && (*exp->_p != SQREX_SYMBOL_GREEDY_ONE_OR_MORE) && (*exp->_p != '\0')) { - SQInteger nnode = sqstd_rex_element(exp); - exp->_nodes[ret].next = nnode; - } - - return ret; -} - -static SQInteger sqstd_rex_list(SQRex *exp) -{ - SQInteger ret=-1,e; - if(*exp->_p == SQREX_SYMBOL_BEGINNING_OF_STRING) { - exp->_p++; - ret = sqstd_rex_newnode(exp,OP_BOL); - } - e = sqstd_rex_element(exp); - if(ret != -1) { - exp->_nodes[ret].next = e; - } - else ret = e; - - if(*exp->_p == SQREX_SYMBOL_BRANCH) { - SQInteger temp,tright; - exp->_p++; - temp = sqstd_rex_newnode(exp,OP_OR); - exp->_nodes[temp].left = ret; - tright = sqstd_rex_list(exp); - exp->_nodes[temp].right = tright; - ret = temp; - } - return ret; -} - -static SQBool sqstd_rex_matchcclass(SQInteger cclass,SQChar c) -{ - switch(cclass) { - case 'a': return isalpha(c)?SQTrue:SQFalse; - case 'A': return !isalpha(c)?SQTrue:SQFalse; - case 'w': return (isalnum(c) || c == '_')?SQTrue:SQFalse; - case 'W': return (!isalnum(c) && c != '_')?SQTrue:SQFalse; - case 's': return isspace(c)?SQTrue:SQFalse; - case 'S': return !isspace(c)?SQTrue:SQFalse; - case 'd': return isdigit(c)?SQTrue:SQFalse; - case 'D': return !isdigit(c)?SQTrue:SQFalse; - case 'x': return isxdigit(c)?SQTrue:SQFalse; - case 'X': return !isxdigit(c)?SQTrue:SQFalse; - case 'c': return iscntrl(c)?SQTrue:SQFalse; - case 'C': return !iscntrl(c)?SQTrue:SQFalse; - case 'p': return ispunct(c)?SQTrue:SQFalse; - case 'P': return !ispunct(c)?SQTrue:SQFalse; - case 'l': return islower(c)?SQTrue:SQFalse; - case 'u': return isupper(c)?SQTrue:SQFalse; - } - return SQFalse; /*cannot happen*/ -} - -static SQBool sqstd_rex_matchclass(SQRex* exp,SQRexNode *node,SQChar c) -{ - do { - switch(node->type) { - case OP_RANGE: - if(c >= node->left && c <= node->right) return SQTrue; - break; - case OP_CCLASS: - if(sqstd_rex_matchcclass(node->left,c)) return SQTrue; - break; - default: - if(c == node->type)return SQTrue; - } - } while((node->next != -1) && (node = &exp->_nodes[node->next])); - return SQFalse; -} - -static const SQChar *sqstd_rex_matchnode(SQRex* exp,SQRexNode *node,const SQChar *str,SQRexNode *next) -{ - - SQRexNodeType type = node->type; - switch(type) { - case OP_GREEDY: { - //SQRexNode *greedystop = (node->next != -1) ? &exp->_nodes[node->next] : NULL; - SQRexNode *greedystop = NULL; - SQInteger p0 = (node->right >> 16)&0x0000FFFF, p1 = node->right&0x0000FFFF, nmaches = 0; - const SQChar *s=str, *good = str; - - if(node->next != -1) { - greedystop = &exp->_nodes[node->next]; - } - else { - greedystop = next; - } - - while((nmaches == 0xFFFF || nmaches < p1)) { - - const SQChar *stop; - if(!(s = sqstd_rex_matchnode(exp,&exp->_nodes[node->left],s,greedystop))) - break; - nmaches++; - good=s; - if(greedystop) { - //checks that 0 matches satisfy the expression(if so skips) - //if not would always stop(for instance if is a '?') - if(greedystop->type != OP_GREEDY || - (greedystop->type == OP_GREEDY && ((greedystop->right >> 16)&0x0000FFFF) != 0)) - { - SQRexNode *gnext = NULL; - if(greedystop->next != -1) { - gnext = &exp->_nodes[greedystop->next]; - }else if(next && next->next != -1){ - gnext = &exp->_nodes[next->next]; - } - stop = sqstd_rex_matchnode(exp,greedystop,s,gnext); - if(stop) { - //if satisfied stop it - if(p0 == p1 && p0 == nmaches) break; - else if(nmaches >= p0 && p1 == 0xFFFF) break; - else if(nmaches >= p0 && nmaches <= p1) break; - } - } - } - - if(s >= exp->_eol) - break; - } - if(p0 == p1 && p0 == nmaches) return good; - else if(nmaches >= p0 && p1 == 0xFFFF) return good; - else if(nmaches >= p0 && nmaches <= p1) return good; - return NULL; - } - case OP_OR: { - const SQChar *asd = str; - SQRexNode *temp=&exp->_nodes[node->left]; - while( (asd = sqstd_rex_matchnode(exp,temp,asd,NULL)) ) { - if(temp->next != -1) - temp = &exp->_nodes[temp->next]; - else - return asd; - } - asd = str; - temp = &exp->_nodes[node->right]; - while( (asd = sqstd_rex_matchnode(exp,temp,asd,NULL)) ) { - if(temp->next != -1) - temp = &exp->_nodes[temp->next]; - else - return asd; - } - return NULL; - break; - } - case OP_EXPR: - case OP_NOCAPEXPR:{ - SQRexNode *n = &exp->_nodes[node->left]; - const SQChar *cur = str; - SQInteger capture = -1; - if(node->type != OP_NOCAPEXPR && node->right == exp->_currsubexp) { - capture = exp->_currsubexp; - exp->_matches[capture].begin = cur; - exp->_currsubexp++; - } - SQInteger tempcap = exp->_currsubexp; - do { - SQRexNode *subnext = NULL; - if(n->next != -1) { - subnext = &exp->_nodes[n->next]; - }else { - subnext = next; - } - if(!(cur = sqstd_rex_matchnode(exp,n,cur,subnext))) { - if(capture != -1){ - exp->_matches[capture].begin = 0; - exp->_matches[capture].len = 0; - } - return NULL; - } - } while((n->next != -1) && (n = &exp->_nodes[n->next])); - - exp->_currsubexp = tempcap; - if(capture != -1) - exp->_matches[capture].len = cur - exp->_matches[capture].begin; - return cur; - } - case OP_WB: - if((str == exp->_bol && !isspace(*str)) - || (str == exp->_eol && !isspace(*(str-1))) - || (!isspace(*str) && isspace(*(str+1))) - || (isspace(*str) && !isspace(*(str+1))) ) { - return (node->left == 'b')?str:NULL; - } - return (node->left == 'b')?NULL:str; - case OP_BOL: - if(str == exp->_bol) return str; - return NULL; - case OP_EOL: - if(str == exp->_eol) return str; - return NULL; - case OP_DOT:{ - if (str == exp->_eol) return NULL; - str++; - } - return str; - case OP_NCLASS: - case OP_CLASS: - if (str == exp->_eol) return NULL; - if(sqstd_rex_matchclass(exp,&exp->_nodes[node->left],*str)?(type == OP_CLASS?SQTrue:SQFalse):(type == OP_NCLASS?SQTrue:SQFalse)) { - str++; - return str; - } - return NULL; - case OP_CCLASS: - if (str == exp->_eol) return NULL; - if(sqstd_rex_matchcclass(node->left,*str)) { - str++; - return str; - } - return NULL; - case OP_MB: - { - SQInteger cb = node->left; //char that opens a balanced expression - if(*str != cb) return NULL; // string doesnt start with open char - SQInteger ce = node->right; //char that closes a balanced expression - SQInteger cont = 1; - const SQChar *streol = exp->_eol; - while (++str < streol) { - if (*str == ce) { - if (--cont == 0) { - return ++str; - } - } - else if (*str == cb) cont++; - } - } - return NULL; // string ends out of balance - default: /* char */ - if (str == exp->_eol) return NULL; - if(*str != node->type) return NULL; - str++; - return str; - } - return NULL; -} - -/* public api */ -SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error) -{ - SQRex * volatile exp = (SQRex *)sq_malloc(sizeof(SQRex)); // "volatile" is needed for setjmp() - exp->_eol = exp->_bol = NULL; - exp->_p = pattern; - exp->_nallocated = (SQInteger)scstrlen(pattern) * sizeof(SQChar); - exp->_nodes = (SQRexNode *)sq_malloc(exp->_nallocated * sizeof(SQRexNode)); - exp->_nsize = 0; - exp->_matches = 0; - exp->_nsubexpr = 0; - exp->_first = sqstd_rex_newnode(exp,OP_EXPR); - exp->_error = error; - exp->_jmpbuf = sq_malloc(sizeof(jmp_buf)); - if(setjmp(*((jmp_buf*)exp->_jmpbuf)) == 0) { - SQInteger res = sqstd_rex_list(exp); - exp->_nodes[exp->_first].left = res; - if(*exp->_p!='\0') - sqstd_rex_error(exp,_SC("unexpected character")); -#ifdef _DEBUG - { - SQInteger nsize,i; - SQRexNode *t; - nsize = exp->_nsize; - t = &exp->_nodes[0]; - scprintf(_SC("\n")); - for(i = 0;i < nsize; i++) { - if(exp->_nodes[i].type>MAX_CHAR) - scprintf(_SC("[%02d] %10s "), (SQInt32)i,g_nnames[exp->_nodes[i].type-MAX_CHAR]); - else - scprintf(_SC("[%02d] %10c "), (SQInt32)i,exp->_nodes[i].type); - scprintf(_SC("left %02d right %02d next %02d\n"), (SQInt32)exp->_nodes[i].left, (SQInt32)exp->_nodes[i].right, (SQInt32)exp->_nodes[i].next); - } - scprintf(_SC("\n")); - } -#endif - exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch)); - memset(exp->_matches,0,exp->_nsubexpr * sizeof(SQRexMatch)); - } - else{ - sqstd_rex_free(exp); - return NULL; - } - return exp; -} - -void sqstd_rex_free(SQRex *exp) -{ - if(exp) { - if(exp->_nodes) sq_free(exp->_nodes,exp->_nallocated * sizeof(SQRexNode)); - if(exp->_jmpbuf) sq_free(exp->_jmpbuf,sizeof(jmp_buf)); - if(exp->_matches) sq_free(exp->_matches,exp->_nsubexpr * sizeof(SQRexMatch)); - sq_free(exp,sizeof(SQRex)); - } -} - -SQBool sqstd_rex_match(SQRex* exp,const SQChar* text) -{ - const SQChar* res = NULL; - exp->_bol = text; - exp->_eol = text + scstrlen(text); - exp->_currsubexp = 0; - res = sqstd_rex_matchnode(exp,exp->_nodes,text,NULL); - if(res == NULL || res != exp->_eol) - return SQFalse; - return SQTrue; -} - -SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* text_end,const SQChar** out_begin, const SQChar** out_end) -{ - const SQChar *cur = NULL; - SQInteger node = exp->_first; - if(text_begin >= text_end) return SQFalse; - exp->_bol = text_begin; - exp->_eol = text_end; - do { - cur = text_begin; - while(node != -1) { - exp->_currsubexp = 0; - cur = sqstd_rex_matchnode(exp,&exp->_nodes[node],cur,NULL); - if(!cur) - break; - node = exp->_nodes[node].next; - } - text_begin++; - } while(cur == NULL && text_begin != text_end); - - if(cur == NULL) - return SQFalse; - - --text_begin; - - if(out_begin) *out_begin = text_begin; - if(out_end) *out_end = cur; - return SQTrue; -} - -SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end) -{ - return sqstd_rex_searchrange(exp,text,text + scstrlen(text),out_begin,out_end); -} - -SQInteger sqstd_rex_getsubexpcount(SQRex* exp) -{ - return exp->_nsubexpr; -} - -SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp) -{ - if( n<0 || n >= exp->_nsubexpr) return SQFalse; - *subexp = exp->_matches[n]; - return SQTrue; -} - diff --git a/m_packages/squirrel/sqstdlib/sqstdstream.cpp b/m_packages/squirrel/sqstdlib/sqstdstream.cpp deleted file mode 100644 index 605a56c5..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdstream.cpp +++ /dev/null @@ -1,336 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include -#include -#include -#include "sqstdstream.h" -#include "sqstdblobimpl.h" - -#define SETUP_STREAM(v) \ - SQStream *self = NULL; \ - if(SQ_FAILED(sq_getinstanceup(v,1,(SQUserPointer*)&self,(SQUserPointer)((SQUnsignedInteger)SQSTD_STREAM_TYPE_TAG),SQFalse))) \ - return sq_throwerror(v,_SC("invalid type tag")); \ - if(!self || !self->IsValid()) \ - return sq_throwerror(v,_SC("the stream is invalid")); - -SQInteger _stream_readblob(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - SQUserPointer data,blobp; - SQInteger size,res; - sq_getinteger(v,2,&size); - if(size > self->Len()) { - size = self->Len(); - } - data = sq_getscratchpad(v,size); - res = self->Read(data,size); - if(res <= 0) - return sq_throwerror(v,_SC("no data left to read")); - blobp = sqstd_createblob(v,res); - memcpy(blobp,data,res); - return 1; -} - -#define SAFE_READN(ptr,len) { \ - if(self->Read(ptr,len) != len) return sq_throwerror(v,_SC("io error")); \ - } -SQInteger _stream_readn(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - SQInteger format; - sq_getinteger(v, 2, &format); - switch(format) { - case 'l': { - SQInteger i; - SAFE_READN(&i, sizeof(i)); - sq_pushinteger(v, i); - } - break; - case 'i': { - SQInt32 i; - SAFE_READN(&i, sizeof(i)); - sq_pushinteger(v, i); - } - break; - case 's': { - short s; - SAFE_READN(&s, sizeof(short)); - sq_pushinteger(v, s); - } - break; - case 'w': { - unsigned short w; - SAFE_READN(&w, sizeof(unsigned short)); - sq_pushinteger(v, w); - } - break; - case 'c': { - char c; - SAFE_READN(&c, sizeof(char)); - sq_pushinteger(v, c); - } - break; - case 'b': { - unsigned char c; - SAFE_READN(&c, sizeof(unsigned char)); - sq_pushinteger(v, c); - } - break; - case 'f': { - float f; - SAFE_READN(&f, sizeof(float)); - sq_pushfloat(v, f); - } - break; - case 'd': { - double d; - SAFE_READN(&d, sizeof(double)); - sq_pushfloat(v, (SQFloat)d); - } - break; - default: - return sq_throwerror(v, _SC("invalid format")); - } - return 1; -} - -SQInteger _stream_writeblob(HSQUIRRELVM v) -{ - SQUserPointer data; - SQInteger size; - SETUP_STREAM(v); - if(SQ_FAILED(sqstd_getblob(v,2,&data))) - return sq_throwerror(v,_SC("invalid parameter")); - size = sqstd_getblobsize(v,2); - if(self->Write(data,size) != size) - return sq_throwerror(v,_SC("io error")); - sq_pushinteger(v,size); - return 1; -} - -SQInteger _stream_writen(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - SQInteger format, ti; - SQFloat tf; - sq_getinteger(v, 3, &format); - switch(format) { - case 'l': { - SQInteger i; - sq_getinteger(v, 2, &ti); - i = ti; - self->Write(&i, sizeof(SQInteger)); - } - break; - case 'i': { - SQInt32 i; - sq_getinteger(v, 2, &ti); - i = (SQInt32)ti; - self->Write(&i, sizeof(SQInt32)); - } - break; - case 's': { - short s; - sq_getinteger(v, 2, &ti); - s = (short)ti; - self->Write(&s, sizeof(short)); - } - break; - case 'w': { - unsigned short w; - sq_getinteger(v, 2, &ti); - w = (unsigned short)ti; - self->Write(&w, sizeof(unsigned short)); - } - break; - case 'c': { - char c; - sq_getinteger(v, 2, &ti); - c = (char)ti; - self->Write(&c, sizeof(char)); - } - break; - case 'b': { - unsigned char b; - sq_getinteger(v, 2, &ti); - b = (unsigned char)ti; - self->Write(&b, sizeof(unsigned char)); - } - break; - case 'f': { - float f; - sq_getfloat(v, 2, &tf); - f = (float)tf; - self->Write(&f, sizeof(float)); - } - break; - case 'd': { - double d; - sq_getfloat(v, 2, &tf); - d = tf; - self->Write(&d, sizeof(double)); - } - break; - default: - return sq_throwerror(v, _SC("invalid format")); - } - return 0; -} - -SQInteger _stream_seek(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - SQInteger offset, origin = SQ_SEEK_SET; - sq_getinteger(v, 2, &offset); - if(sq_gettop(v) > 2) { - SQInteger t; - sq_getinteger(v, 3, &t); - switch(t) { - case 'b': origin = SQ_SEEK_SET; break; - case 'c': origin = SQ_SEEK_CUR; break; - case 'e': origin = SQ_SEEK_END; break; - default: return sq_throwerror(v,_SC("invalid origin")); - } - } - sq_pushinteger(v, self->Seek(offset, origin)); - return 1; -} - -SQInteger _stream_tell(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - sq_pushinteger(v, self->Tell()); - return 1; -} - -SQInteger _stream_len(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - sq_pushinteger(v, self->Len()); - return 1; -} - -SQInteger _stream_flush(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - if(!self->Flush()) - sq_pushinteger(v, 1); - else - sq_pushnull(v); - return 1; -} - -SQInteger _stream_eos(HSQUIRRELVM v) -{ - SETUP_STREAM(v); - if(self->EOS()) - sq_pushinteger(v, 1); - else - sq_pushnull(v); - return 1; -} - - SQInteger _stream__cloned(HSQUIRRELVM v) - { - return sq_throwerror(v,_SC("this object cannot be cloned")); - } - -static const SQRegFunction _stream_methods[] = { - _DECL_STREAM_FUNC(readblob,2,_SC("xn")), - _DECL_STREAM_FUNC(readn,2,_SC("xn")), - _DECL_STREAM_FUNC(writeblob,-2,_SC("xx")), - _DECL_STREAM_FUNC(writen,3,_SC("xnn")), - _DECL_STREAM_FUNC(seek,-2,_SC("xnn")), - _DECL_STREAM_FUNC(tell,1,_SC("x")), - _DECL_STREAM_FUNC(len,1,_SC("x")), - _DECL_STREAM_FUNC(eos,1,_SC("x")), - _DECL_STREAM_FUNC(flush,1,_SC("x")), - _DECL_STREAM_FUNC(_cloned,0,NULL), - {NULL,(SQFUNCTION)0,0,NULL} -}; - -void init_streamclass(HSQUIRRELVM v) -{ - sq_pushregistrytable(v); - sq_pushstring(v,_SC("std_stream"),-1); - if(SQ_FAILED(sq_get(v,-2))) { - sq_pushstring(v,_SC("std_stream"),-1); - sq_newclass(v,SQFalse); - sq_settypetag(v,-1,(SQUserPointer)((SQUnsignedInteger)SQSTD_STREAM_TYPE_TAG)); - SQInteger i = 0; - while(_stream_methods[i].name != 0) { - const SQRegFunction &f = _stream_methods[i]; - sq_pushstring(v,f.name,-1); - sq_newclosure(v,f.f,0); - sq_setparamscheck(v,f.nparamscheck,f.typemask); - sq_newslot(v,-3,SQFalse); - i++; - } - sq_newslot(v,-3,SQFalse); - sq_pushroottable(v); - sq_pushstring(v,_SC("stream"),-1); - sq_pushstring(v,_SC("std_stream"),-1); - sq_get(v,-4); - sq_newslot(v,-3,SQFalse); - sq_pop(v,1); - } - else { - sq_pop(v,1); //result - } - sq_pop(v,1); -} - -SQRESULT declare_stream(HSQUIRRELVM v,const SQChar* name,SQUserPointer typetag,const SQChar* reg_name,const SQRegFunction *methods,const SQRegFunction *globals) -{ - if(sq_gettype(v,-1) != OT_TABLE) - return sq_throwerror(v,_SC("table expected")); - SQInteger top = sq_gettop(v); - //create delegate - init_streamclass(v); - sq_pushregistrytable(v); - sq_pushstring(v,reg_name,-1); - sq_pushstring(v,_SC("std_stream"),-1); - if(SQ_SUCCEEDED(sq_get(v,-3))) { - sq_newclass(v,SQTrue); - sq_settypetag(v,-1,typetag); - SQInteger i = 0; - while(methods[i].name != 0) { - const SQRegFunction &f = methods[i]; - sq_pushstring(v,f.name,-1); - sq_newclosure(v,f.f,0); - sq_setparamscheck(v,f.nparamscheck,f.typemask); - sq_setnativeclosurename(v,-1,f.name); - sq_newslot(v,-3,SQFalse); - i++; - } - sq_newslot(v,-3,SQFalse); - sq_pop(v,1); - - i = 0; - while(globals[i].name!=0) - { - const SQRegFunction &f = globals[i]; - sq_pushstring(v,f.name,-1); - sq_newclosure(v,f.f,0); - sq_setparamscheck(v,f.nparamscheck,f.typemask); - sq_setnativeclosurename(v,-1,f.name); - sq_newslot(v,-3,SQFalse); - i++; - } - //register the class in the target table - sq_pushstring(v,name,-1); - sq_pushregistrytable(v); - sq_pushstring(v,reg_name,-1); - sq_get(v,-2); - sq_remove(v,-2); - sq_newslot(v,-3,SQFalse); - - sq_settop(v,top); - return SQ_OK; - } - sq_settop(v,top); - return SQ_ERROR; -} diff --git a/m_packages/squirrel/sqstdlib/sqstdstream.h b/m_packages/squirrel/sqstdlib/sqstdstream.h deleted file mode 100644 index 867c135f..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdstream.h +++ /dev/null @@ -1,18 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQSTD_STREAM_H_ -#define _SQSTD_STREAM_H_ - -SQInteger _stream_readblob(HSQUIRRELVM v); -SQInteger _stream_readline(HSQUIRRELVM v); -SQInteger _stream_readn(HSQUIRRELVM v); -SQInteger _stream_writeblob(HSQUIRRELVM v); -SQInteger _stream_writen(HSQUIRRELVM v); -SQInteger _stream_seek(HSQUIRRELVM v); -SQInteger _stream_tell(HSQUIRRELVM v); -SQInteger _stream_len(HSQUIRRELVM v); -SQInteger _stream_eos(HSQUIRRELVM v); -SQInteger _stream_flush(HSQUIRRELVM v); - -#define _DECL_STREAM_FUNC(name,nparams,typecheck) {_SC(#name),_stream_##name,nparams,typecheck} -SQRESULT declare_stream(HSQUIRRELVM v,const SQChar* name,SQUserPointer typetag,const SQChar* reg_name,const SQRegFunction *methods,const SQRegFunction *globals); -#endif /*_SQSTD_STREAM_H_*/ diff --git a/m_packages/squirrel/sqstdlib/sqstdstring.cpp b/m_packages/squirrel/sqstdlib/sqstdstring.cpp deleted file mode 100644 index ca3df3ed..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdstring.cpp +++ /dev/null @@ -1,552 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_FORMAT_LEN 20 -#define MAX_WFORMAT_LEN 3 -#define ADDITIONAL_FORMAT_SPACE (100*sizeof(SQChar)) - -static SQUserPointer rex_typetag = NULL; - -static SQBool isfmtchr(SQChar ch) -{ - switch(ch) { - case '-': case '+': case ' ': case '#': case '0': return SQTrue; - } - return SQFalse; -} - -static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src, SQInteger n,SQInteger &width) -{ - SQChar *dummy; - SQChar swidth[MAX_WFORMAT_LEN]; - SQInteger wc = 0; - SQInteger start = n; - fmt[0] = '%'; - while (isfmtchr(src[n])) n++; - while (scisdigit(src[n])) { - swidth[wc] = src[n]; - n++; - wc++; - if(wc>=MAX_WFORMAT_LEN) - return sq_throwerror(v,_SC("width format too long")); - } - swidth[wc] = '\0'; - if(wc > 0) { - width = scstrtol(swidth,&dummy,10); - } - else - width = 0; - if (src[n] == '.') { - n++; - - wc = 0; - while (scisdigit(src[n])) { - swidth[wc] = src[n]; - n++; - wc++; - if(wc>=MAX_WFORMAT_LEN) - return sq_throwerror(v,_SC("precision format too long")); - } - swidth[wc] = '\0'; - if(wc > 0) { - width += scstrtol(swidth,&dummy,10); - - } - } - if (n-start > MAX_FORMAT_LEN ) - return sq_throwerror(v,_SC("format too long")); - memcpy(&fmt[1],&src[start],((n-start)+1)*sizeof(SQChar)); - fmt[(n-start)+2] = '\0'; - return n; -} - -SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output) -{ - const SQChar *format; - SQChar *dest; - SQChar fmt[MAX_FORMAT_LEN]; - const SQRESULT res = sq_getstring(v,nformatstringidx,&format); - if (SQ_FAILED(res)) { - return res; // propagate the error - } - SQInteger format_size = sq_getsize(v,nformatstringidx); - SQInteger allocated = (format_size+2)*sizeof(SQChar); - dest = sq_getscratchpad(v,allocated); - SQInteger n = 0,i = 0, nparam = nformatstringidx+1, w = 0; - //while(format[n] != '\0') - while(n < format_size) - { - if(format[n] != '%') { - assert(i < allocated); - dest[i++] = format[n]; - n++; - } - else if(format[n+1] == '%') { //handles %% - dest[i++] = '%'; - n += 2; - } - else { - n++; - if( nparam > sq_gettop(v) ) - return sq_throwerror(v,_SC("not enough parameters for the given format string")); - n = validate_format(v,fmt,format,n,w); - if(n < 0) return -1; - SQInteger addlen = 0; - SQInteger valtype = 0; - const SQChar *ts = NULL; - SQInteger ti = 0; - SQFloat tf = 0; - switch(format[n]) { - case 's': - if(SQ_FAILED(sq_getstring(v,nparam,&ts))) - return sq_throwerror(v,_SC("string expected for the specified format")); - addlen = (sq_getsize(v,nparam)*sizeof(SQChar))+((w+1)*sizeof(SQChar)); - valtype = 's'; - break; - case 'i': case 'd': case 'o': case 'u': case 'x': case 'X': -#ifdef _SQ64 - { - size_t flen = scstrlen(fmt); - SQInteger fpos = flen - 1; - SQChar f = fmt[fpos]; - const SQChar *prec = (const SQChar *)_PRINT_INT_PREC; - while(*prec != _SC('\0')) { - fmt[fpos++] = *prec++; - } - fmt[fpos++] = f; - fmt[fpos++] = _SC('\0'); - } -#endif - case 'c': - if(SQ_FAILED(sq_getinteger(v,nparam,&ti))) - return sq_throwerror(v,_SC("integer expected for the specified format")); - addlen = (ADDITIONAL_FORMAT_SPACE)+((w+1)*sizeof(SQChar)); - valtype = 'i'; - break; - case 'f': case 'g': case 'G': case 'e': case 'E': - if(SQ_FAILED(sq_getfloat(v,nparam,&tf))) - return sq_throwerror(v,_SC("float expected for the specified format")); - addlen = (ADDITIONAL_FORMAT_SPACE)+((w+1)*sizeof(SQChar)); - valtype = 'f'; - break; - default: - return sq_throwerror(v,_SC("invalid format")); - } - n++; - allocated += addlen + sizeof(SQChar); - dest = sq_getscratchpad(v,allocated); - switch(valtype) { - case 's': i += scsprintf(&dest[i],allocated,fmt,ts); break; - case 'i': i += scsprintf(&dest[i],allocated,fmt,ti); break; - case 'f': i += scsprintf(&dest[i],allocated,fmt,tf); break; - }; - nparam ++; - } - } - *outlen = i; - dest[i] = '\0'; - *output = dest; - return SQ_OK; -} - -void sqstd_pushstringf(HSQUIRRELVM v,const SQChar *s,...) -{ - SQInteger n=256; - va_list args; -begin: - va_start(args,s); - SQChar *b=sq_getscratchpad(v,n); - SQInteger r=scvsprintf(b,n,s,args); - va_end(args); - if (r>=n) { - n=r+1;//required+null - goto begin; - } else if (r<0) { - sq_pushnull(v); - } else { - sq_pushstring(v,b,r); - } -} - -static SQInteger _string_printf(HSQUIRRELVM v) -{ - SQChar *dest = NULL; - SQInteger length = 0; - if(SQ_FAILED(sqstd_format(v,2,&length,&dest))) - return -1; - - SQPRINTFUNCTION printfunc = sq_getprintfunc(v); - if(printfunc) printfunc(v,_SC("%s"),dest); - - return 0; -} - -static SQInteger _string_format(HSQUIRRELVM v) -{ - SQChar *dest = NULL; - SQInteger length = 0; - if(SQ_FAILED(sqstd_format(v,2,&length,&dest))) - return -1; - sq_pushstring(v,dest,length); - return 1; -} - -static void __strip_l(const SQChar *str,const SQChar **start) -{ - const SQChar *t = str; - while(((*t) != '\0') && scisspace(*t)){ t++; } - *start = t; -} - -static void __strip_r(const SQChar *str,SQInteger len,const SQChar **end) -{ - if(len == 0) { - *end = str; - return; - } - const SQChar *t = &str[len-1]; - while(t >= str && scisspace(*t)) { t--; } - *end = t + 1; -} - -static SQInteger _string_strip(HSQUIRRELVM v) -{ - const SQChar *str,*start,*end; - sq_getstring(v,2,&str); - SQInteger len = sq_getsize(v,2); - __strip_l(str,&start); - __strip_r(str,len,&end); - sq_pushstring(v,start,end - start); - return 1; -} - -static SQInteger _string_lstrip(HSQUIRRELVM v) -{ - const SQChar *str,*start; - sq_getstring(v,2,&str); - __strip_l(str,&start); - sq_pushstring(v,start,-1); - return 1; -} - -static SQInteger _string_rstrip(HSQUIRRELVM v) -{ - const SQChar *str,*end; - sq_getstring(v,2,&str); - SQInteger len = sq_getsize(v,2); - __strip_r(str,len,&end); - sq_pushstring(v,str,end - str); - return 1; -} - -static SQInteger _string_split(HSQUIRRELVM v) -{ - const SQChar *str,*seps; - SQInteger sepsize; - SQBool skipempty = SQFalse; - sq_getstring(v,2,&str); - sq_getstringandsize(v,3,&seps,&sepsize); - if(sepsize == 0) return sq_throwerror(v,_SC("empty separators string")); - if(sq_gettop(v)>3) { - sq_getbool(v,4,&skipempty); - } - const SQChar *start = str; - const SQChar *end = str; - sq_newarray(v,0); - while(*end != '\0') - { - SQChar cur = *end; - for(SQInteger i = 0; i < sepsize; i++) - { - if(cur == seps[i]) - { - if(!skipempty || (end != start)) { - sq_pushstring(v,start,end-start); - sq_arrayappend(v,-2); - } - start = end + 1; - break; - } - } - end++; - } - if(end != start) - { - sq_pushstring(v,start,end-start); - sq_arrayappend(v,-2); - } - return 1; -} - -static SQInteger _string_escape(HSQUIRRELVM v) -{ - const SQChar *str; - SQChar *dest,*resstr; - SQInteger size; - sq_getstring(v,2,&str); - size = sq_getsize(v,2); - if(size == 0) { - sq_push(v,2); - return 1; - } -#ifdef SQUNICODE -#if WCHAR_SIZE == 2 - const SQChar *escpat = _SC("\\x%04x"); - const SQInteger maxescsize = 6; -#else //WCHAR_SIZE == 4 - const SQChar *escpat = _SC("\\x%08x"); - const SQInteger maxescsize = 10; -#endif -#else - const SQChar *escpat = _SC("\\x%02x"); - const SQInteger maxescsize = 4; -#endif - SQInteger destcharsize = (size * maxescsize); //assumes every char could be escaped - resstr = dest = (SQChar *)sq_getscratchpad(v,destcharsize * sizeof(SQChar)); - SQChar c; - SQChar escch; - SQInteger escaped = 0; - for(int n = 0; n < size; n++){ - c = *str++; - escch = 0; - if(scisprint(c) || c == 0) { - switch(c) { - case '\a': escch = 'a'; break; - case '\b': escch = 'b'; break; - case '\t': escch = 't'; break; - case '\n': escch = 'n'; break; - case '\v': escch = 'v'; break; - case '\f': escch = 'f'; break; - case '\r': escch = 'r'; break; - case '\\': escch = '\\'; break; - case '\"': escch = '\"'; break; - case '\'': escch = '\''; break; - case 0: escch = '0'; break; - } - if(escch) { - *dest++ = '\\'; - *dest++ = escch; - escaped++; - } - else { - *dest++ = c; - } - } - else { - - dest += scsprintf(dest, destcharsize, escpat, c); - escaped++; - } - } - - if(escaped) { - sq_pushstring(v,resstr,dest - resstr); - } - else { - sq_push(v,2); //nothing escaped - } - return 1; -} - -static SQInteger _string_startswith(HSQUIRRELVM v) -{ - const SQChar *str,*cmp; - sq_getstring(v,2,&str); - sq_getstring(v,3,&cmp); - SQInteger len = sq_getsize(v,2); - SQInteger cmplen = sq_getsize(v,3); - SQBool ret = SQFalse; - if(cmplen <= len) { - ret = memcmp(str,cmp,sq_rsl(cmplen)) == 0 ? SQTrue : SQFalse; - } - sq_pushbool(v,ret); - return 1; -} - -static SQInteger _string_endswith(HSQUIRRELVM v) -{ - const SQChar *str,*cmp; - sq_getstring(v,2,&str); - sq_getstring(v,3,&cmp); - SQInteger len = sq_getsize(v,2); - SQInteger cmplen = sq_getsize(v,3); - SQBool ret = SQFalse; - if(cmplen <= len) { - ret = memcmp(&str[len - cmplen],cmp,sq_rsl(cmplen)) == 0 ? SQTrue : SQFalse; - } - sq_pushbool(v,ret); - return 1; -} - -#define SETUP_REX(v) \ - SQRex *self = NULL; \ - if(SQ_FAILED(sq_getinstanceup(v,1,(SQUserPointer *)&self,rex_typetag,SQFalse))) { \ - return sq_throwerror(v,_SC("invalid type tag")); \ - } - -static SQInteger _rexobj_releasehook(SQUserPointer p, SQInteger SQ_UNUSED_ARG(size)) -{ - SQRex *self = ((SQRex *)p); - sqstd_rex_free(self); - return 1; -} - -static SQInteger _regexp_match(HSQUIRRELVM v) -{ - SETUP_REX(v); - const SQChar *str; - sq_getstring(v,2,&str); - if(sqstd_rex_match(self,str) == SQTrue) - { - sq_pushbool(v,SQTrue); - return 1; - } - sq_pushbool(v,SQFalse); - return 1; -} - -static void _addrexmatch(HSQUIRRELVM v,const SQChar *str,const SQChar *begin,const SQChar *end) -{ - sq_newtable(v); - sq_pushstring(v,_SC("begin"),-1); - sq_pushinteger(v,begin - str); - sq_rawset(v,-3); - sq_pushstring(v,_SC("end"),-1); - sq_pushinteger(v,end - str); - sq_rawset(v,-3); -} - -static SQInteger _regexp_search(HSQUIRRELVM v) -{ - SETUP_REX(v); - const SQChar *str,*begin,*end; - SQInteger start = 0; - sq_getstring(v,2,&str); - if(sq_gettop(v) > 2) sq_getinteger(v,3,&start); - if(sqstd_rex_search(self,str+start,&begin,&end) == SQTrue) { - _addrexmatch(v,str,begin,end); - return 1; - } - return 0; -} - -static SQInteger _regexp_capture(HSQUIRRELVM v) -{ - SETUP_REX(v); - const SQChar *str,*begin,*end; - SQInteger start = 0; - sq_getstring(v,2,&str); - if(sq_gettop(v) > 2) sq_getinteger(v,3,&start); - if(sqstd_rex_search(self,str+start,&begin,&end) == SQTrue) { - SQInteger n = sqstd_rex_getsubexpcount(self); - SQRexMatch match; - sq_newarray(v,0); - for(SQInteger i = 0;i < n; i++) { - sqstd_rex_getsubexp(self,i,&match); - if(match.len > 0) - _addrexmatch(v,str,match.begin,match.begin+match.len); - else - _addrexmatch(v,str,str,str); //empty match - sq_arrayappend(v,-2); - } - return 1; - } - return 0; -} - -static SQInteger _regexp_subexpcount(HSQUIRRELVM v) -{ - SETUP_REX(v); - sq_pushinteger(v,sqstd_rex_getsubexpcount(self)); - return 1; -} - -static SQInteger _regexp_constructor(HSQUIRRELVM v) -{ - SQRex *self = NULL; - if (SQ_FAILED(sq_getinstanceup(v, 1, (SQUserPointer *)&self, rex_typetag, SQFalse))) { - return sq_throwerror(v, _SC("invalid type tag")); - } - if (self != NULL) { - return sq_throwerror(v, _SC("invalid regexp object")); - } - const SQChar *error,*pattern; - sq_getstring(v,2,&pattern); - SQRex *rex = sqstd_rex_compile(pattern,&error); - if(!rex) return sq_throwerror(v,error); - sq_setinstanceup(v,1,rex); - sq_setreleasehook(v,1,_rexobj_releasehook); - return 0; -} - -static SQInteger _regexp__typeof(HSQUIRRELVM v) -{ - sq_pushstring(v,_SC("regexp"),-1); - return 1; -} - -#define _DECL_REX_FUNC(name,nparams,pmask) {_SC(#name),_regexp_##name,nparams,pmask} -static const SQRegFunction rexobj_funcs[]={ - _DECL_REX_FUNC(constructor,2,_SC(".s")), - _DECL_REX_FUNC(search,-2,_SC("xsn")), - _DECL_REX_FUNC(match,2,_SC("xs")), - _DECL_REX_FUNC(capture,-2,_SC("xsn")), - _DECL_REX_FUNC(subexpcount,1,_SC("x")), - _DECL_REX_FUNC(_typeof,1,_SC("x")), - {NULL,(SQFUNCTION)0,0,NULL} -}; -#undef _DECL_REX_FUNC - -#define _DECL_FUNC(name,nparams,pmask) {_SC(#name),_string_##name,nparams,pmask} -static const SQRegFunction stringlib_funcs[]={ - _DECL_FUNC(format,-2,_SC(".s")), - _DECL_FUNC(printf,-2,_SC(".s")), - _DECL_FUNC(strip,2,_SC(".s")), - _DECL_FUNC(lstrip,2,_SC(".s")), - _DECL_FUNC(rstrip,2,_SC(".s")), - _DECL_FUNC(split,-3,_SC(".ssb")), - _DECL_FUNC(escape,2,_SC(".s")), - _DECL_FUNC(startswith,3,_SC(".ss")), - _DECL_FUNC(endswith,3,_SC(".ss")), - {NULL,(SQFUNCTION)0,0,NULL} -}; -#undef _DECL_FUNC - - -SQInteger sqstd_register_stringlib(HSQUIRRELVM v) -{ - sq_pushstring(v,_SC("regexp"),-1); - sq_newclass(v,SQFalse); - rex_typetag = (SQUserPointer)rexobj_funcs; - sq_settypetag(v, -1, rex_typetag); - SQInteger i = 0; - while(rexobj_funcs[i].name != 0) { - const SQRegFunction &f = rexobj_funcs[i]; - sq_pushstring(v,f.name,-1); - sq_newclosure(v,f.f,0); - sq_setparamscheck(v,f.nparamscheck,f.typemask); - sq_setnativeclosurename(v,-1,f.name); - sq_newslot(v,-3,SQFalse); - i++; - } - sq_newslot(v,-3,SQFalse); - - i = 0; - while(stringlib_funcs[i].name!=0) - { - sq_pushstring(v,stringlib_funcs[i].name,-1); - sq_newclosure(v,stringlib_funcs[i].f,0); - sq_setparamscheck(v,stringlib_funcs[i].nparamscheck,stringlib_funcs[i].typemask); - sq_setnativeclosurename(v,-1,stringlib_funcs[i].name); - sq_newslot(v,-3,SQFalse); - i++; - } - return 1; -} diff --git a/m_packages/squirrel/sqstdlib/sqstdsystem.cpp b/m_packages/squirrel/sqstdlib/sqstdsystem.cpp deleted file mode 100644 index d326be1a..00000000 --- a/m_packages/squirrel/sqstdlib/sqstdsystem.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include -#include -#include -#include -#include - -#ifdef SQUNICODE -#include -#define scgetenv _wgetenv -#define scsystem _wsystem -#define scasctime _wasctime -#define scremove _wremove -#define screname _wrename -#else -#define scgetenv getenv -#define scsystem system -#define scasctime asctime -#define scremove remove -#define screname rename -#endif -#ifdef IOS - #include - extern char **environ; -#endif - -static SQInteger _system_getenv(HSQUIRRELVM v) -{ - const SQChar *s; - if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){ - sq_pushstring(v,scgetenv(s),-1); - return 1; - } - return 0; -} - -static SQInteger _system_system(HSQUIRRELVM v) -{ - const SQChar *s; - if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){ - #ifdef IOS - pid_t pid; - posix_spawn(&pid, s, NULL, NULL, NULL, environ); - sq_pushinteger(v, 0); - #else - sq_pushinteger(v,scsystem(s)); - #endif - return 1; - } - return sq_throwerror(v,_SC("wrong param")); -} - -static SQInteger _system_clock(HSQUIRRELVM v) -{ - sq_pushfloat(v,((SQFloat)clock())/(SQFloat)CLOCKS_PER_SEC); - return 1; -} - -static SQInteger _system_time(HSQUIRRELVM v) -{ - SQInteger t = (SQInteger)time(NULL); - sq_pushinteger(v,t); - return 1; -} - -static SQInteger _system_remove(HSQUIRRELVM v) -{ - const SQChar *s; - sq_getstring(v,2,&s); - if(scremove(s)==-1) - return sq_throwerror(v,_SC("remove() failed")); - return 0; -} - -static SQInteger _system_rename(HSQUIRRELVM v) -{ - const SQChar *oldn,*newn; - sq_getstring(v,2,&oldn); - sq_getstring(v,3,&newn); - if(screname(oldn,newn)==-1) - return sq_throwerror(v,_SC("rename() failed")); - return 0; -} - -static void _set_integer_slot(HSQUIRRELVM v,const SQChar *name,SQInteger val) -{ - sq_pushstring(v,name,-1); - sq_pushinteger(v,val); - sq_rawset(v,-3); -} - -static SQInteger _system_date(HSQUIRRELVM v) -{ - time_t t; - SQInteger it; - SQInteger format = 'l'; - if(sq_gettop(v) > 1) { - sq_getinteger(v,2,&it); - t = it; - if(sq_gettop(v) > 2) { - sq_getinteger(v,3,(SQInteger*)&format); - } - } - else { - time(&t); - } - tm *date; - if(format == 'u') - date = gmtime(&t); - else - date = localtime(&t); - if(!date) - return sq_throwerror(v,_SC("crt api failure")); - sq_newtable(v); - _set_integer_slot(v, _SC("sec"), date->tm_sec); - _set_integer_slot(v, _SC("min"), date->tm_min); - _set_integer_slot(v, _SC("hour"), date->tm_hour); - _set_integer_slot(v, _SC("day"), date->tm_mday); - _set_integer_slot(v, _SC("month"), date->tm_mon); - _set_integer_slot(v, _SC("year"), date->tm_year+1900); - _set_integer_slot(v, _SC("wday"), date->tm_wday); - _set_integer_slot(v, _SC("yday"), date->tm_yday); - return 1; -} - - - -#define _DECL_FUNC(name,nparams,pmask) {_SC(#name),_system_##name,nparams,pmask} -static const SQRegFunction systemlib_funcs[]={ - _DECL_FUNC(getenv,2,_SC(".s")), - _DECL_FUNC(system,2,_SC(".s")), - _DECL_FUNC(clock,0,NULL), - _DECL_FUNC(time,1,NULL), - _DECL_FUNC(date,-1,_SC(".nn")), - _DECL_FUNC(remove,2,_SC(".s")), - _DECL_FUNC(rename,3,_SC(".ss")), - {NULL,(SQFUNCTION)0,0,NULL} -}; -#undef _DECL_FUNC - -SQInteger sqstd_register_systemlib(HSQUIRRELVM v) -{ - SQInteger i=0; - while(systemlib_funcs[i].name!=0) - { - sq_pushstring(v,systemlib_funcs[i].name,-1); - sq_newclosure(v,systemlib_funcs[i].f,0); - sq_setparamscheck(v,systemlib_funcs[i].nparamscheck,systemlib_funcs[i].typemask); - sq_setnativeclosurename(v,-1,systemlib_funcs[i].name); - sq_newslot(v,-3,SQFalse); - i++; - } - return 1; -} diff --git a/m_packages/squirrel/squirrel-config.cmake.in b/m_packages/squirrel/squirrel-config.cmake.in deleted file mode 100644 index 6ed4a8aa..00000000 --- a/m_packages/squirrel/squirrel-config.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/squirrel-config-version.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/squirrel-targets.cmake") diff --git a/m_packages/squirrel/squirrel.dsw b/m_packages/squirrel/squirrel.dsw deleted file mode 100644 index 72150910..00000000 --- a/m_packages/squirrel/squirrel.dsw +++ /dev/null @@ -1,77 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "sq"=.\sq\sq.dsp - Package Owner=<4> - -Package=<5> -{{{ - begin source code control - . - end source code control -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name sqlibs - End Project Dependency - Begin Project Dependency - Project_Dep_Name squirrel - End Project Dependency - Begin Project Dependency - Project_Dep_Name sqstdlib - End Project Dependency -}}} - -############################################################################### - -Project: "sqstdlib"=.\sqstdlib\sqstdlib.dsp - Package Owner=<4> - -Package=<5> -{{{ - begin source code control - "$/squirrel", HAAAAAAA - . - end source code control -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "squirrel"=.\squirrel\squirrel.dsp - Package Owner=<4> - -Package=<5> -{{{ - begin source code control - "$/squirrel", HAAAAAAA - . - end source code control -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ - begin source code control - "$/squirrel", HAAAAAAA - . - end source code control -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/m_packages/squirrel/squirrel.pc.in b/m_packages/squirrel/squirrel.pc.in deleted file mode 100644 index ea66485f..00000000 --- a/m_packages/squirrel/squirrel.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - -Name: @PROJECT_NAME@ -Version: @PROJECT_VERSION@ -Description: @PROJECT_DESCRIPTION@ -URL: @PROJECT_HOMEPAGE_URL@ -Requires: -Provides: squirrel3 = @PROJECT_VERSION@ -Libs: -L${libdir} -l@LIBSQUIRREL_NAME@ -l@SQSTDLIB_NAME@ -Cflags: -I${includedir} diff --git a/m_packages/squirrel/squirrel/CMakeLists.txt b/m_packages/squirrel/squirrel/CMakeLists.txt deleted file mode 100644 index c8a31b9a..00000000 --- a/m_packages/squirrel/squirrel/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -set(SQUIRREL_SRC sqapi.cpp - sqbaselib.cpp - sqclass.cpp - sqcompiler.cpp - sqdebug.cpp - sqfuncstate.cpp - sqlexer.cpp - sqmem.cpp - sqobject.cpp - sqstate.cpp - sqtable.cpp - sqvm.cpp) - -if(NOT DISABLE_DYNAMIC) - add_library(squirrel SHARED ${SQUIRREL_SRC}) - add_library(squirrel::squirrel ALIAS squirrel) - set_property(TARGET squirrel PROPERTY EXPORT_NAME squirrel) - set_property(TARGET squirrel PROPERTY OUTPUT_NAME ${LIBSQUIRREL_NAME}) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS squirrel EXPORT squirrel - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libraries - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries NAMELINK_SKIP - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries - ) - install(TARGETS squirrel EXPORT squirrel - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development NAMELINK_ONLY - ) - endif() - target_include_directories(squirrel PUBLIC - "$" - "$" - ) -endif() - -if(NOT DISABLE_STATIC) - add_library(squirrel_static STATIC ${SQUIRREL_SRC}) - add_library(squirrel::squirrel_static ALIAS squirrel_static) - set_property(TARGET squirrel_static PROPERTY EXPORT_NAME squirrel_static) - if(NOT SQ_DISABLE_INSTALLER) - install(TARGETS squirrel_static EXPORT squirrel ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development) - endif() - target_include_directories(squirrel_static PUBLIC - "$" - "$" - ) -endif() - -if(LONG_OUTPUT_NAMES) - if(NOT DISABLE_STATIC) - set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3_static) - endif() -endif() diff --git a/m_packages/squirrel/squirrel/Makefile b/m_packages/squirrel/squirrel/Makefile deleted file mode 100644 index 2422a834..00000000 --- a/m_packages/squirrel/squirrel/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -SQUIRREL= .. - - -CC?= gcc -OUT?= $(SQUIRREL)/lib/libsquirrel.a -INCZ?= -I$(SQUIRREL)/include -I. -Iinclude -DEFS= $(CC_EXTRA_FLAGS) -LIB= - -OBJS= \ - sqapi.o \ - sqbaselib.o \ - sqfuncstate.o \ - sqdebug.o \ - sqlexer.o \ - sqobject.o \ - sqcompiler.o \ - sqstate.o \ - sqtable.o \ - sqmem.o \ - sqvm.o \ - sqclass.o - -SRCS= \ - sqapi.cpp \ - sqbaselib.cpp \ - sqfuncstate.cpp \ - sqdebug.cpp \ - sqlexer.cpp \ - sqobject.cpp \ - sqcompiler.cpp \ - sqstate.cpp \ - sqtable.cpp \ - sqmem.cpp \ - sqvm.cpp \ - sqclass.cpp - - - -sq32: - $(CC) -O2 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o - -sqprof: - $(CC) -O2 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3 -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o - -sq64: - $(CC) -O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing -c $(SRCS) $(INCZ) $(DEFS) - ar rc $(OUT) *.o - rm *.o diff --git a/m_packages/squirrel/squirrel/sqapi.cpp b/m_packages/squirrel/squirrel/sqapi.cpp deleted file mode 100644 index 54eecac4..00000000 --- a/m_packages/squirrel/squirrel/sqapi.cpp +++ /dev/null @@ -1,1631 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqvm.h" -#include "sqstring.h" -#include "sqtable.h" -#include "sqarray.h" -#include "sqfuncproto.h" -#include "sqclosure.h" -#include "squserdata.h" -#include "sqcompiler.h" -#include "sqfuncstate.h" -#include "sqclass.h" - -static bool sq_aux_gettypedarg(HSQUIRRELVM v,SQInteger idx,SQObjectType type,SQObjectPtr **o) -{ - *o = &stack_get(v,idx); - if(sq_type(**o) != type){ - SQObjectPtr oval = v->PrintObjVal(**o); - v->Raise_Error(_SC("wrong argument type, expected '%s' got '%.50s'"),IdType2Name(type),_stringval(oval)); - return false; - } - return true; -} - -#define _GETSAFE_OBJ(v,idx,type,o) { if(!sq_aux_gettypedarg(v,idx,type,&o)) return SQ_ERROR; } - -#define sq_aux_paramscheck(v,count) \ -{ \ - if(sq_gettop(v) < count){ v->Raise_Error(_SC("not enough params in the stack")); return SQ_ERROR; }\ -} - - -SQInteger sq_aux_invalidtype(HSQUIRRELVM v,SQObjectType type) -{ - SQUnsignedInteger buf_size = 100 *sizeof(SQChar); - scsprintf(_ss(v)->GetScratchPad(buf_size), buf_size, _SC("unexpected type %s"), IdType2Name(type)); - return sq_throwerror(v, _ss(v)->GetScratchPad(-1)); -} - -HSQUIRRELVM sq_open(SQInteger initialstacksize) -{ - SQSharedState *ss; - SQVM *v; - sq_new(ss, SQSharedState); - ss->Init(); - v = (SQVM *)SQ_MALLOC(sizeof(SQVM)); - new (v) SQVM(ss); - ss->_root_vm = v; - if(v->Init(NULL, initialstacksize)) { - return v; - } else { - sq_delete(v, SQVM); - return NULL; - } - return v; -} - -HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize) -{ - SQSharedState *ss; - SQVM *v; - ss=_ss(friendvm); - - v= (SQVM *)SQ_MALLOC(sizeof(SQVM)); - new (v) SQVM(ss); - - if(v->Init(friendvm, initialstacksize)) { - friendvm->Push(v); - return v; - } else { - sq_delete(v, SQVM); - return NULL; - } -} - -SQInteger sq_getvmstate(HSQUIRRELVM v) -{ - if(v->_suspended) - return SQ_VMSTATE_SUSPENDED; - else { - if(v->_callsstacksize != 0) return SQ_VMSTATE_RUNNING; - else return SQ_VMSTATE_IDLE; - } -} - -void sq_seterrorhandler(HSQUIRRELVM v) -{ - SQObject o = stack_get(v, -1); - if(sq_isclosure(o) || sq_isnativeclosure(o) || sq_isnull(o)) { - v->_errorhandler = o; - v->Pop(); - } -} - -void sq_setnativedebughook(HSQUIRRELVM v,SQDEBUGHOOK hook) -{ - v->_debughook_native = hook; - v->_debughook_closure.Null(); - v->_debughook = hook?true:false; -} - -void sq_setdebughook(HSQUIRRELVM v) -{ - SQObject o = stack_get(v,-1); - if(sq_isclosure(o) || sq_isnativeclosure(o) || sq_isnull(o)) { - v->_debughook_closure = o; - v->_debughook_native = NULL; - v->_debughook = !sq_isnull(o); - v->Pop(); - } -} - -void sq_close(HSQUIRRELVM v) -{ - SQSharedState *ss = _ss(v); - _thread(ss->_root_vm)->Finalize(); - sq_delete(ss, SQSharedState); -} - -SQInteger sq_getversion() -{ - return SQUIRREL_VERSION_NUMBER; -} - -SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror) -{ - SQObjectPtr o; -#ifndef NO_COMPILER - if(Compile(v, read, p, sourcename, o, raiseerror?true:false, _ss(v)->_debuginfo)) { - v->Push(SQClosure::Create(_ss(v), _funcproto(o), _table(v->_roottable)->GetWeakRef(OT_TABLE))); - return SQ_OK; - } - return SQ_ERROR; -#else - return sq_throwerror(v,_SC("this is a no compiler build")); -#endif -} - -void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable) -{ - _ss(v)->_debuginfo = enable?true:false; -} - -void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable) -{ - _ss(v)->_notifyallexceptions = enable?true:false; -} - -void sq_addref(HSQUIRRELVM v,HSQOBJECT *po) -{ - if(!ISREFCOUNTED(sq_type(*po))) return; -#ifdef NO_GARBAGE_COLLECTOR - __AddRef(po->_type,po->_unVal); -#else - _ss(v)->_refs_table.AddRef(*po); -#endif -} - -SQUnsignedInteger sq_getrefcount(HSQUIRRELVM v,HSQOBJECT *po) -{ - if(!ISREFCOUNTED(sq_type(*po))) return 0; -#ifdef NO_GARBAGE_COLLECTOR - return po->_unVal.pRefCounted->_uiRef; -#else - return _ss(v)->_refs_table.GetRefCount(*po); -#endif -} - -SQBool sq_release(HSQUIRRELVM v,HSQOBJECT *po) -{ - if(!ISREFCOUNTED(sq_type(*po))) return SQTrue; -#ifdef NO_GARBAGE_COLLECTOR - bool ret = (po->_unVal.pRefCounted->_uiRef <= 1) ? SQTrue : SQFalse; - __Release(po->_type,po->_unVal); - return ret; //the ret val doesn't work(and cannot be fixed) -#else - return _ss(v)->_refs_table.Release(*po); -#endif -} - -SQUnsignedInteger sq_getvmrefcount(HSQUIRRELVM SQ_UNUSED_ARG(v), const HSQOBJECT *po) -{ - if (!ISREFCOUNTED(sq_type(*po))) return 0; - return po->_unVal.pRefCounted->_uiRef; -} - -const SQChar *sq_objtostring(const HSQOBJECT *o) -{ - if(sq_type(*o) == OT_STRING) { - return _stringval(*o); - } - return NULL; -} - -SQInteger sq_objtointeger(const HSQOBJECT *o) -{ - if(sq_isnumeric(*o)) { - return tointeger(*o); - } - return 0; -} - -SQFloat sq_objtofloat(const HSQOBJECT *o) -{ - if(sq_isnumeric(*o)) { - return tofloat(*o); - } - return 0; -} - -SQBool sq_objtobool(const HSQOBJECT *o) -{ - if(sq_isbool(*o)) { - return _integer(*o); - } - return SQFalse; -} - -SQUserPointer sq_objtouserpointer(const HSQOBJECT *o) -{ - if(sq_isuserpointer(*o)) { - return _userpointer(*o); - } - return 0; -} - -void sq_pushnull(HSQUIRRELVM v) -{ - v->PushNull(); -} - -void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len) -{ - if(s) - v->Push(SQObjectPtr(SQString::Create(_ss(v), s, len))); - else v->PushNull(); -} - -void sq_pushinteger(HSQUIRRELVM v,SQInteger n) -{ - v->Push(n); -} - -void sq_pushbool(HSQUIRRELVM v,SQBool b) -{ - v->Push(b?true:false); -} - -void sq_pushfloat(HSQUIRRELVM v,SQFloat n) -{ - v->Push(n); -} - -void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p) -{ - v->Push(p); -} - -void sq_pushthread(HSQUIRRELVM v, HSQUIRRELVM thread) -{ - v->Push(thread); -} - -SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size) -{ - SQUserData *ud = SQUserData::Create(_ss(v), size + SQ_ALIGNMENT); - v->Push(ud); - return (SQUserPointer)sq_aligning(ud + 1); -} - -void sq_newtable(HSQUIRRELVM v) -{ - v->Push(SQTable::Create(_ss(v), 0)); -} - -void sq_newtableex(HSQUIRRELVM v,SQInteger initialcapacity) -{ - v->Push(SQTable::Create(_ss(v), initialcapacity)); -} - -void sq_newarray(HSQUIRRELVM v,SQInteger size) -{ - v->Push(SQArray::Create(_ss(v), size)); -} - -SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase) -{ - SQClass *baseclass = NULL; - if(hasbase) { - SQObjectPtr &base = stack_get(v,-1); - if(sq_type(base) != OT_CLASS) - return sq_throwerror(v,_SC("invalid base type")); - baseclass = _class(base); - } - SQClass *newclass = SQClass::Create(_ss(v), baseclass); - if(baseclass) v->Pop(); - v->Push(newclass); - return SQ_OK; -} - -SQBool sq_instanceof(HSQUIRRELVM v) -{ - SQObjectPtr &inst = stack_get(v,-1); - SQObjectPtr &cl = stack_get(v,-2); - if(sq_type(inst) != OT_INSTANCE || sq_type(cl) != OT_CLASS) - return sq_throwerror(v,_SC("invalid param type")); - return _instance(inst)->InstanceOf(_class(cl))?SQTrue:SQFalse; -} - -SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx) -{ - sq_aux_paramscheck(v,2); - SQObjectPtr *arr; - _GETSAFE_OBJ(v, idx, OT_ARRAY,arr); - _array(*arr)->Append(v->GetUp(-1)); - v->Pop(); - return SQ_OK; -} - -SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval) -{ - sq_aux_paramscheck(v, 1); - SQObjectPtr *arr; - _GETSAFE_OBJ(v, idx, OT_ARRAY,arr); - if(_array(*arr)->Size() > 0) { - if(pushval != 0){ v->Push(_array(*arr)->Top()); } - _array(*arr)->Pop(); - return SQ_OK; - } - return sq_throwerror(v, _SC("empty array")); -} - -SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize) -{ - sq_aux_paramscheck(v,1); - SQObjectPtr *arr; - _GETSAFE_OBJ(v, idx, OT_ARRAY,arr); - if(newsize >= 0) { - _array(*arr)->Resize(newsize); - return SQ_OK; - } - return sq_throwerror(v,_SC("negative size")); -} - - -SQRESULT sq_arrayreverse(HSQUIRRELVM v,SQInteger idx) -{ - sq_aux_paramscheck(v, 1); - SQObjectPtr *o; - _GETSAFE_OBJ(v, idx, OT_ARRAY,o); - SQArray *arr = _array(*o); - if(arr->Size() > 0) { - SQObjectPtr t; - SQInteger size = arr->Size(); - SQInteger n = size >> 1; size -= 1; - for(SQInteger i = 0; i < n; i++) { - t = arr->_values[i]; - arr->_values[i] = arr->_values[size-i]; - arr->_values[size-i] = t; - } - return SQ_OK; - } - return SQ_OK; -} - -SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx) -{ - sq_aux_paramscheck(v, 1); - SQObjectPtr *arr; - _GETSAFE_OBJ(v, idx, OT_ARRAY,arr); - return _array(*arr)->Remove(itemidx) ? SQ_OK : sq_throwerror(v,_SC("index out of range")); -} - -SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos) -{ - sq_aux_paramscheck(v, 1); - SQObjectPtr *arr; - _GETSAFE_OBJ(v, idx, OT_ARRAY,arr); - SQRESULT ret = _array(*arr)->Insert(destpos, v->GetUp(-1)) ? SQ_OK : sq_throwerror(v,_SC("index out of range")); - v->Pop(); - return ret; -} - -void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars) -{ - SQNativeClosure *nc = SQNativeClosure::Create(_ss(v), func,nfreevars); - nc->_nparamscheck = 0; - for(SQUnsignedInteger i = 0; i < nfreevars; i++) { - nc->_outervalues[i] = v->Top(); - v->Pop(); - } - v->Push(SQObjectPtr(nc)); -} - -SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQInteger *nparams,SQInteger *nfreevars) -{ - SQObject o = stack_get(v, idx); - if(sq_type(o) == OT_CLOSURE) { - SQClosure *c = _closure(o); - SQFunctionProto *proto = c->_function; - *nparams = proto->_nparameters; - *nfreevars = proto->_noutervalues; - return SQ_OK; - } - else if(sq_type(o) == OT_NATIVECLOSURE) - { - SQNativeClosure *c = _nativeclosure(o); - *nparams = c->_nparamscheck; - *nfreevars = (SQInteger)c->_noutervalues; - return SQ_OK; - } - return sq_throwerror(v,_SC("the object is not a closure")); -} - -SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name) -{ - SQObject o = stack_get(v, idx); - if(sq_isnativeclosure(o)) { - SQNativeClosure *nc = _nativeclosure(o); - nc->_name = SQString::Create(_ss(v),name); - return SQ_OK; - } - return sq_throwerror(v,_SC("the object is not a nativeclosure")); -} - -SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask) -{ - SQObject o = stack_get(v, -1); - if(!sq_isnativeclosure(o)) - return sq_throwerror(v, _SC("native closure expected")); - SQNativeClosure *nc = _nativeclosure(o); - nc->_nparamscheck = nparamscheck; - if(typemask) { - SQIntVec res; - if(!CompileTypemask(res, typemask)) - return sq_throwerror(v, _SC("invalid typemask")); - nc->_typecheck.copy(res); - } - else { - nc->_typecheck.resize(0); - } - if(nparamscheck == SQ_MATCHTYPEMASKSTRING) { - nc->_nparamscheck = nc->_typecheck.size(); - } - return SQ_OK; -} - -SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v,idx); - if(!sq_isnativeclosure(o) && - !sq_isclosure(o)) - return sq_throwerror(v,_SC("the target is not a closure")); - SQObjectPtr &env = stack_get(v,-1); - if(!sq_istable(env) && - !sq_isarray(env) && - !sq_isclass(env) && - !sq_isinstance(env)) - return sq_throwerror(v,_SC("invalid environment")); - SQWeakRef *w = _refcounted(env)->GetWeakRef(sq_type(env)); - SQObjectPtr ret; - if(sq_isclosure(o)) { - SQClosure *c = _closure(o)->Clone(); - __ObjRelease(c->_env); - c->_env = w; - __ObjAddRef(c->_env); - if(_closure(o)->_base) { - c->_base = _closure(o)->_base; - __ObjAddRef(c->_base); - } - ret = c; - } - else { //then must be a native closure - SQNativeClosure *c = _nativeclosure(o)->Clone(); - __ObjRelease(c->_env); - c->_env = w; - __ObjAddRef(c->_env); - ret = c; - } - v->Pop(); - v->Push(ret); - return SQ_OK; -} - -SQRESULT sq_getclosurename(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v,idx); - if(!sq_isnativeclosure(o) && - !sq_isclosure(o)) - return sq_throwerror(v,_SC("the target is not a closure")); - if(sq_isnativeclosure(o)) - { - v->Push(_nativeclosure(o)->_name); - } - else { //closure - v->Push(_closure(o)->_function->_name); - } - return SQ_OK; -} - -SQRESULT sq_setclosureroot(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &c = stack_get(v,idx); - SQObject o = stack_get(v, -1); - if(!sq_isclosure(c)) return sq_throwerror(v, _SC("closure expected")); - if(sq_istable(o)) { - _closure(c)->SetRoot(_table(o)->GetWeakRef(OT_TABLE)); - v->Pop(); - return SQ_OK; - } - return sq_throwerror(v, _SC("invalid type")); -} - -SQRESULT sq_getclosureroot(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &c = stack_get(v,idx); - if(!sq_isclosure(c)) return sq_throwerror(v, _SC("closure expected")); - v->Push(_closure(c)->_root->_obj); - return SQ_OK; -} - -SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx) -{ - SQObject &o=stack_get(v,idx); - switch(sq_type(o)) { - case OT_TABLE: _table(o)->Clear(); break; - case OT_ARRAY: _array(o)->Resize(0); break; - default: - return sq_throwerror(v, _SC("clear only works on table and array")); - break; - - } - return SQ_OK; -} - -void sq_pushroottable(HSQUIRRELVM v) -{ - v->Push(v->_roottable); -} - -void sq_pushregistrytable(HSQUIRRELVM v) -{ - v->Push(_ss(v)->_registry); -} - -void sq_pushconsttable(HSQUIRRELVM v) -{ - v->Push(_ss(v)->_consts); -} - -SQRESULT sq_setroottable(HSQUIRRELVM v) -{ - SQObject o = stack_get(v, -1); - if(sq_istable(o) || sq_isnull(o)) { - v->_roottable = o; - v->Pop(); - return SQ_OK; - } - return sq_throwerror(v, _SC("invalid type")); -} - -SQRESULT sq_setconsttable(HSQUIRRELVM v) -{ - SQObject o = stack_get(v, -1); - if(sq_istable(o)) { - _ss(v)->_consts = o; - v->Pop(); - return SQ_OK; - } - return sq_throwerror(v, _SC("invalid type, expected table")); -} - -void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p) -{ - v->_foreignptr = p; -} - -SQUserPointer sq_getforeignptr(HSQUIRRELVM v) -{ - return v->_foreignptr; -} - -void sq_setsharedforeignptr(HSQUIRRELVM v,SQUserPointer p) -{ - _ss(v)->_foreignptr = p; -} - -SQUserPointer sq_getsharedforeignptr(HSQUIRRELVM v) -{ - return _ss(v)->_foreignptr; -} - -void sq_setvmreleasehook(HSQUIRRELVM v,SQRELEASEHOOK hook) -{ - v->_releasehook = hook; -} - -SQRELEASEHOOK sq_getvmreleasehook(HSQUIRRELVM v) -{ - return v->_releasehook; -} - -void sq_setsharedreleasehook(HSQUIRRELVM v,SQRELEASEHOOK hook) -{ - _ss(v)->_releasehook = hook; -} - -SQRELEASEHOOK sq_getsharedreleasehook(HSQUIRRELVM v) -{ - return _ss(v)->_releasehook; -} - -void sq_push(HSQUIRRELVM v,SQInteger idx) -{ - v->Push(stack_get(v, idx)); -} - -SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx) -{ - return sq_type(stack_get(v, idx)); -} - -SQRESULT sq_typeof(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v, idx); - SQObjectPtr res; - if(!v->TypeOf(o,res)) { - return SQ_ERROR; - } - v->Push(res); - return SQ_OK; -} - -SQRESULT sq_tostring(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v, idx); - SQObjectPtr res; - if(!v->ToString(o,res)) { - return SQ_ERROR; - } - v->Push(res); - return SQ_OK; -} - -void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool *b) -{ - SQObjectPtr &o = stack_get(v, idx); - *b = SQVM::IsFalse(o)?SQFalse:SQTrue; -} - -SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i) -{ - SQObjectPtr &o = stack_get(v, idx); - if(sq_isnumeric(o)) { - *i = tointeger(o); - return SQ_OK; - } - if(sq_isbool(o)) { - *i = SQVM::IsFalse(o)?SQFalse:SQTrue; - return SQ_OK; - } - return SQ_ERROR; -} - -SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f) -{ - SQObjectPtr &o = stack_get(v, idx); - if(sq_isnumeric(o)) { - *f = tofloat(o); - return SQ_OK; - } - return SQ_ERROR; -} - -SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *b) -{ - SQObjectPtr &o = stack_get(v, idx); - if(sq_isbool(o)) { - *b = _integer(o); - return SQ_OK; - } - return SQ_ERROR; -} - -SQRESULT sq_getstringandsize(HSQUIRRELVM v,SQInteger idx,const SQChar **c,SQInteger *size) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_STRING,o); - *c = _stringval(*o); - *size = _string(*o)->_len; - return SQ_OK; -} - -SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_STRING,o); - *c = _stringval(*o); - return SQ_OK; -} - -SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_THREAD,o); - *thread = _thread(*o); - return SQ_OK; -} - -SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v,idx); - v->PushNull(); - if(!v->Clone(o, stack_get(v, -1))){ - v->Pop(); - return SQ_ERROR; - } - return SQ_OK; -} - -SQInteger sq_getsize(HSQUIRRELVM v, SQInteger idx) -{ - SQObjectPtr &o = stack_get(v, idx); - SQObjectType type = sq_type(o); - switch(type) { - case OT_STRING: return _string(o)->_len; - case OT_TABLE: return _table(o)->CountUsed(); - case OT_ARRAY: return _array(o)->Size(); - case OT_USERDATA: return _userdata(o)->_size; - case OT_INSTANCE: return _instance(o)->_class->_udsize; - case OT_CLASS: return _class(o)->_udsize; - default: - return sq_aux_invalidtype(v, type); - } -} - -SQHash sq_gethash(HSQUIRRELVM v, SQInteger idx) -{ - SQObjectPtr &o = stack_get(v, idx); - return HashObj(o); -} - -SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_USERDATA,o); - (*p) = _userdataval(*o); - if(typetag) *typetag = _userdata(*o)->_typetag; - return SQ_OK; -} - -SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag) -{ - SQObjectPtr &o = stack_get(v,idx); - switch(sq_type(o)) { - case OT_USERDATA: _userdata(o)->_typetag = typetag; break; - case OT_CLASS: _class(o)->_typetag = typetag; break; - default: return sq_throwerror(v,_SC("invalid object type")); - } - return SQ_OK; -} - -SQRESULT sq_getobjtypetag(const HSQOBJECT *o,SQUserPointer * typetag) -{ - switch(sq_type(*o)) { - case OT_INSTANCE: *typetag = _instance(*o)->_class->_typetag; break; - case OT_USERDATA: *typetag = _userdata(*o)->_typetag; break; - case OT_CLASS: *typetag = _class(*o)->_typetag; break; - default: return SQ_ERROR; - } - return SQ_OK; -} - -SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag) -{ - SQObjectPtr &o = stack_get(v,idx); - if (SQ_FAILED(sq_getobjtypetag(&o, typetag))) - return SQ_ERROR;// this is not an error it should be a bool but would break backward compatibility - return SQ_OK; -} - -SQRESULT sq_getuserpointer(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_USERPOINTER,o); - (*p) = _userpointer(*o); - return SQ_OK; -} - -SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p) -{ - SQObjectPtr &o = stack_get(v,idx); - if(sq_type(o) != OT_INSTANCE) return sq_throwerror(v,_SC("the object is not a class instance")); - _instance(o)->_userpointer = p; - return SQ_OK; -} - -SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize) -{ - SQObjectPtr &o = stack_get(v,idx); - if(sq_type(o) != OT_CLASS) return sq_throwerror(v,_SC("the object is not a class")); - if(_class(o)->_locked) return sq_throwerror(v,_SC("the class is locked")); - _class(o)->_udsize = udsize; - return SQ_OK; -} - - -SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p, SQUserPointer typetag, SQBool throwerror) -{ - SQObjectPtr &o = stack_get(v, idx); - if (sq_type(o) != OT_INSTANCE) return throwerror ? sq_throwerror(v, _SC("the object is not a class instance")) : SQ_ERROR; - (*p) = _instance(o)->_userpointer; - if (typetag != 0) { - SQClass *cl = _instance(o)->_class; - do { - if (cl->_typetag == typetag) - return SQ_OK; - cl = cl->_base; - } while (cl != NULL); - return throwerror ? sq_throwerror(v, _SC("invalid type tag")) : SQ_ERROR; - } - return SQ_OK; -} - -SQInteger sq_gettop(HSQUIRRELVM v) -{ - return (v->_top) - v->_stackbase; -} - -void sq_settop(HSQUIRRELVM v, SQInteger newtop) -{ - SQInteger top = sq_gettop(v); - if(top > newtop) - sq_pop(v, top - newtop); - else - while(top++ < newtop) sq_pushnull(v); -} - -void sq_pop(HSQUIRRELVM v, SQInteger nelemstopop) -{ - assert(v->_top >= nelemstopop); - v->Pop(nelemstopop); -} - -void sq_poptop(HSQUIRRELVM v) -{ - assert(v->_top >= 1); - v->Pop(); -} - - -void sq_remove(HSQUIRRELVM v, SQInteger idx) -{ - v->Remove(idx); -} - -SQInteger sq_cmp(HSQUIRRELVM v) -{ - SQInteger res; - v->ObjCmp(stack_get(v, -1), stack_get(v, -2),res); - return res; -} - -SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic) -{ - sq_aux_paramscheck(v, 3); - SQObjectPtr &self = stack_get(v, idx); - if(sq_type(self) == OT_TABLE || sq_type(self) == OT_CLASS) { - SQObjectPtr &key = v->GetUp(-2); - if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null is not a valid key")); - v->NewSlot(self, key, v->GetUp(-1),bstatic?true:false); - v->Pop(2); - } - return SQ_OK; -} - -SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval) -{ - sq_aux_paramscheck(v, 2); - SQObjectPtr *self; - _GETSAFE_OBJ(v, idx, OT_TABLE,self); - SQObjectPtr &key = v->GetUp(-1); - if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null is not a valid key")); - SQObjectPtr res; - if(!v->DeleteSlot(*self, key, res)){ - v->Pop(); - return SQ_ERROR; - } - if(pushval) v->GetUp(-1) = res; - else v->Pop(); - return SQ_OK; -} - -SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self = stack_get(v, idx); - if(v->Set(self, v->GetUp(-2), v->GetUp(-1),DONT_FALL_BACK)) { - v->Pop(2); - return SQ_OK; - } - return SQ_ERROR; -} - -SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self = stack_get(v, idx); - SQObjectPtr &key = v->GetUp(-2); - if(sq_type(key) == OT_NULL) { - v->Pop(2); - return sq_throwerror(v, _SC("null key")); - } - switch(sq_type(self)) { - case OT_TABLE: - _table(self)->NewSlot(key, v->GetUp(-1)); - v->Pop(2); - return SQ_OK; - break; - case OT_CLASS: - _class(self)->NewSlot(_ss(v), key, v->GetUp(-1),false); - v->Pop(2); - return SQ_OK; - break; - case OT_INSTANCE: - if(_instance(self)->Set(key, v->GetUp(-1))) { - v->Pop(2); - return SQ_OK; - } - break; - case OT_ARRAY: - if(v->Set(self, key, v->GetUp(-1),false)) { - v->Pop(2); - return SQ_OK; - } - break; - default: - v->Pop(2); - return sq_throwerror(v, _SC("rawset works only on array/table/class and instance")); - } - v->Raise_IdxError(v->GetUp(-2));return SQ_ERROR; -} - -SQRESULT sq_newmember(HSQUIRRELVM v,SQInteger idx,SQBool bstatic) -{ - SQObjectPtr &self = stack_get(v, idx); - if(sq_type(self) != OT_CLASS) return sq_throwerror(v, _SC("new member only works with classes")); - SQObjectPtr &key = v->GetUp(-3); - if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null key")); - if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,false)) { - v->Pop(3); - return SQ_ERROR; - } - v->Pop(3); - return SQ_OK; -} - -SQRESULT sq_rawnewmember(HSQUIRRELVM v,SQInteger idx,SQBool bstatic) -{ - SQObjectPtr &self = stack_get(v, idx); - if(sq_type(self) != OT_CLASS) return sq_throwerror(v, _SC("new member only works with classes")); - SQObjectPtr &key = v->GetUp(-3); - if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null key")); - if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,true)) { - v->Pop(3); - return SQ_ERROR; - } - v->Pop(3); - return SQ_OK; -} - -SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self = stack_get(v, idx); - SQObjectPtr &mt = v->GetUp(-1); - SQObjectType type = sq_type(self); - switch(type) { - case OT_TABLE: - if(sq_type(mt) == OT_TABLE) { - if(!_table(self)->SetDelegate(_table(mt))) { - return sq_throwerror(v, _SC("delegate cycle")); - } - v->Pop(); - } - else if(sq_type(mt)==OT_NULL) { - _table(self)->SetDelegate(NULL); v->Pop(); } - else return sq_aux_invalidtype(v,type); - break; - case OT_USERDATA: - if(sq_type(mt)==OT_TABLE) { - _userdata(self)->SetDelegate(_table(mt)); v->Pop(); } - else if(sq_type(mt)==OT_NULL) { - _userdata(self)->SetDelegate(NULL); v->Pop(); } - else return sq_aux_invalidtype(v, type); - break; - default: - return sq_aux_invalidtype(v, type); - break; - } - return SQ_OK; -} - -SQRESULT sq_rawdeleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval) -{ - sq_aux_paramscheck(v, 2); - SQObjectPtr *self; - _GETSAFE_OBJ(v, idx, OT_TABLE,self); - SQObjectPtr &key = v->GetUp(-1); - SQObjectPtr t; - if(_table(*self)->Get(key,t)) { - _table(*self)->Remove(key); - } - if(pushval != 0) - v->GetUp(-1) = t; - else - v->Pop(); - return SQ_OK; -} - -SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self=stack_get(v,idx); - switch(sq_type(self)){ - case OT_TABLE: - case OT_USERDATA: - if(!_delegable(self)->_delegate){ - v->PushNull(); - break; - } - v->Push(SQObjectPtr(_delegable(self)->_delegate)); - break; - default: return sq_throwerror(v,_SC("wrong type")); break; - } - return SQ_OK; - -} - -SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self=stack_get(v,idx); - SQObjectPtr &obj = v->GetUp(-1); - if(v->Get(self,obj,obj,false,DONT_FALL_BACK)) - return SQ_OK; - v->Pop(); - return SQ_ERROR; -} - -SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &self=stack_get(v,idx); - SQObjectPtr &obj = v->GetUp(-1); - switch(sq_type(self)) { - case OT_TABLE: - if(_table(self)->Get(obj,obj)) - return SQ_OK; - break; - case OT_CLASS: - if(_class(self)->Get(obj,obj)) - return SQ_OK; - break; - case OT_INSTANCE: - if(_instance(self)->Get(obj,obj)) - return SQ_OK; - break; - case OT_ARRAY:{ - if(sq_isnumeric(obj)){ - if(_array(self)->Get(tointeger(obj),obj)) { - return SQ_OK; - } - } - else { - v->Pop(); - return sq_throwerror(v,_SC("invalid index type for an array")); - } - } - break; - default: - v->Pop(); - return sq_throwerror(v,_SC("rawget works only on array/table/instance and class")); - } - v->Pop(); - return sq_throwerror(v,_SC("the index doesn't exist")); -} - -SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po) -{ - *po=stack_get(v,idx); - return SQ_OK; -} - -const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx) -{ - SQUnsignedInteger cstksize=v->_callsstacksize; - SQUnsignedInteger lvl=(cstksize-level)-1; - SQInteger stackbase=v->_stackbase; - if(lvl_callsstack[(cstksize-i)-1]; - stackbase-=ci._prevstkbase; - } - SQVM::CallInfo &ci=v->_callsstack[lvl]; - if(sq_type(ci._closure)!=OT_CLOSURE) - return NULL; - SQClosure *c=_closure(ci._closure); - SQFunctionProto *func=c->_function; - if(func->_noutervalues > (SQInteger)idx) { - v->Push(*_outer(c->_outervalues[idx])->_valptr); - return _stringval(func->_outervalues[idx]._name); - } - idx -= func->_noutervalues; - return func->GetLocal(v,stackbase,idx,(SQInteger)(ci._ip-func->_instructions)-1); - } - return NULL; -} - -void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj) -{ - v->Push(SQObjectPtr(obj)); -} - -void sq_resetobject(HSQOBJECT *po) -{ - po->_unVal.pUserPointer=NULL;po->_type=OT_NULL; -} - -SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err) -{ - v->_lasterror=SQString::Create(_ss(v),err); - return SQ_ERROR; -} - -SQRESULT sq_throwobject(HSQUIRRELVM v) -{ - v->_lasterror = v->GetUp(-1); - v->Pop(); - return SQ_ERROR; -} - - -void sq_reseterror(HSQUIRRELVM v) -{ - v->_lasterror.Null(); -} - -void sq_getlasterror(HSQUIRRELVM v) -{ - v->Push(v->_lasterror); -} - -SQRESULT sq_reservestack(HSQUIRRELVM v,SQInteger nsize) -{ - if (((SQUnsignedInteger)v->_top + nsize) > v->_stack.size()) { - if(v->_nmetamethodscall) { - return sq_throwerror(v,_SC("cannot resize stack while in a metamethod")); - } - v->_stack.resize(v->_stack.size() + ((v->_top + nsize) - v->_stack.size())); - } - return SQ_OK; -} - -SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror) -{ - if (sq_type(v->GetUp(-1)) == OT_GENERATOR) - { - v->PushNull(); //retval - if (!v->Execute(v->GetUp(-2), 0, v->_top, v->GetUp(-1), raiseerror, SQVM::ET_RESUME_GENERATOR)) - {v->Raise_Error(v->_lasterror); return SQ_ERROR;} - if(!retval) - v->Pop(); - return SQ_OK; - } - return sq_throwerror(v,_SC("only generators can be resumed")); -} - -SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror) -{ - SQObjectPtr res; - if(!v->Call(v->GetUp(-(params+1)),params,v->_top-params,res,raiseerror?true:false)){ - v->Pop(params); //pop args - return SQ_ERROR; - } - if(!v->_suspended) - v->Pop(params); //pop args - if(retval) - v->Push(res); // push result - return SQ_OK; -} - -SQRESULT sq_tailcall(HSQUIRRELVM v, SQInteger nparams) -{ - SQObjectPtr &res = v->GetUp(-(nparams + 1)); - if (sq_type(res) != OT_CLOSURE) { - return sq_throwerror(v, _SC("only closure can be tail called")); - } - SQClosure *clo = _closure(res); - if (clo->_function->_bgenerator) - { - return sq_throwerror(v, _SC("generators cannot be tail called")); - } - - SQInteger stackbase = (v->_top - nparams) - v->_stackbase; - if (!v->TailCall(clo, stackbase, nparams)) { - return SQ_ERROR; - } - return SQ_TAILCALL_FLAG; -} - -SQRESULT sq_suspendvm(HSQUIRRELVM v) -{ - return v->Suspend(); -} - -SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseerror,SQBool throwerror) -{ - SQObjectPtr ret; - if(!v->_suspended) - return sq_throwerror(v,_SC("cannot resume a vm that is not running any code")); - SQInteger target = v->_suspended_target; - if(wakeupret) { - if(target != -1) { - v->GetAt(v->_stackbase+v->_suspended_target)=v->GetUp(-1); //retval - } - v->Pop(); - } else if(target != -1) { v->GetAt(v->_stackbase+v->_suspended_target).Null(); } - SQObjectPtr dummy; - if(!v->Execute(dummy,-1,-1,ret,raiseerror,throwerror?SQVM::ET_RESUME_THROW_VM : SQVM::ET_RESUME_VM)) { - return SQ_ERROR; - } - if(retval) - v->Push(ret); - return SQ_OK; -} - -void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook) -{ - SQObjectPtr &ud=stack_get(v,idx); - switch(sq_type(ud) ) { - case OT_USERDATA: _userdata(ud)->_hook = hook; break; - case OT_INSTANCE: _instance(ud)->_hook = hook; break; - case OT_CLASS: _class(ud)->_hook = hook; break; - default: return; - } -} - -SQRELEASEHOOK sq_getreleasehook(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &ud=stack_get(v,idx); - switch(sq_type(ud) ) { - case OT_USERDATA: return _userdata(ud)->_hook; break; - case OT_INSTANCE: return _instance(ud)->_hook; break; - case OT_CLASS: return _class(ud)->_hook; break; - default: return NULL; - } -} - -void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f) -{ - _ss(v)->_compilererrorhandler = f; -} - -SQRESULT sq_writeclosure(HSQUIRRELVM v,SQWRITEFUNC w,SQUserPointer up) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, -1, OT_CLOSURE,o); - unsigned short tag = SQ_BYTECODE_STREAM_TAG; - if(_closure(*o)->_function->_noutervalues) - return sq_throwerror(v,_SC("a closure with free variables bound cannot be serialized")); - if(w(up,&tag,2) != 2) - return sq_throwerror(v,_SC("io error")); - if(!_closure(*o)->Save(v,up,w)) - return SQ_ERROR; - return SQ_OK; -} - -SQRESULT sq_readclosure(HSQUIRRELVM v,SQREADFUNC r,SQUserPointer up) -{ - SQObjectPtr closure; - - unsigned short tag; - if(r(up,&tag,2) != 2) - return sq_throwerror(v,_SC("io error")); - if(tag != SQ_BYTECODE_STREAM_TAG) - return sq_throwerror(v,_SC("invalid stream")); - if(!SQClosure::Load(v,up,r,closure)) - return SQ_ERROR; - v->Push(closure); - return SQ_OK; -} - -SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize) -{ - return _ss(v)->GetScratchPad(minsize); -} - -SQRESULT sq_resurrectunreachable(HSQUIRRELVM v) -{ -#ifndef NO_GARBAGE_COLLECTOR - _ss(v)->ResurrectUnreachable(v); - return SQ_OK; -#else - return sq_throwerror(v,_SC("sq_resurrectunreachable requires a garbage collector build")); -#endif -} - -SQInteger sq_collectgarbage(HSQUIRRELVM v) -{ -#ifndef NO_GARBAGE_COLLECTOR - return _ss(v)->CollectGarbage(v); -#else - return -1; -#endif -} - -SQRESULT sq_getcallee(HSQUIRRELVM v) -{ - if(v->_callsstacksize > 1) - { - v->Push(v->_callsstack[v->_callsstacksize - 2]._closure); - return SQ_OK; - } - return sq_throwerror(v,_SC("no closure in the calls stack")); -} - -const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval) -{ - SQObjectPtr &self=stack_get(v,idx); - const SQChar *name = NULL; - switch(sq_type(self)) - { - case OT_CLOSURE:{ - SQClosure *clo = _closure(self); - SQFunctionProto *fp = clo->_function; - if(((SQUnsignedInteger)fp->_noutervalues) > nval) { - v->Push(*(_outer(clo->_outervalues[nval])->_valptr)); - SQOuterVar &ov = fp->_outervalues[nval]; - name = _stringval(ov._name); - } - } - break; - case OT_NATIVECLOSURE:{ - SQNativeClosure *clo = _nativeclosure(self); - if(clo->_noutervalues > nval) { - v->Push(clo->_outervalues[nval]); - name = _SC("@NATIVE"); - } - } - break; - default: break; //shutup compiler - } - return name; -} - -SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval) -{ - SQObjectPtr &self=stack_get(v,idx); - switch(sq_type(self)) - { - case OT_CLOSURE:{ - SQFunctionProto *fp = _closure(self)->_function; - if(((SQUnsignedInteger)fp->_noutervalues) > nval){ - *(_outer(_closure(self)->_outervalues[nval])->_valptr) = stack_get(v,-1); - } - else return sq_throwerror(v,_SC("invalid free var index")); - } - break; - case OT_NATIVECLOSURE: - if(_nativeclosure(self)->_noutervalues > nval){ - _nativeclosure(self)->_outervalues[nval] = stack_get(v,-1); - } - else return sq_throwerror(v,_SC("invalid free var index")); - break; - default: - return sq_aux_invalidtype(v, sq_type(self)); - } - v->Pop(); - return SQ_OK; -} - -SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_CLASS,o); - SQObjectPtr &key = stack_get(v,-2); - SQObjectPtr &val = stack_get(v,-1); - SQObjectPtr attrs; - if(sq_type(key) == OT_NULL) { - attrs = _class(*o)->_attributes; - _class(*o)->_attributes = val; - v->Pop(2); - v->Push(attrs); - return SQ_OK; - }else if(_class(*o)->GetAttributes(key,attrs)) { - _class(*o)->SetAttributes(key,val); - v->Pop(2); - v->Push(attrs); - return SQ_OK; - } - return sq_throwerror(v,_SC("wrong index")); -} - -SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_CLASS,o); - SQObjectPtr &key = stack_get(v,-1); - SQObjectPtr attrs; - if(sq_type(key) == OT_NULL) { - attrs = _class(*o)->_attributes; - v->Pop(); - v->Push(attrs); - return SQ_OK; - } - else if(_class(*o)->GetAttributes(key,attrs)) { - v->Pop(); - v->Push(attrs); - return SQ_OK; - } - return sq_throwerror(v,_SC("wrong index")); -} - -SQRESULT sq_getmemberhandle(HSQUIRRELVM v,SQInteger idx,HSQMEMBERHANDLE *handle) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_CLASS,o); - SQObjectPtr &key = stack_get(v,-1); - SQTable *m = _class(*o)->_members; - SQObjectPtr val; - if(m->Get(key,val)) { - handle->_static = _isfield(val) ? SQFalse : SQTrue; - handle->_index = _member_idx(val); - v->Pop(); - return SQ_OK; - } - return sq_throwerror(v,_SC("wrong index")); -} - -SQRESULT _getmemberbyhandle(HSQUIRRELVM v,SQObjectPtr &self,const HSQMEMBERHANDLE *handle,SQObjectPtr *&val) -{ - switch(sq_type(self)) { - case OT_INSTANCE: { - SQInstance *i = _instance(self); - if(handle->_static) { - SQClass *c = i->_class; - val = &c->_methods[handle->_index].val; - } - else { - val = &i->_values[handle->_index]; - - } - } - break; - case OT_CLASS: { - SQClass *c = _class(self); - if(handle->_static) { - val = &c->_methods[handle->_index].val; - } - else { - val = &c->_defaultvalues[handle->_index].val; - } - } - break; - default: - return sq_throwerror(v,_SC("wrong type(expected class or instance)")); - } - return SQ_OK; -} - -SQRESULT sq_getbyhandle(HSQUIRRELVM v,SQInteger idx,const HSQMEMBERHANDLE *handle) -{ - SQObjectPtr &self = stack_get(v,idx); - SQObjectPtr *val = NULL; - if(SQ_FAILED(_getmemberbyhandle(v,self,handle,val))) { - return SQ_ERROR; - } - v->Push(_realval(*val)); - return SQ_OK; -} - -SQRESULT sq_setbyhandle(HSQUIRRELVM v,SQInteger idx,const HSQMEMBERHANDLE *handle) -{ - SQObjectPtr &self = stack_get(v,idx); - SQObjectPtr &newval = stack_get(v,-1); - SQObjectPtr *val = NULL; - if(SQ_FAILED(_getmemberbyhandle(v,self,handle,val))) { - return SQ_ERROR; - } - *val = newval; - v->Pop(); - return SQ_OK; -} - -SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_CLASS,o); - if(_class(*o)->_base) - v->Push(SQObjectPtr(_class(*o)->_base)); - else - v->PushNull(); - return SQ_OK; -} - -SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_INSTANCE,o); - v->Push(SQObjectPtr(_instance(*o)->_class)); - return SQ_OK; -} - -SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr *o = NULL; - _GETSAFE_OBJ(v, idx, OT_CLASS,o); - v->Push(_class(*o)->CreateInstance()); - return SQ_OK; -} - -void sq_weakref(HSQUIRRELVM v,SQInteger idx) -{ - SQObject &o=stack_get(v,idx); - if(ISREFCOUNTED(sq_type(o))) { - v->Push(_refcounted(o)->GetWeakRef(sq_type(o))); - return; - } - v->Push(o); -} - -SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr &o = stack_get(v,idx); - if(sq_type(o) != OT_WEAKREF) { - return sq_throwerror(v,_SC("the object must be a weakref")); - } - v->Push(_weakref(o)->_obj); - return SQ_OK; -} - -SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t) -{ - SQSharedState *ss = _ss(v); - switch(t) { - case OT_TABLE: v->Push(ss->_table_default_delegate); break; - case OT_ARRAY: v->Push(ss->_array_default_delegate); break; - case OT_STRING: v->Push(ss->_string_default_delegate); break; - case OT_INTEGER: case OT_FLOAT: v->Push(ss->_number_default_delegate); break; - case OT_GENERATOR: v->Push(ss->_generator_default_delegate); break; - case OT_CLOSURE: case OT_NATIVECLOSURE: v->Push(ss->_closure_default_delegate); break; - case OT_THREAD: v->Push(ss->_thread_default_delegate); break; - case OT_CLASS: v->Push(ss->_class_default_delegate); break; - case OT_INSTANCE: v->Push(ss->_instance_default_delegate); break; - case OT_WEAKREF: v->Push(ss->_weakref_default_delegate); break; - default: return sq_throwerror(v,_SC("the type doesn't have a default delegate")); - } - return SQ_OK; -} - -SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx) -{ - SQObjectPtr o=stack_get(v,idx),&refpos = stack_get(v,-1),realkey,val; - if(sq_type(o) == OT_GENERATOR) { - return sq_throwerror(v,_SC("cannot iterate a generator")); - } - int faketojump; - if(!v->FOREACH_OP(o,realkey,val,refpos,0,666,faketojump)) - return SQ_ERROR; - if(faketojump != 666) { - v->Push(realkey); - v->Push(val); - return SQ_OK; - } - return SQ_ERROR; -} - -struct BufState{ - const SQChar *buf; - SQInteger ptr; - SQInteger size; -}; - -SQInteger buf_lexfeed(SQUserPointer file) -{ - BufState *buf=(BufState*)file; - if(buf->size<(buf->ptr+1)) - return 0; - return buf->buf[buf->ptr++]; -} - -SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror) { - BufState buf; - buf.buf = s; - buf.size = size; - buf.ptr = 0; - return sq_compile(v, buf_lexfeed, &buf, sourcename, raiseerror); -} - -void sq_move(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx) -{ - dest->Push(stack_get(src,idx)); -} - -void sq_setprintfunc(HSQUIRRELVM v, SQPRINTFUNCTION printfunc,SQPRINTFUNCTION errfunc) -{ - _ss(v)->_printfunc = printfunc; - _ss(v)->_errorfunc = errfunc; -} - -SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v) -{ - return _ss(v)->_printfunc; -} - -SQPRINTFUNCTION sq_geterrorfunc(HSQUIRRELVM v) -{ - return _ss(v)->_errorfunc; -} - -void *sq_malloc(SQUnsignedInteger size) -{ - return SQ_MALLOC(size); -} - -void *sq_realloc(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize) -{ - return SQ_REALLOC(p,oldsize,newsize); -} - -void sq_free(void *p,SQUnsignedInteger size) -{ - SQ_FREE(p,size); -} diff --git a/m_packages/squirrel/squirrel/sqarray.h b/m_packages/squirrel/squirrel/sqarray.h deleted file mode 100644 index 7c6c2049..00000000 --- a/m_packages/squirrel/squirrel/sqarray.h +++ /dev/null @@ -1,94 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQARRAY_H_ -#define _SQARRAY_H_ - -struct SQArray : public CHAINABLE_OBJ -{ -private: - SQArray(SQSharedState *ss,SQInteger nsize){_values.resize(nsize); INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);} - ~SQArray() - { - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); - } -public: - static SQArray* Create(SQSharedState *ss,SQInteger nInitialSize){ - SQArray *newarray=(SQArray*)SQ_MALLOC(sizeof(SQArray)); - new (newarray) SQArray(ss,nInitialSize); - return newarray; - } -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - SQObjectType GetType() {return OT_ARRAY;} -#endif - void Finalize(){ - _values.resize(0); - } - bool Get(const SQInteger nidx,SQObjectPtr &val) - { - if(nidx>=0 && nidx<(SQInteger)_values.size()){ - SQObjectPtr &o = _values[nidx]; - val = _realval(o); - return true; - } - else return false; - } - bool Set(const SQInteger nidx,const SQObjectPtr &val) - { - if(nidx>=0 && nidx<(SQInteger)_values.size()){ - _values[nidx]=val; - return true; - } - else return false; - } - SQInteger Next(const SQObjectPtr &refpos,SQObjectPtr &outkey,SQObjectPtr &outval) - { - SQUnsignedInteger idx=TranslateIndex(refpos); - while(idx<_values.size()){ - //first found - outkey=(SQInteger)idx; - SQObjectPtr &o = _values[idx]; - outval = _realval(o); - //return idx for the next iteration - return ++idx; - } - //nothing to iterate anymore - return -1; - } - SQArray *Clone(){SQArray *anew=Create(_opt_ss(this),0); anew->_values.copy(_values); return anew; } - SQInteger Size() const {return _values.size();} - void Resize(SQInteger size) - { - SQObjectPtr _null; - Resize(size,_null); - } - void Resize(SQInteger size,SQObjectPtr &fill) { _values.resize(size,fill); ShrinkIfNeeded(); } - void Reserve(SQInteger size) { _values.reserve(size); } - void Append(const SQObject &o){_values.push_back(o);} - void Extend(const SQArray *a); - SQObjectPtr &Top(){return _values.top();} - void Pop(){_values.pop_back(); ShrinkIfNeeded(); } - bool Insert(SQInteger idx,const SQObject &val){ - if(idx < 0 || idx > (SQInteger)_values.size()) - return false; - _values.insert(idx,val); - return true; - } - void ShrinkIfNeeded() { - if(_values.size() <= _values.capacity()>>2) //shrink the array - _values.shrinktofit(); - } - bool Remove(SQInteger idx){ - if(idx < 0 || idx >= (SQInteger)_values.size()) - return false; - _values.remove(idx); - ShrinkIfNeeded(); - return true; - } - void Release() - { - sq_delete(this,SQArray); - } - - SQObjectPtrVec _values; -}; -#endif //_SQARRAY_H_ diff --git a/m_packages/squirrel/squirrel/sqbaselib.cpp b/m_packages/squirrel/squirrel/sqbaselib.cpp deleted file mode 100644 index 5055f18a..00000000 --- a/m_packages/squirrel/squirrel/sqbaselib.cpp +++ /dev/null @@ -1,1404 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqvm.h" -#include "sqstring.h" -#include "sqtable.h" -#include "sqarray.h" -#include "sqfuncproto.h" -#include "sqclosure.h" -#include "sqclass.h" -#include -#include -#include - -static bool str2num(const SQChar *s,SQObjectPtr &res,SQInteger base) -{ - SQChar *end; - const SQChar *e = s; - bool iseintbase = base > 13; //to fix error converting hexadecimals with e like 56f0791e - bool isfloat = false; - SQChar c; - while((c = *e) != _SC('\0')) - { - if (c == _SC('.') || (!iseintbase && (c == _SC('E') || c == _SC('e')))) { //e and E is for scientific notation - isfloat = true; - break; - } - e++; - } - if(isfloat){ - SQFloat r = SQFloat(scstrtod(s,&end)); - if(s == end) return false; - res = r; - } - else{ - SQInteger r = SQInteger(scstrtol(s,&end,(int)base)); - if(s == end) return false; - res = r; - } - return true; -} - -static SQInteger base_dummy(HSQUIRRELVM SQ_UNUSED_ARG(v)) -{ - return 0; -} - -#ifndef NO_GARBAGE_COLLECTOR -static SQInteger base_collectgarbage(HSQUIRRELVM v) -{ - sq_pushinteger(v, sq_collectgarbage(v)); - return 1; -} -static SQInteger base_resurectureachable(HSQUIRRELVM v) -{ - sq_resurrectunreachable(v); - return 1; -} -#endif - -static SQInteger base_getroottable(HSQUIRRELVM v) -{ - v->Push(v->_roottable); - return 1; -} - -static SQInteger base_getconsttable(HSQUIRRELVM v) -{ - v->Push(_ss(v)->_consts); - return 1; -} - - -static SQInteger base_setroottable(HSQUIRRELVM v) -{ - SQObjectPtr o = v->_roottable; - if(SQ_FAILED(sq_setroottable(v))) return SQ_ERROR; - v->Push(o); - return 1; -} - -static SQInteger base_setconsttable(HSQUIRRELVM v) -{ - SQObjectPtr o = _ss(v)->_consts; - if(SQ_FAILED(sq_setconsttable(v))) return SQ_ERROR; - v->Push(o); - return 1; -} - -static SQInteger base_seterrorhandler(HSQUIRRELVM v) -{ - sq_seterrorhandler(v); - return 0; -} - -static SQInteger base_setdebughook(HSQUIRRELVM v) -{ - sq_setdebughook(v); - return 0; -} - -static SQInteger base_enabledebuginfo(HSQUIRRELVM v) -{ - SQObjectPtr &o=stack_get(v,2); - - sq_enabledebuginfo(v,SQVM::IsFalse(o)?SQFalse:SQTrue); - return 0; -} - -static SQInteger __getcallstackinfos(HSQUIRRELVM v,SQInteger level) -{ - SQStackInfos si; - SQInteger seq = 0; - const SQChar *name = NULL; - - if (SQ_SUCCEEDED(sq_stackinfos(v, level, &si))) - { - const SQChar *fn = _SC("unknown"); - const SQChar *src = _SC("unknown"); - if(si.funcname)fn = si.funcname; - if(si.source)src = si.source; - sq_newtable(v); - sq_pushstring(v, _SC("func"), -1); - sq_pushstring(v, fn, -1); - sq_newslot(v, -3, SQFalse); - sq_pushstring(v, _SC("src"), -1); - sq_pushstring(v, src, -1); - sq_newslot(v, -3, SQFalse); - sq_pushstring(v, _SC("line"), -1); - sq_pushinteger(v, si.line); - sq_newslot(v, -3, SQFalse); - sq_pushstring(v, _SC("locals"), -1); - sq_newtable(v); - seq=0; - while ((name = sq_getlocal(v, level, seq))) { - sq_pushstring(v, name, -1); - sq_push(v, -2); - sq_newslot(v, -4, SQFalse); - sq_pop(v, 1); - seq++; - } - sq_newslot(v, -3, SQFalse); - return 1; - } - - return 0; -} -static SQInteger base_getstackinfos(HSQUIRRELVM v) -{ - SQInteger level; - sq_getinteger(v, -1, &level); - return __getcallstackinfos(v,level); -} - -static SQInteger base_assert(HSQUIRRELVM v) -{ - if(SQVM::IsFalse(stack_get(v,2))){ - SQInteger top = sq_gettop(v); - if (top>2 && SQ_SUCCEEDED(sq_tostring(v,3))) { - const SQChar *str = 0; - if (SQ_SUCCEEDED(sq_getstring(v,-1,&str))) { - return sq_throwerror(v, str); - } - } - return sq_throwerror(v, _SC("assertion failed")); - } - return 0; -} - -static SQInteger get_slice_params(HSQUIRRELVM v,SQInteger &sidx,SQInteger &eidx,SQObjectPtr &o) -{ - SQInteger top = sq_gettop(v); - sidx=0; - eidx=0; - o=stack_get(v,1); - if(top>1){ - SQObjectPtr &start=stack_get(v,2); - if(sq_type(start)!=OT_NULL && sq_isnumeric(start)){ - sidx=tointeger(start); - } - } - if(top>2){ - SQObjectPtr &end=stack_get(v,3); - if(sq_isnumeric(end)){ - eidx=tointeger(end); - } - } - else { - eidx = sq_getsize(v,1); - } - return 1; -} - -static SQInteger base_print(HSQUIRRELVM v) -{ - const SQChar *str; - if(SQ_SUCCEEDED(sq_tostring(v,2))) - { - if(SQ_SUCCEEDED(sq_getstring(v,-1,&str))) { - if(_ss(v)->_printfunc) _ss(v)->_printfunc(v,_SC("%s"),str); - return 0; - } - } - return SQ_ERROR; -} - -static SQInteger base_error(HSQUIRRELVM v) -{ - const SQChar *str; - if(SQ_SUCCEEDED(sq_tostring(v,2))) - { - if(SQ_SUCCEEDED(sq_getstring(v,-1,&str))) { - if(_ss(v)->_errorfunc) _ss(v)->_errorfunc(v,_SC("%s"),str); - return 0; - } - } - return SQ_ERROR; -} - -static SQInteger base_compilestring(HSQUIRRELVM v) -{ - SQInteger nargs=sq_gettop(v); - const SQChar *src=NULL,*name=_SC("unnamedbuffer"); - SQInteger size; - sq_getstring(v,2,&src); - size=sq_getsize(v,2); - if(nargs>2){ - sq_getstring(v,3,&name); - } - if(SQ_SUCCEEDED(sq_compilebuffer(v,src,size,name,SQFalse))) - return 1; - else - return SQ_ERROR; -} - -static SQInteger base_newthread(HSQUIRRELVM v) -{ - SQObjectPtr &func = stack_get(v,2); - SQInteger stksize = (_closure(func)->_function->_stacksize << 1) +2; - HSQUIRRELVM newv = sq_newthread(v, (stksize < MIN_STACK_OVERHEAD + 2)? MIN_STACK_OVERHEAD + 2 : stksize); - sq_move(newv,v,-2); - return 1; -} - -static SQInteger base_suspend(HSQUIRRELVM v) -{ - return sq_suspendvm(v); -} - -static SQInteger base_array(HSQUIRRELVM v) -{ - SQArray *a; - SQObject &size = stack_get(v,2); - if(sq_gettop(v) > 2) { - a = SQArray::Create(_ss(v),0); - a->Resize(tointeger(size),stack_get(v,3)); - } - else { - a = SQArray::Create(_ss(v),tointeger(size)); - } - v->Push(a); - return 1; -} - -static SQInteger base_type(HSQUIRRELVM v) -{ - SQObjectPtr &o = stack_get(v,2); - v->Push(SQString::Create(_ss(v),GetTypeName(o),-1)); - return 1; -} - -static SQInteger base_callee(HSQUIRRELVM v) -{ - if(v->_callsstacksize > 1) - { - v->Push(v->_callsstack[v->_callsstacksize - 2]._closure); - return 1; - } - return sq_throwerror(v,_SC("no closure in the calls stack")); -} - -static const SQRegFunction base_funcs[]={ - //generic - {_SC("seterrorhandler"),base_seterrorhandler,2, NULL}, - {_SC("setdebughook"),base_setdebughook,2, NULL}, - {_SC("enabledebuginfo"),base_enabledebuginfo,2, NULL}, - {_SC("getstackinfos"),base_getstackinfos,2, _SC(".n")}, - {_SC("getroottable"),base_getroottable,1, NULL}, - {_SC("setroottable"),base_setroottable,2, NULL}, - {_SC("getconsttable"),base_getconsttable,1, NULL}, - {_SC("setconsttable"),base_setconsttable,2, NULL}, - {_SC("assert"),base_assert,-2, NULL}, - {_SC("print"),base_print,2, NULL}, - {_SC("error"),base_error,2, NULL}, - {_SC("compilestring"),base_compilestring,-2, _SC(".ss")}, - {_SC("newthread"),base_newthread,2, _SC(".c")}, - {_SC("suspend"),base_suspend,-1, NULL}, - {_SC("array"),base_array,-2, _SC(".n")}, - {_SC("type"),base_type,2, NULL}, - {_SC("callee"),base_callee,0,NULL}, - {_SC("dummy"),base_dummy,0,NULL}, -#ifndef NO_GARBAGE_COLLECTOR - {_SC("collectgarbage"),base_collectgarbage,0, NULL}, - {_SC("resurrectunreachable"),base_resurectureachable,0, NULL}, -#endif - {NULL,(SQFUNCTION)0,0,NULL} -}; - -void sq_base_register(HSQUIRRELVM v) -{ - SQInteger i=0; - sq_pushroottable(v); - while(base_funcs[i].name!=0) { - sq_pushstring(v,base_funcs[i].name,-1); - sq_newclosure(v,base_funcs[i].f,0); - sq_setnativeclosurename(v,-1,base_funcs[i].name); - sq_setparamscheck(v,base_funcs[i].nparamscheck,base_funcs[i].typemask); - sq_newslot(v,-3, SQFalse); - i++; - } - - sq_pushstring(v,_SC("_versionnumber_"),-1); - sq_pushinteger(v,SQUIRREL_VERSION_NUMBER); - sq_newslot(v,-3, SQFalse); - sq_pushstring(v,_SC("_version_"),-1); - sq_pushstring(v,SQUIRREL_VERSION,-1); - sq_newslot(v,-3, SQFalse); - sq_pushstring(v,_SC("_charsize_"),-1); - sq_pushinteger(v,sizeof(SQChar)); - sq_newslot(v,-3, SQFalse); - sq_pushstring(v,_SC("_intsize_"),-1); - sq_pushinteger(v,sizeof(SQInteger)); - sq_newslot(v,-3, SQFalse); - sq_pushstring(v,_SC("_floatsize_"),-1); - sq_pushinteger(v,sizeof(SQFloat)); - sq_newslot(v,-3, SQFalse); - sq_pop(v,1); -} - -static SQInteger default_delegate_len(HSQUIRRELVM v) -{ - v->Push(SQInteger(sq_getsize(v,1))); - return 1; -} - -static SQInteger default_delegate_tofloat(HSQUIRRELVM v) -{ - SQObjectPtr &o=stack_get(v,1); - switch(sq_type(o)){ - case OT_STRING:{ - SQObjectPtr res; - if(str2num(_stringval(o),res,10)){ - v->Push(SQObjectPtr(tofloat(res))); - break; - }} - return sq_throwerror(v, _SC("cannot convert the string")); - break; - case OT_INTEGER:case OT_FLOAT: - v->Push(SQObjectPtr(tofloat(o))); - break; - case OT_BOOL: - v->Push(SQObjectPtr((SQFloat)(_integer(o)?1:0))); - break; - default: - v->PushNull(); - break; - } - return 1; -} - -static SQInteger default_delegate_tointeger(HSQUIRRELVM v) -{ - SQObjectPtr &o=stack_get(v,1); - SQInteger base = 10; - if(sq_gettop(v) > 1) { - sq_getinteger(v,2,&base); - } - switch(sq_type(o)){ - case OT_STRING:{ - SQObjectPtr res; - if(str2num(_stringval(o),res,base)){ - v->Push(SQObjectPtr(tointeger(res))); - break; - }} - return sq_throwerror(v, _SC("cannot convert the string")); - break; - case OT_INTEGER:case OT_FLOAT: - v->Push(SQObjectPtr(tointeger(o))); - break; - case OT_BOOL: - v->Push(SQObjectPtr(_integer(o)?(SQInteger)1:(SQInteger)0)); - break; - default: - v->PushNull(); - break; - } - return 1; -} - -static SQInteger default_delegate_tostring(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_tostring(v,1))) - return SQ_ERROR; - return 1; -} - -static SQInteger obj_delegate_weakref(HSQUIRRELVM v) -{ - sq_weakref(v,1); - return 1; -} - -static SQInteger obj_clear(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_clear(v,-1)) ? 1 : SQ_ERROR; -} - - -static SQInteger number_delegate_tochar(HSQUIRRELVM v) -{ - SQObject &o=stack_get(v,1); - SQChar c = (SQChar)tointeger(o); - v->Push(SQString::Create(_ss(v),(const SQChar *)&c,1)); - return 1; -} - - - -///////////////////////////////////////////////////////////////// -//TABLE DEFAULT DELEGATE - -static SQInteger table_rawdelete(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_rawdeleteslot(v,1,SQTrue))) - return SQ_ERROR; - return 1; -} - - -static SQInteger container_rawexists(HSQUIRRELVM v) -{ - if(SQ_SUCCEEDED(sq_rawget(v,-2))) { - sq_pushbool(v,SQTrue); - return 1; - } - sq_pushbool(v,SQFalse); - return 1; -} - -static SQInteger container_rawset(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_rawset(v,-3)) ? 1 : SQ_ERROR; -} - - -static SQInteger container_rawget(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_rawget(v,-2))?1:SQ_ERROR; -} - -static SQInteger table_setdelegate(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_setdelegate(v,-2))) - return SQ_ERROR; - sq_push(v,-1); // -1 because sq_setdelegate pops 1 - return 1; -} - -static SQInteger table_getdelegate(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_getdelegate(v,-1))?1:SQ_ERROR; -} - -static SQInteger table_filter(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - SQTable *tbl = _table(o); - SQObjectPtr ret = SQTable::Create(_ss(v),0); - - SQObjectPtr itr, key, val; - SQInteger nitr; - while((nitr = tbl->Next(false, itr, key, val)) != -1) { - itr = (SQInteger)nitr; - - v->Push(o); - v->Push(key); - v->Push(val); - if(SQ_FAILED(sq_call(v,3,SQTrue,SQFalse))) { - return SQ_ERROR; - } - if(!SQVM::IsFalse(v->GetUp(-1))) { - _table(ret)->NewSlot(key, val); - } - v->Pop(); - } - - v->Push(ret); - return 1; -} - -static SQInteger table_map(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v, 1); - SQTable *tbl = _table(o); - SQInteger nitr, n = 0; - SQInteger nitems = tbl->CountUsed(); - SQObjectPtr ret = SQArray::Create(_ss(v), nitems); - SQObjectPtr itr, key, val; - while ((nitr = tbl->Next(false, itr, key, val)) != -1) { - itr = (SQInteger)nitr; - - v->Push(o); - v->Push(key); - v->Push(val); - if (SQ_FAILED(sq_call(v, 3, SQTrue, SQFalse))) { - return SQ_ERROR; - } - _array(ret)->Set(n, v->GetUp(-1)); - v->Pop(); - n++; - } - - v->Push(ret); - return 1; -} - -#define TABLE_TO_ARRAY_FUNC(_funcname_,_valname_) static SQInteger _funcname_(HSQUIRRELVM v) \ -{ \ - SQObject &o = stack_get(v, 1); \ - SQTable *t = _table(o); \ - SQObjectPtr itr, key, val; \ - SQObjectPtr _null; \ - SQInteger nitr, n = 0; \ - SQInteger nitems = t->CountUsed(); \ - SQArray *a = SQArray::Create(_ss(v), nitems); \ - a->Resize(nitems, _null); \ - if (nitems) { \ - while ((nitr = t->Next(false, itr, key, val)) != -1) { \ - itr = (SQInteger)nitr; \ - a->Set(n, _valname_); \ - n++; \ - } \ - } \ - v->Push(a); \ - return 1; \ -} - -TABLE_TO_ARRAY_FUNC(table_keys, key) -TABLE_TO_ARRAY_FUNC(table_values, val) - - -const SQRegFunction SQSharedState::_table_default_delegate_funcz[]={ - {_SC("len"),default_delegate_len,1, _SC("t")}, - {_SC("rawget"),container_rawget,2, _SC("t")}, - {_SC("rawset"),container_rawset,3, _SC("t")}, - {_SC("rawdelete"),table_rawdelete,2, _SC("t")}, - {_SC("rawin"),container_rawexists,2, _SC("t")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("clear"),obj_clear,1, _SC(".")}, - {_SC("setdelegate"),table_setdelegate,2, _SC(".t|o")}, - {_SC("getdelegate"),table_getdelegate,1, _SC(".")}, - {_SC("filter"),table_filter,2, _SC("tc")}, - {_SC("map"),table_map,2, _SC("tc") }, - {_SC("keys"),table_keys,1, _SC("t") }, - {_SC("values"),table_values,1, _SC("t") }, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//ARRAY DEFAULT DELEGATE/////////////////////////////////////// - -static SQInteger array_append(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_arrayappend(v,-2)) ? 1 : SQ_ERROR; -} - -static SQInteger array_extend(HSQUIRRELVM v) -{ - _array(stack_get(v,1))->Extend(_array(stack_get(v,2))); - sq_pop(v,1); - return 1; -} - -static SQInteger array_reverse(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_arrayreverse(v,-1)) ? 1 : SQ_ERROR; -} - -static SQInteger array_pop(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_arraypop(v,1,SQTrue))?1:SQ_ERROR; -} - -static SQInteger array_top(HSQUIRRELVM v) -{ - SQObject &o=stack_get(v,1); - if(_array(o)->Size()>0){ - v->Push(_array(o)->Top()); - return 1; - } - else return sq_throwerror(v,_SC("top() on a empty array")); -} - -static SQInteger array_insert(HSQUIRRELVM v) -{ - SQObject &o=stack_get(v,1); - SQObject &idx=stack_get(v,2); - SQObject &val=stack_get(v,3); - if(!_array(o)->Insert(tointeger(idx),val)) - return sq_throwerror(v,_SC("index out of range")); - sq_pop(v,2); - return 1; -} - -static SQInteger array_remove(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v, 1); - SQObject &idx = stack_get(v, 2); - if(!sq_isnumeric(idx)) return sq_throwerror(v, _SC("wrong type")); - SQObjectPtr val; - if(_array(o)->Get(tointeger(idx), val)) { - _array(o)->Remove(tointeger(idx)); - v->Push(val); - return 1; - } - return sq_throwerror(v, _SC("idx out of range")); -} - -static SQInteger array_resize(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v, 1); - SQObject &nsize = stack_get(v, 2); - SQObjectPtr fill; - if(sq_isnumeric(nsize)) { - SQInteger sz = tointeger(nsize); - if (sz<0) - return sq_throwerror(v, _SC("resizing to negative length")); - - if(sq_gettop(v) > 2) - fill = stack_get(v, 3); - _array(o)->Resize(sz,fill); - sq_settop(v, 1); - return 1; - } - return sq_throwerror(v, _SC("size must be a number")); -} - -static SQInteger __map_array(SQArray *dest,SQArray *src,HSQUIRRELVM v) { - SQObjectPtr temp; - SQInteger size = src->Size(); - SQObject &closure = stack_get(v, 2); - v->Push(closure); - - SQInteger nArgs = 0; - if(sq_type(closure) == OT_CLOSURE) { - nArgs = _closure(closure)->_function->_nparameters; - } - else if (sq_type(closure) == OT_NATIVECLOSURE) { - SQInteger nParamsCheck = _nativeclosure(closure)->_nparamscheck; - if (nParamsCheck > 0) - nArgs = nParamsCheck; - else // push all params when there is no check or only minimal count set - nArgs = 4; - } - - for(SQInteger n = 0; n < size; n++) { - src->Get(n,temp); - v->Push(src); - v->Push(temp); - if (nArgs >= 3) - v->Push(SQObjectPtr(n)); - if (nArgs >= 4) - v->Push(src); - if(SQ_FAILED(sq_call(v,nArgs,SQTrue,SQFalse))) { - return SQ_ERROR; - } - dest->Set(n,v->GetUp(-1)); - v->Pop(); - } - v->Pop(); - return 0; -} - -static SQInteger array_map(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - SQInteger size = _array(o)->Size(); - SQObjectPtr ret = SQArray::Create(_ss(v),size); - if(SQ_FAILED(__map_array(_array(ret),_array(o),v))) - return SQ_ERROR; - v->Push(ret); - return 1; -} - -static SQInteger array_apply(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - if(SQ_FAILED(__map_array(_array(o),_array(o),v))) - return SQ_ERROR; - sq_pop(v,1); - return 1; -} - -static SQInteger array_reduce(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - SQArray *a = _array(o); - SQInteger size = a->Size(); - SQObjectPtr res; - SQInteger iterStart; - if (sq_gettop(v)>2) { - res = stack_get(v,3); - iterStart = 0; - } else if (size==0) { - return 0; - } else { - a->Get(0,res); - iterStart = 1; - } - if (size > iterStart) { - SQObjectPtr other; - v->Push(stack_get(v,2)); - for (SQInteger n = iterStart; n < size; n++) { - a->Get(n,other); - v->Push(o); - v->Push(res); - v->Push(other); - if(SQ_FAILED(sq_call(v,3,SQTrue,SQFalse))) { - return SQ_ERROR; - } - res = v->GetUp(-1); - v->Pop(); - } - v->Pop(); - } - v->Push(res); - return 1; -} - -static SQInteger array_filter(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - SQArray *a = _array(o); - SQObjectPtr ret = SQArray::Create(_ss(v),0); - SQInteger size = a->Size(); - SQObjectPtr val; - for(SQInteger n = 0; n < size; n++) { - a->Get(n,val); - v->Push(o); - v->Push(n); - v->Push(val); - if(SQ_FAILED(sq_call(v,3,SQTrue,SQFalse))) { - return SQ_ERROR; - } - if(!SQVM::IsFalse(v->GetUp(-1))) { - _array(ret)->Append(val); - } - v->Pop(); - } - v->Push(ret); - return 1; -} - -static SQInteger array_find(HSQUIRRELVM v) -{ - SQObject &o = stack_get(v,1); - SQObjectPtr &val = stack_get(v,2); - SQArray *a = _array(o); - SQInteger size = a->Size(); - SQObjectPtr temp; - for(SQInteger n = 0; n < size; n++) { - bool res = false; - a->Get(n,temp); - if(SQVM::IsEqual(temp,val,res) && res) { - v->Push(n); - return 1; - } - } - return 0; -} - - -static bool _sort_compare(HSQUIRRELVM v, SQArray *arr, SQObjectPtr &a,SQObjectPtr &b,SQInteger func,SQInteger &ret) -{ - if(func < 0) { - if(!v->ObjCmp(a,b,ret)) return false; - } - else { - SQInteger top = sq_gettop(v); - sq_push(v, func); - sq_pushroottable(v); - v->Push(a); - v->Push(b); - SQObjectPtr *valptr = arr->_values._vals; - SQUnsignedInteger precallsize = arr->_values.size(); - if(SQ_FAILED(sq_call(v, 3, SQTrue, SQFalse))) { - if(!sq_isstring( v->_lasterror)) - v->Raise_Error(_SC("compare func failed")); - return false; - } - if(SQ_FAILED(sq_getinteger(v, -1, &ret))) { - v->Raise_Error(_SC("numeric value expected as return value of the compare function")); - return false; - } - if (precallsize != arr->_values.size() || valptr != arr->_values._vals) { - v->Raise_Error(_SC("array resized during sort operation")); - return false; - } - sq_settop(v, top); - return true; - } - return true; -} - -static bool _hsort_sift_down(HSQUIRRELVM v,SQArray *arr, SQInteger root, SQInteger bottom, SQInteger func) -{ - SQInteger maxChild; - SQInteger done = 0; - SQInteger ret; - SQInteger root2; - while (((root2 = root * 2) <= bottom) && (!done)) - { - if (root2 == bottom) { - maxChild = root2; - } - else { - if(!_sort_compare(v,arr,arr->_values[root2],arr->_values[root2 + 1],func,ret)) - return false; - if (ret > 0) { - maxChild = root2; - } - else { - maxChild = root2 + 1; - } - } - - if(!_sort_compare(v,arr,arr->_values[root],arr->_values[maxChild],func,ret)) - return false; - if (ret < 0) { - if (root == maxChild) { - v->Raise_Error(_SC("inconsistent compare function")); - return false; // We'd be swapping ourselve. The compare function is incorrect - } - - _Swap(arr->_values[root],arr->_values[maxChild]); - root = maxChild; - } - else { - done = 1; - } - } - return true; -} - -static bool _hsort(HSQUIRRELVM v,SQObjectPtr &arr, SQInteger SQ_UNUSED_ARG(l), SQInteger SQ_UNUSED_ARG(r),SQInteger func) -{ - SQArray *a = _array(arr); - SQInteger i; - SQInteger array_size = a->Size(); - for (i = (array_size / 2); i >= 0; i--) { - if(!_hsort_sift_down(v,a, i, array_size - 1,func)) return false; - } - - for (i = array_size-1; i >= 1; i--) - { - _Swap(a->_values[0],a->_values[i]); - if(!_hsort_sift_down(v,a, 0, i-1,func)) return false; - } - return true; -} - -static SQInteger array_sort(HSQUIRRELVM v) -{ - SQInteger func = -1; - SQObjectPtr &o = stack_get(v,1); - if(_array(o)->Size() > 1) { - if(sq_gettop(v) == 2) func = 2; - if(!_hsort(v, o, 0, _array(o)->Size()-1, func)) - return SQ_ERROR; - - } - sq_settop(v,1); - return 1; -} - -static SQInteger array_slice(HSQUIRRELVM v) -{ - SQInteger sidx,eidx; - SQObjectPtr o; - if(get_slice_params(v,sidx,eidx,o)==-1)return -1; - SQInteger alen = _array(o)->Size(); - if(sidx < 0)sidx = alen + sidx; - if(eidx < 0)eidx = alen + eidx; - if(eidx < sidx)return sq_throwerror(v,_SC("wrong indexes")); - if(eidx > alen || sidx < 0)return sq_throwerror(v, _SC("slice out of range")); - SQArray *arr=SQArray::Create(_ss(v),eidx-sidx); - SQObjectPtr t; - SQInteger count=0; - for(SQInteger i=sidx;iGet(i,t); - arr->Set(count++,t); - } - v->Push(arr); - return 1; - -} - -const SQRegFunction SQSharedState::_array_default_delegate_funcz[]={ - {_SC("len"),default_delegate_len,1, _SC("a")}, - {_SC("append"),array_append,2, _SC("a")}, - {_SC("extend"),array_extend,2, _SC("aa")}, - {_SC("push"),array_append,2, _SC("a")}, - {_SC("pop"),array_pop,1, _SC("a")}, - {_SC("top"),array_top,1, _SC("a")}, - {_SC("insert"),array_insert,3, _SC("an")}, - {_SC("remove"),array_remove,2, _SC("an")}, - {_SC("resize"),array_resize,-2, _SC("an")}, - {_SC("reverse"),array_reverse,1, _SC("a")}, - {_SC("sort"),array_sort,-1, _SC("ac")}, - {_SC("slice"),array_slice,-1, _SC("ann")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("clear"),obj_clear,1, _SC(".")}, - {_SC("map"),array_map,2, _SC("ac")}, - {_SC("apply"),array_apply,2, _SC("ac")}, - {_SC("reduce"),array_reduce,-2, _SC("ac.")}, - {_SC("filter"),array_filter,2, _SC("ac")}, - {_SC("find"),array_find,2, _SC("a.")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//STRING DEFAULT DELEGATE////////////////////////// -static SQInteger string_slice(HSQUIRRELVM v) -{ - SQInteger sidx,eidx; - SQObjectPtr o; - if(SQ_FAILED(get_slice_params(v,sidx,eidx,o)))return -1; - SQInteger slen = _string(o)->_len; - if(sidx < 0)sidx = slen + sidx; - if(eidx < 0)eidx = slen + eidx; - if(eidx < sidx) return sq_throwerror(v,_SC("wrong indexes")); - if(eidx > slen || sidx < 0) return sq_throwerror(v, _SC("slice out of range")); - v->Push(SQString::Create(_ss(v),&_stringval(o)[sidx],eidx-sidx)); - return 1; -} - -static SQInteger string_find(HSQUIRRELVM v) -{ - SQInteger top,start_idx=0; - const SQChar *str,*substr,*ret; - if(((top=sq_gettop(v))>1) && SQ_SUCCEEDED(sq_getstring(v,1,&str)) && SQ_SUCCEEDED(sq_getstring(v,2,&substr))){ - if(top>2)sq_getinteger(v,3,&start_idx); - if((sq_getsize(v,1)>start_idx) && (start_idx>=0)){ - ret=scstrstr(&str[start_idx],substr); - if(ret){ - sq_pushinteger(v,(SQInteger)(ret-str)); - return 1; - } - } - return 0; - } - return sq_throwerror(v,_SC("invalid param")); -} - -#define STRING_TOFUNCZ(func) static SQInteger string_##func(HSQUIRRELVM v) \ -{\ - SQInteger sidx,eidx; \ - SQObjectPtr str; \ - if(SQ_FAILED(get_slice_params(v,sidx,eidx,str)))return -1; \ - SQInteger slen = _string(str)->_len; \ - if(sidx < 0)sidx = slen + sidx; \ - if(eidx < 0)eidx = slen + eidx; \ - if(eidx < sidx) return sq_throwerror(v,_SC("wrong indexes")); \ - if(eidx > slen || sidx < 0) return sq_throwerror(v,_SC("slice out of range")); \ - SQInteger len=_string(str)->_len; \ - const SQChar *sthis=_stringval(str); \ - SQChar *snew=(_ss(v)->GetScratchPad(sq_rsl(len))); \ - memcpy(snew,sthis,sq_rsl(len));\ - for(SQInteger i=sidx;iPush(SQString::Create(_ss(v),snew,len)); \ - return 1; \ -} - - -STRING_TOFUNCZ(tolower) -STRING_TOFUNCZ(toupper) - -const SQRegFunction SQSharedState::_string_default_delegate_funcz[]={ - {_SC("len"),default_delegate_len,1, _SC("s")}, - {_SC("tointeger"),default_delegate_tointeger,-1, _SC("sn")}, - {_SC("tofloat"),default_delegate_tofloat,1, _SC("s")}, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("slice"),string_slice,-1, _SC("s n n")}, - {_SC("find"),string_find,-2, _SC("s s n")}, - {_SC("tolower"),string_tolower,-1, _SC("s n n")}, - {_SC("toupper"),string_toupper,-1, _SC("s n n")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//INTEGER DEFAULT DELEGATE////////////////////////// -const SQRegFunction SQSharedState::_number_default_delegate_funcz[]={ - {_SC("tointeger"),default_delegate_tointeger,1, _SC("n|b")}, - {_SC("tofloat"),default_delegate_tofloat,1, _SC("n|b")}, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("tochar"),number_delegate_tochar,1, _SC("n|b")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//CLOSURE DEFAULT DELEGATE////////////////////////// -static SQInteger closure_pcall(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_call(v,sq_gettop(v)-1,SQTrue,SQFalse))?1:SQ_ERROR; -} - -static SQInteger closure_call(HSQUIRRELVM v) -{ - SQObjectPtr &c = stack_get(v, -1); - if (sq_type(c) == OT_CLOSURE && (_closure(c)->_function->_bgenerator == false)) - { - return sq_tailcall(v, sq_gettop(v) - 1); - } - return SQ_SUCCEEDED(sq_call(v, sq_gettop(v) - 1, SQTrue, SQTrue)) ? 1 : SQ_ERROR; -} - -static SQInteger _closure_acall(HSQUIRRELVM v,SQBool raiseerror) -{ - SQArray *aparams=_array(stack_get(v,2)); - SQInteger nparams=aparams->Size(); - v->Push(stack_get(v,1)); - for(SQInteger i=0;iPush(aparams->_values[i]); - return SQ_SUCCEEDED(sq_call(v,nparams,SQTrue,raiseerror))?1:SQ_ERROR; -} - -static SQInteger closure_acall(HSQUIRRELVM v) -{ - return _closure_acall(v,SQTrue); -} - -static SQInteger closure_pacall(HSQUIRRELVM v) -{ - return _closure_acall(v,SQFalse); -} - -static SQInteger closure_bindenv(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_bindenv(v,1))) - return SQ_ERROR; - return 1; -} - -static SQInteger closure_getroot(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_getclosureroot(v,-1))) - return SQ_ERROR; - return 1; -} - -static SQInteger closure_setroot(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_setclosureroot(v,-2))) - return SQ_ERROR; - return 1; -} - -static SQInteger closure_getinfos(HSQUIRRELVM v) { - SQObject o = stack_get(v,1); - SQTable *res = SQTable::Create(_ss(v),4); - if(sq_type(o) == OT_CLOSURE) { - SQFunctionProto *f = _closure(o)->_function; - SQInteger nparams = f->_nparameters + (f->_varparams?1:0); - SQObjectPtr params = SQArray::Create(_ss(v),nparams); - SQObjectPtr defparams = SQArray::Create(_ss(v),f->_ndefaultparams); - for(SQInteger n = 0; n_nparameters; n++) { - _array(params)->Set((SQInteger)n,f->_parameters[n]); - } - for(SQInteger j = 0; j_ndefaultparams; j++) { - _array(defparams)->Set((SQInteger)j,_closure(o)->_defaultparams[j]); - } - if(f->_varparams) { - _array(params)->Set(nparams-1,SQString::Create(_ss(v),_SC("..."),-1)); - } - res->NewSlot(SQString::Create(_ss(v),_SC("native"),-1),false); - res->NewSlot(SQString::Create(_ss(v),_SC("name"),-1),f->_name); - res->NewSlot(SQString::Create(_ss(v),_SC("src"),-1),f->_sourcename); - res->NewSlot(SQString::Create(_ss(v),_SC("parameters"),-1),params); - res->NewSlot(SQString::Create(_ss(v),_SC("varargs"),-1),f->_varparams); - res->NewSlot(SQString::Create(_ss(v),_SC("defparams"),-1),defparams); - } - else { //OT_NATIVECLOSURE - SQNativeClosure *nc = _nativeclosure(o); - res->NewSlot(SQString::Create(_ss(v),_SC("native"),-1),true); - res->NewSlot(SQString::Create(_ss(v),_SC("name"),-1),nc->_name); - res->NewSlot(SQString::Create(_ss(v),_SC("paramscheck"),-1),nc->_nparamscheck); - SQObjectPtr typecheck; - if(nc->_typecheck.size() > 0) { - typecheck = - SQArray::Create(_ss(v), nc->_typecheck.size()); - for(SQUnsignedInteger n = 0; n_typecheck.size(); n++) { - _array(typecheck)->Set((SQInteger)n,nc->_typecheck[n]); - } - } - res->NewSlot(SQString::Create(_ss(v),_SC("typecheck"),-1),typecheck); - } - v->Push(res); - return 1; -} - - - -const SQRegFunction SQSharedState::_closure_default_delegate_funcz[]={ - {_SC("call"),closure_call,-1, _SC("c")}, - {_SC("pcall"),closure_pcall,-1, _SC("c")}, - {_SC("acall"),closure_acall,2, _SC("ca")}, - {_SC("pacall"),closure_pacall,2, _SC("ca")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("bindenv"),closure_bindenv,2, _SC("c x|y|t")}, - {_SC("getinfos"),closure_getinfos,1, _SC("c")}, - {_SC("getroot"),closure_getroot,1, _SC("c")}, - {_SC("setroot"),closure_setroot,2, _SC("ct")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//GENERATOR DEFAULT DELEGATE -static SQInteger generator_getstatus(HSQUIRRELVM v) -{ - SQObject &o=stack_get(v,1); - switch(_generator(o)->_state){ - case SQGenerator::eSuspended:v->Push(SQString::Create(_ss(v),_SC("suspended")));break; - case SQGenerator::eRunning:v->Push(SQString::Create(_ss(v),_SC("running")));break; - case SQGenerator::eDead:v->Push(SQString::Create(_ss(v),_SC("dead")));break; - } - return 1; -} - -const SQRegFunction SQSharedState::_generator_default_delegate_funcz[]={ - {_SC("getstatus"),generator_getstatus,1, _SC("g")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -//THREAD DEFAULT DELEGATE -static SQInteger thread_call(HSQUIRRELVM v) -{ - SQObjectPtr o = stack_get(v,1); - if(sq_type(o) == OT_THREAD) { - SQInteger nparams = sq_gettop(v); - sq_reservestack(_thread(o), nparams + 3); - _thread(o)->Push(_thread(o)->_roottable); - for(SQInteger i = 2; i<(nparams+1); i++) - sq_move(_thread(o),v,i); - if(SQ_SUCCEEDED(sq_call(_thread(o),nparams,SQTrue,SQTrue))) { - sq_move(v,_thread(o),-1); - sq_pop(_thread(o),1); - return 1; - } - v->_lasterror = _thread(o)->_lasterror; - return SQ_ERROR; - } - return sq_throwerror(v,_SC("wrong parameter")); -} - -static SQInteger thread_wakeup(HSQUIRRELVM v) -{ - SQObjectPtr o = stack_get(v,1); - if(sq_type(o) == OT_THREAD) { - SQVM *thread = _thread(o); - SQInteger state = sq_getvmstate(thread); - if(state != SQ_VMSTATE_SUSPENDED) { - switch(state) { - case SQ_VMSTATE_IDLE: - return sq_throwerror(v,_SC("cannot wakeup a idle thread")); - break; - case SQ_VMSTATE_RUNNING: - return sq_throwerror(v,_SC("cannot wakeup a running thread")); - break; - } - } - - SQInteger wakeupret = sq_gettop(v)>1?SQTrue:SQFalse; - if(wakeupret) { - sq_move(thread,v,2); - } - if(SQ_SUCCEEDED(sq_wakeupvm(thread,wakeupret,SQTrue,SQTrue,SQFalse))) { - sq_move(v,thread,-1); - sq_pop(thread,1); //pop retval - if(sq_getvmstate(thread) == SQ_VMSTATE_IDLE) { - sq_settop(thread,1); //pop roottable - } - return 1; - } - sq_settop(thread,1); - v->_lasterror = thread->_lasterror; - return SQ_ERROR; - } - return sq_throwerror(v,_SC("wrong parameter")); -} - -static SQInteger thread_wakeupthrow(HSQUIRRELVM v) -{ - SQObjectPtr o = stack_get(v,1); - if(sq_type(o) == OT_THREAD) { - SQVM *thread = _thread(o); - SQInteger state = sq_getvmstate(thread); - if(state != SQ_VMSTATE_SUSPENDED) { - switch(state) { - case SQ_VMSTATE_IDLE: - return sq_throwerror(v,_SC("cannot wakeup a idle thread")); - break; - case SQ_VMSTATE_RUNNING: - return sq_throwerror(v,_SC("cannot wakeup a running thread")); - break; - } - } - - sq_move(thread,v,2); - sq_throwobject(thread); - SQBool rethrow_error = SQTrue; - if(sq_gettop(v) > 2) { - sq_getbool(v,3,&rethrow_error); - } - if(SQ_SUCCEEDED(sq_wakeupvm(thread,SQFalse,SQTrue,SQTrue,SQTrue))) { - sq_move(v,thread,-1); - sq_pop(thread,1); //pop retval - if(sq_getvmstate(thread) == SQ_VMSTATE_IDLE) { - sq_settop(thread,1); //pop roottable - } - return 1; - } - sq_settop(thread,1); - if(rethrow_error) { - v->_lasterror = thread->_lasterror; - return SQ_ERROR; - } - return SQ_OK; - } - return sq_throwerror(v,_SC("wrong parameter")); -} - -static SQInteger thread_getstatus(HSQUIRRELVM v) -{ - SQObjectPtr &o = stack_get(v,1); - switch(sq_getvmstate(_thread(o))) { - case SQ_VMSTATE_IDLE: - sq_pushstring(v,_SC("idle"),-1); - break; - case SQ_VMSTATE_RUNNING: - sq_pushstring(v,_SC("running"),-1); - break; - case SQ_VMSTATE_SUSPENDED: - sq_pushstring(v,_SC("suspended"),-1); - break; - default: - return sq_throwerror(v,_SC("internal VM error")); - } - return 1; -} - -static SQInteger thread_getstackinfos(HSQUIRRELVM v) -{ - SQObjectPtr o = stack_get(v,1); - if(sq_type(o) == OT_THREAD) { - SQVM *thread = _thread(o); - SQInteger threadtop = sq_gettop(thread); - SQInteger level; - sq_getinteger(v,-1,&level); - SQRESULT res = __getcallstackinfos(thread,level); - if(SQ_FAILED(res)) - { - sq_settop(thread,threadtop); - if(sq_type(thread->_lasterror) == OT_STRING) { - sq_throwerror(v,_stringval(thread->_lasterror)); - } - else { - sq_throwerror(v,_SC("unknown error")); - } - } - if(res > 0) { - //some result - sq_move(v,thread,-1); - sq_settop(thread,threadtop); - return 1; - } - //no result - sq_settop(thread,threadtop); - return 0; - - } - return sq_throwerror(v,_SC("wrong parameter")); -} - -const SQRegFunction SQSharedState::_thread_default_delegate_funcz[] = { - {_SC("call"), thread_call, -1, _SC("v")}, - {_SC("wakeup"), thread_wakeup, -1, _SC("v")}, - {_SC("wakeupthrow"), thread_wakeupthrow, -2, _SC("v.b")}, - {_SC("getstatus"), thread_getstatus, 1, _SC("v")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("getstackinfos"),thread_getstackinfos,2, _SC("vn")}, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -static SQInteger class_getattributes(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_getattributes(v,-2))?1:SQ_ERROR; -} - -static SQInteger class_setattributes(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_setattributes(v,-3))?1:SQ_ERROR; -} - -static SQInteger class_instance(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_createinstance(v,-1))?1:SQ_ERROR; -} - -static SQInteger class_getbase(HSQUIRRELVM v) -{ - return SQ_SUCCEEDED(sq_getbase(v,-1))?1:SQ_ERROR; -} - -static SQInteger class_newmember(HSQUIRRELVM v) -{ - SQInteger top = sq_gettop(v); - SQBool bstatic = SQFalse; - if(top == 5) - { - sq_tobool(v,-1,&bstatic); - sq_pop(v,1); - } - - if(top < 4) { - sq_pushnull(v); - } - return SQ_SUCCEEDED(sq_newmember(v,-4,bstatic))?1:SQ_ERROR; -} - -static SQInteger class_rawnewmember(HSQUIRRELVM v) -{ - SQInteger top = sq_gettop(v); - SQBool bstatic = SQFalse; - if(top == 5) - { - sq_tobool(v,-1,&bstatic); - sq_pop(v,1); - } - - if(top < 4) { - sq_pushnull(v); - } - return SQ_SUCCEEDED(sq_rawnewmember(v,-4,bstatic))?1:SQ_ERROR; -} - -const SQRegFunction SQSharedState::_class_default_delegate_funcz[] = { - {_SC("getattributes"), class_getattributes, 2, _SC("y.")}, - {_SC("setattributes"), class_setattributes, 3, _SC("y..")}, - {_SC("rawget"),container_rawget,2, _SC("y")}, - {_SC("rawset"),container_rawset,3, _SC("y")}, - {_SC("rawin"),container_rawexists,2, _SC("y")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {_SC("instance"),class_instance,1, _SC("y")}, - {_SC("getbase"),class_getbase,1, _SC("y")}, - {_SC("newmember"),class_newmember,-3, _SC("y")}, - {_SC("rawnewmember"),class_rawnewmember,-3, _SC("y")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - - -static SQInteger instance_getclass(HSQUIRRELVM v) -{ - if(SQ_SUCCEEDED(sq_getclass(v,1))) - return 1; - return SQ_ERROR; -} - -const SQRegFunction SQSharedState::_instance_default_delegate_funcz[] = { - {_SC("getclass"), instance_getclass, 1, _SC("x")}, - {_SC("rawget"),container_rawget,2, _SC("x")}, - {_SC("rawset"),container_rawset,3, _SC("x")}, - {_SC("rawin"),container_rawexists,2, _SC("x")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; - -static SQInteger weakref_ref(HSQUIRRELVM v) -{ - if(SQ_FAILED(sq_getweakrefval(v,1))) - return SQ_ERROR; - return 1; -} - -const SQRegFunction SQSharedState::_weakref_default_delegate_funcz[] = { - {_SC("ref"),weakref_ref,1, _SC("r")}, - {_SC("weakref"),obj_delegate_weakref,1, NULL }, - {_SC("tostring"),default_delegate_tostring,1, _SC(".")}, - {NULL,(SQFUNCTION)0,0,NULL} -}; diff --git a/m_packages/squirrel/squirrel/sqclass.cpp b/m_packages/squirrel/squirrel/sqclass.cpp deleted file mode 100644 index 53a29763..00000000 --- a/m_packages/squirrel/squirrel/sqclass.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqvm.h" -#include "sqtable.h" -#include "sqclass.h" -#include "sqfuncproto.h" -#include "sqclosure.h" - - - -SQClass::SQClass(SQSharedState *ss,SQClass *base) -{ - _base = base; - _typetag = 0; - _hook = NULL; - _udsize = 0; - _locked = false; - _constructoridx = -1; - if(_base) { - _constructoridx = _base->_constructoridx; - _udsize = _base->_udsize; - _defaultvalues.copy(base->_defaultvalues); - _methods.copy(base->_methods); - _COPY_VECTOR(_metamethods,base->_metamethods,MT_LAST); - __ObjAddRef(_base); - } - _members = base?base->_members->Clone() : SQTable::Create(ss,0); - __ObjAddRef(_members); - - INIT_CHAIN(); - ADD_TO_CHAIN(&_sharedstate->_gc_chain, this); -} - -void SQClass::Finalize() { - _attributes.Null(); - _NULL_SQOBJECT_VECTOR(_defaultvalues,_defaultvalues.size()); - _methods.resize(0); - _NULL_SQOBJECT_VECTOR(_metamethods,MT_LAST); - __ObjRelease(_members); - if(_base) { - __ObjRelease(_base); - } -} - -SQClass::~SQClass() -{ - REMOVE_FROM_CHAIN(&_sharedstate->_gc_chain, this); - Finalize(); -} - -bool SQClass::NewSlot(SQSharedState *ss,const SQObjectPtr &key,const SQObjectPtr &val,bool bstatic) -{ - SQObjectPtr temp; - bool belongs_to_static_table = sq_type(val) == OT_CLOSURE || sq_type(val) == OT_NATIVECLOSURE || bstatic; - if(_locked && !belongs_to_static_table) - return false; //the class already has an instance so cannot be modified - if(_members->Get(key,temp) && _isfield(temp)) //overrides the default value - { - _defaultvalues[_member_idx(temp)].val = val; - return true; - } - if (_members->CountUsed() >= MEMBER_MAX_COUNT) { - return false; - } - if(belongs_to_static_table) { - SQInteger mmidx; - if((sq_type(val) == OT_CLOSURE || sq_type(val) == OT_NATIVECLOSURE) && - (mmidx = ss->GetMetaMethodIdxByName(key)) != -1) { - _metamethods[mmidx] = val; - } - else { - SQObjectPtr theval = val; - if(_base && sq_type(val) == OT_CLOSURE) { - theval = _closure(val)->Clone(); - _closure(theval)->_base = _base; - __ObjAddRef(_base); //ref for the closure - } - if(sq_type(temp) == OT_NULL) { - bool isconstructor; - SQVM::IsEqual(ss->_constructoridx, key, isconstructor); - if(isconstructor) { - _constructoridx = (SQInteger)_methods.size(); - } - SQClassMember m; - m.val = theval; - _members->NewSlot(key,SQObjectPtr(_make_method_idx(_methods.size()))); - _methods.push_back(m); - } - else { - _methods[_member_idx(temp)].val = theval; - } - } - return true; - } - SQClassMember m; - m.val = val; - _members->NewSlot(key,SQObjectPtr(_make_field_idx(_defaultvalues.size()))); - _defaultvalues.push_back(m); - return true; -} - -SQInstance *SQClass::CreateInstance() -{ - if(!_locked) Lock(); - return SQInstance::Create(_opt_ss(this),this); -} - -SQInteger SQClass::Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval) -{ - SQObjectPtr oval; - SQInteger idx = _members->Next(false,refpos,outkey,oval); - if(idx != -1) { - if(_ismethod(oval)) { - outval = _methods[_member_idx(oval)].val; - } - else { - SQObjectPtr &o = _defaultvalues[_member_idx(oval)].val; - outval = _realval(o); - } - } - return idx; -} - -bool SQClass::SetAttributes(const SQObjectPtr &key,const SQObjectPtr &val) -{ - SQObjectPtr idx; - if(_members->Get(key,idx)) { - if(_isfield(idx)) - _defaultvalues[_member_idx(idx)].attrs = val; - else - _methods[_member_idx(idx)].attrs = val; - return true; - } - return false; -} - -bool SQClass::GetAttributes(const SQObjectPtr &key,SQObjectPtr &outval) -{ - SQObjectPtr idx; - if(_members->Get(key,idx)) { - outval = (_isfield(idx)?_defaultvalues[_member_idx(idx)].attrs:_methods[_member_idx(idx)].attrs); - return true; - } - return false; -} - -/////////////////////////////////////////////////////////////////////// -void SQInstance::Init(SQSharedState *ss) -{ - _userpointer = NULL; - _hook = NULL; - __ObjAddRef(_class); - _delegate = _class->_members; - INIT_CHAIN(); - ADD_TO_CHAIN(&_sharedstate->_gc_chain, this); -} - -SQInstance::SQInstance(SQSharedState *ss, SQClass *c, SQInteger memsize) -{ - _memsize = memsize; - _class = c; - SQUnsignedInteger nvalues = _class->_defaultvalues.size(); - for(SQUnsignedInteger n = 0; n < nvalues; n++) { - new (&_values[n]) SQObjectPtr(_class->_defaultvalues[n].val); - } - Init(ss); -} - -SQInstance::SQInstance(SQSharedState *ss, SQInstance *i, SQInteger memsize) -{ - _memsize = memsize; - _class = i->_class; - SQUnsignedInteger nvalues = _class->_defaultvalues.size(); - for(SQUnsignedInteger n = 0; n < nvalues; n++) { - new (&_values[n]) SQObjectPtr(i->_values[n]); - } - Init(ss); -} - -void SQInstance::Finalize() -{ - SQUnsignedInteger nvalues = _class->_defaultvalues.size(); - __ObjRelease(_class); - _NULL_SQOBJECT_VECTOR(_values,nvalues); -} - -SQInstance::~SQInstance() -{ - REMOVE_FROM_CHAIN(&_sharedstate->_gc_chain, this); - if(_class){ Finalize(); } //if _class is null it was already finalized by the GC -} - -bool SQInstance::GetMetaMethod(SQVM* SQ_UNUSED_ARG(v),SQMetaMethod mm,SQObjectPtr &res) -{ - if(sq_type(_class->_metamethods[mm]) != OT_NULL) { - res = _class->_metamethods[mm]; - return true; - } - return false; -} - -bool SQInstance::InstanceOf(SQClass *trg) -{ - SQClass *parent = _class; - while(parent != NULL) { - if(parent == trg) - return true; - parent = parent->_base; - } - return false; -} diff --git a/m_packages/squirrel/squirrel/sqclass.h b/m_packages/squirrel/squirrel/sqclass.h deleted file mode 100644 index 60d3d21b..00000000 --- a/m_packages/squirrel/squirrel/sqclass.h +++ /dev/null @@ -1,163 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQCLASS_H_ -#define _SQCLASS_H_ - -struct SQInstance; - -struct SQClassMember { - SQObjectPtr val; - SQObjectPtr attrs; - void Null() { - val.Null(); - attrs.Null(); - } -}; - -typedef sqvector SQClassMemberVec; - -#define MEMBER_TYPE_METHOD 0x01000000 -#define MEMBER_TYPE_FIELD 0x02000000 -#define MEMBER_MAX_COUNT 0x00FFFFFF - -#define _ismethod(o) (_integer(o)&MEMBER_TYPE_METHOD) -#define _isfield(o) (_integer(o)&MEMBER_TYPE_FIELD) -#define _make_method_idx(i) ((SQInteger)(MEMBER_TYPE_METHOD|i)) -#define _make_field_idx(i) ((SQInteger)(MEMBER_TYPE_FIELD|i)) -#define _member_type(o) (_integer(o)&0xFF000000) -#define _member_idx(o) (_integer(o)&0x00FFFFFF) - -struct SQClass : public CHAINABLE_OBJ -{ - SQClass(SQSharedState *ss,SQClass *base); -public: - static SQClass* Create(SQSharedState *ss,SQClass *base) { - SQClass *newclass = (SQClass *)SQ_MALLOC(sizeof(SQClass)); - new (newclass) SQClass(ss, base); - return newclass; - } - ~SQClass(); - bool NewSlot(SQSharedState *ss, const SQObjectPtr &key,const SQObjectPtr &val,bool bstatic); - bool Get(const SQObjectPtr &key,SQObjectPtr &val) { - if(_members->Get(key,val)) { - if(_isfield(val)) { - SQObjectPtr &o = _defaultvalues[_member_idx(val)].val; - val = _realval(o); - } - else { - val = _methods[_member_idx(val)].val; - } - return true; - } - return false; - } - bool GetConstructor(SQObjectPtr &ctor) - { - if(_constructoridx != -1) { - ctor = _methods[_constructoridx].val; - return true; - } - return false; - } - bool SetAttributes(const SQObjectPtr &key,const SQObjectPtr &val); - bool GetAttributes(const SQObjectPtr &key,SQObjectPtr &outval); - void Lock() { _locked = true; if(_base) _base->Lock(); } - void Release() { - if (_hook) { _hook(_typetag,0);} - sq_delete(this, SQClass); - } - void Finalize(); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable ** ); - SQObjectType GetType() {return OT_CLASS;} -#endif - SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval); - SQInstance *CreateInstance(); - SQTable *_members; - SQClass *_base; - SQClassMemberVec _defaultvalues; - SQClassMemberVec _methods; - SQObjectPtr _metamethods[MT_LAST]; - SQObjectPtr _attributes; - SQUserPointer _typetag; - SQRELEASEHOOK _hook; - bool _locked; - SQInteger _constructoridx; - SQInteger _udsize; -}; - -#define calcinstancesize(_theclass_) \ - (_theclass_->_udsize + sq_aligning(sizeof(SQInstance) + (sizeof(SQObjectPtr)*(_theclass_->_defaultvalues.size()>0?_theclass_->_defaultvalues.size()-1:0)))) - -struct SQInstance : public SQDelegable -{ - void Init(SQSharedState *ss); - SQInstance(SQSharedState *ss, SQClass *c, SQInteger memsize); - SQInstance(SQSharedState *ss, SQInstance *c, SQInteger memsize); -public: - static SQInstance* Create(SQSharedState *ss,SQClass *theclass) { - - SQInteger size = calcinstancesize(theclass); - SQInstance *newinst = (SQInstance *)SQ_MALLOC(size); - new (newinst) SQInstance(ss, theclass,size); - if(theclass->_udsize) { - newinst->_userpointer = ((unsigned char *)newinst) + (size - theclass->_udsize); - } - return newinst; - } - SQInstance *Clone(SQSharedState *ss) - { - SQInteger size = calcinstancesize(_class); - SQInstance *newinst = (SQInstance *)SQ_MALLOC(size); - new (newinst) SQInstance(ss, this,size); - if(_class->_udsize) { - newinst->_userpointer = ((unsigned char *)newinst) + (size - _class->_udsize); - } - return newinst; - } - ~SQInstance(); - bool Get(const SQObjectPtr &key,SQObjectPtr &val) { - if(_class->_members->Get(key,val)) { - if(_isfield(val)) { - SQObjectPtr &o = _values[_member_idx(val)]; - val = _realval(o); - } - else { - val = _class->_methods[_member_idx(val)].val; - } - return true; - } - return false; - } - bool Set(const SQObjectPtr &key,const SQObjectPtr &val) { - SQObjectPtr idx; - if(_class->_members->Get(key,idx) && _isfield(idx)) { - _values[_member_idx(idx)] = val; - return true; - } - return false; - } - void Release() { - _uiRef++; - if (_hook) { _hook(_userpointer,0);} - _uiRef--; - if(_uiRef > 0) return; - SQInteger size = _memsize; - this->~SQInstance(); - SQ_FREE(this, size); - } - void Finalize(); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable ** ); - SQObjectType GetType() {return OT_INSTANCE;} -#endif - bool InstanceOf(SQClass *trg); - bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res); - - SQClass *_class; - SQUserPointer _userpointer; - SQRELEASEHOOK _hook; - SQInteger _memsize; - SQObjectPtr _values[1]; -}; - -#endif //_SQCLASS_H_ diff --git a/m_packages/squirrel/squirrel/sqclosure.h b/m_packages/squirrel/squirrel/sqclosure.h deleted file mode 100644 index 66495b94..00000000 --- a/m_packages/squirrel/squirrel/sqclosure.h +++ /dev/null @@ -1,201 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQCLOSURE_H_ -#define _SQCLOSURE_H_ - - -#define _CALC_CLOSURE_SIZE(func) (sizeof(SQClosure) + (func->_noutervalues*sizeof(SQObjectPtr)) + (func->_ndefaultparams*sizeof(SQObjectPtr))) - -struct SQFunctionProto; -struct SQClass; -struct SQClosure : public CHAINABLE_OBJ -{ -private: - SQClosure(SQSharedState *ss,SQFunctionProto *func){_function = func; __ObjAddRef(_function); _base = NULL; INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); _env = NULL; _root=NULL;} -public: - static SQClosure *Create(SQSharedState *ss,SQFunctionProto *func,SQWeakRef *root){ - SQInteger size = _CALC_CLOSURE_SIZE(func); - SQClosure *nc=(SQClosure*)SQ_MALLOC(size); - new (nc) SQClosure(ss,func); - nc->_outervalues = (SQObjectPtr *)(nc + 1); - nc->_defaultparams = &nc->_outervalues[func->_noutervalues]; - nc->_root = root; - __ObjAddRef(nc->_root); - _CONSTRUCT_VECTOR(SQObjectPtr,func->_noutervalues,nc->_outervalues); - _CONSTRUCT_VECTOR(SQObjectPtr,func->_ndefaultparams,nc->_defaultparams); - return nc; - } - void Release(){ - SQFunctionProto *f = _function; - SQInteger size = _CALC_CLOSURE_SIZE(f); - _DESTRUCT_VECTOR(SQObjectPtr,f->_noutervalues,_outervalues); - _DESTRUCT_VECTOR(SQObjectPtr,f->_ndefaultparams,_defaultparams); - __ObjRelease(_function); - this->~SQClosure(); - sq_vm_free(this,size); - } - void SetRoot(SQWeakRef *r) - { - __ObjRelease(_root); - _root = r; - __ObjAddRef(_root); - } - SQClosure *Clone() - { - SQFunctionProto *f = _function; - SQClosure * ret = SQClosure::Create(_opt_ss(this),f,_root); - ret->_env = _env; - if(ret->_env) __ObjAddRef(ret->_env); - _COPY_VECTOR(ret->_outervalues,_outervalues,f->_noutervalues); - _COPY_VECTOR(ret->_defaultparams,_defaultparams,f->_ndefaultparams); - return ret; - } - ~SQClosure(); - - bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write); - static bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize(){ - SQFunctionProto *f = _function; - _NULL_SQOBJECT_VECTOR(_outervalues,f->_noutervalues); - _NULL_SQOBJECT_VECTOR(_defaultparams,f->_ndefaultparams); - } - SQObjectType GetType() {return OT_CLOSURE;} -#endif - SQWeakRef *_env; - SQWeakRef *_root; - SQClass *_base; - SQFunctionProto *_function; - SQObjectPtr *_outervalues; - SQObjectPtr *_defaultparams; -}; - -////////////////////////////////////////////// -struct SQOuter : public CHAINABLE_OBJ -{ - -private: - SQOuter(SQSharedState *ss, SQObjectPtr *outer){_valptr = outer; _next = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); } - -public: - static SQOuter *Create(SQSharedState *ss, SQObjectPtr *outer) - { - SQOuter *nc = (SQOuter*)SQ_MALLOC(sizeof(SQOuter)); - new (nc) SQOuter(ss, outer); - return nc; - } - ~SQOuter() { REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); } - - void Release() - { - this->~SQOuter(); - sq_vm_free(this,sizeof(SQOuter)); - } - -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize() { _value.Null(); } - SQObjectType GetType() {return OT_OUTER;} -#endif - - SQObjectPtr *_valptr; /* pointer to value on stack, or _value below */ - SQInteger _idx; /* idx in stack array, for relocation */ - SQObjectPtr _value; /* value of outer after stack frame is closed */ - SQOuter *_next; /* pointer to next outer when frame is open */ -}; - -////////////////////////////////////////////// -struct SQGenerator : public CHAINABLE_OBJ -{ - enum SQGeneratorState{eRunning,eSuspended,eDead}; -private: - SQGenerator(SQSharedState *ss,SQClosure *closure){_closure=closure;_state=eRunning;_ci._generator=NULL;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);} -public: - static SQGenerator *Create(SQSharedState *ss,SQClosure *closure){ - SQGenerator *nc=(SQGenerator*)SQ_MALLOC(sizeof(SQGenerator)); - new (nc) SQGenerator(ss,closure); - return nc; - } - ~SQGenerator() - { - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); - } - void Kill(){ - _state=eDead; - _stack.resize(0); - _closure.Null();} - void Release(){ - sq_delete(this,SQGenerator); - } - - bool Yield(SQVM *v,SQInteger target); - bool Resume(SQVM *v,SQObjectPtr &dest); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize(){_stack.resize(0);_closure.Null();} - SQObjectType GetType() {return OT_GENERATOR;} -#endif - SQObjectPtr _closure; - SQObjectPtrVec _stack; - SQVM::CallInfo _ci; - ExceptionsTraps _etraps; - SQGeneratorState _state; -}; - -#define _CALC_NATVIVECLOSURE_SIZE(noutervalues) (sizeof(SQNativeClosure) + (noutervalues*sizeof(SQObjectPtr))) - -struct SQNativeClosure : public CHAINABLE_OBJ -{ -private: - SQNativeClosure(SQSharedState *ss,SQFUNCTION func){_function=func;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); _env = NULL;} -public: - static SQNativeClosure *Create(SQSharedState *ss,SQFUNCTION func,SQInteger nouters) - { - SQInteger size = _CALC_NATVIVECLOSURE_SIZE(nouters); - SQNativeClosure *nc=(SQNativeClosure*)SQ_MALLOC(size); - new (nc) SQNativeClosure(ss,func); - nc->_outervalues = (SQObjectPtr *)(nc + 1); - nc->_noutervalues = nouters; - _CONSTRUCT_VECTOR(SQObjectPtr,nc->_noutervalues,nc->_outervalues); - return nc; - } - SQNativeClosure *Clone() - { - SQNativeClosure * ret = SQNativeClosure::Create(_opt_ss(this),_function,_noutervalues); - ret->_env = _env; - if(ret->_env) __ObjAddRef(ret->_env); - ret->_name = _name; - _COPY_VECTOR(ret->_outervalues,_outervalues,_noutervalues); - ret->_typecheck.copy(_typecheck); - ret->_nparamscheck = _nparamscheck; - return ret; - } - ~SQNativeClosure() - { - __ObjRelease(_env); - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); - } - void Release(){ - SQInteger size = _CALC_NATVIVECLOSURE_SIZE(_noutervalues); - _DESTRUCT_VECTOR(SQObjectPtr,_noutervalues,_outervalues); - this->~SQNativeClosure(); - sq_free(this,size); - } - -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize() { _NULL_SQOBJECT_VECTOR(_outervalues,_noutervalues); } - SQObjectType GetType() {return OT_NATIVECLOSURE;} -#endif - SQInteger _nparamscheck; - SQIntVec _typecheck; - SQObjectPtr *_outervalues; - SQUnsignedInteger _noutervalues; - SQWeakRef *_env; - SQFUNCTION _function; - SQObjectPtr _name; -}; - - - -#endif //_SQCLOSURE_H_ diff --git a/m_packages/squirrel/squirrel/sqcompiler.cpp b/m_packages/squirrel/squirrel/sqcompiler.cpp deleted file mode 100644 index 51ba75f8..00000000 --- a/m_packages/squirrel/squirrel/sqcompiler.cpp +++ /dev/null @@ -1,1636 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#ifndef NO_COMPILER -#include -#include -#include "sqopcodes.h" -#include "sqstring.h" -#include "sqfuncproto.h" -#include "sqcompiler.h" -#include "sqfuncstate.h" -#include "sqlexer.h" -#include "sqvm.h" -#include "sqtable.h" - -#define EXPR 1 -#define OBJECT 2 -#define BASE 3 -#define LOCAL 4 -#define OUTER 5 - -struct SQExpState { - SQInteger etype; /* expr. type; one of EXPR, OBJECT, BASE, OUTER or LOCAL */ - SQInteger epos; /* expr. location on stack; -1 for OBJECT and BASE */ - bool donot_get; /* signal not to deref the next value */ -}; - -#define MAX_COMPILER_ERROR_LEN 256 - -struct SQScope { - SQInteger outers; - SQInteger stacksize; -}; - -#define BEGIN_SCOPE() SQScope __oldscope__ = _scope; \ - _scope.outers = _fs->_outers; \ - _scope.stacksize = _fs->GetStackSize(); - -#define RESOLVE_OUTERS() if(_fs->GetStackSize() != _scope.stacksize) { \ - if(_fs->CountOuters(_scope.stacksize)) { \ - _fs->AddInstruction(_OP_CLOSE,0,_scope.stacksize); \ - } \ - } - -#define END_SCOPE_NO_CLOSE() { if(_fs->GetStackSize() != _scope.stacksize) { \ - _fs->SetStackSize(_scope.stacksize); \ - } \ - _scope = __oldscope__; \ - } - -#define END_SCOPE() { SQInteger oldouters = _fs->_outers;\ - if(_fs->GetStackSize() != _scope.stacksize) { \ - _fs->SetStackSize(_scope.stacksize); \ - if(oldouters != _fs->_outers) { \ - _fs->AddInstruction(_OP_CLOSE,0,_scope.stacksize); \ - } \ - } \ - _scope = __oldscope__; \ - } - -#define BEGIN_BREAKBLE_BLOCK() SQInteger __nbreaks__=_fs->_unresolvedbreaks.size(); \ - SQInteger __ncontinues__=_fs->_unresolvedcontinues.size(); \ - _fs->_breaktargets.push_back(0);_fs->_continuetargets.push_back(0); - -#define END_BREAKBLE_BLOCK(continue_target) {__nbreaks__=_fs->_unresolvedbreaks.size()-__nbreaks__; \ - __ncontinues__=_fs->_unresolvedcontinues.size()-__ncontinues__; \ - if(__ncontinues__>0)ResolveContinues(_fs,__ncontinues__,continue_target); \ - if(__nbreaks__>0)ResolveBreaks(_fs,__nbreaks__); \ - _fs->_breaktargets.pop_back();_fs->_continuetargets.pop_back();} - -class SQCompiler -{ -public: - SQCompiler(SQVM *v, SQLEXREADFUNC rg, SQUserPointer up, const SQChar* sourcename, bool raiseerror, bool lineinfo) - { - _vm=v; - _lex.Init(_ss(v), rg, up,ThrowError,this); - _sourcename = SQString::Create(_ss(v), sourcename); - _lineinfo = lineinfo;_raiseerror = raiseerror; - _scope.outers = 0; - _scope.stacksize = 0; - _compilererror[0] = _SC('\0'); - } - static void ThrowError(void *ud, const SQChar *s) { - SQCompiler *c = (SQCompiler *)ud; - c->Error(s); - } - void Error(const SQChar *s, ...) - { - va_list vl; - va_start(vl, s); - scvsprintf(_compilererror, MAX_COMPILER_ERROR_LEN, s, vl); - va_end(vl); - longjmp(_errorjmp,1); - } - void Lex(){ _token = _lex.Lex();} - SQObject Expect(SQInteger tok) - { - - if(_token != tok) { - if(_token == TK_CONSTRUCTOR && tok == TK_IDENTIFIER) { - //do nothing - } - else { - const SQChar *etypename; - if(tok > 255) { - switch(tok) - { - case TK_IDENTIFIER: - etypename = _SC("IDENTIFIER"); - break; - case TK_STRING_LITERAL: - etypename = _SC("STRING_LITERAL"); - break; - case TK_INTEGER: - etypename = _SC("INTEGER"); - break; - case TK_FLOAT: - etypename = _SC("FLOAT"); - break; - default: - etypename = _lex.Tok2Str(tok); - } - Error(_SC("expected '%s'"), etypename); - } - Error(_SC("expected '%c'"), tok); - } - } - SQObjectPtr ret; - switch(tok) - { - case TK_IDENTIFIER: - ret = _fs->CreateString(_lex._svalue); - break; - case TK_STRING_LITERAL: - ret = _fs->CreateString(_lex._svalue,_lex._longstr.size()-1); - break; - case TK_INTEGER: - ret = SQObjectPtr(_lex._nvalue); - break; - case TK_FLOAT: - ret = SQObjectPtr(_lex._fvalue); - break; - } - Lex(); - return ret; - } - bool IsEndOfStatement() { return ((_lex._prevtoken == _SC('\n')) || (_token == SQUIRREL_EOB) || (_token == _SC('}')) || (_token == _SC(';'))); } - void OptionalSemicolon() - { - if(_token == _SC(';')) { Lex(); return; } - if(!IsEndOfStatement()) { - Error(_SC("end of statement expected (; or lf)")); - } - } - void MoveIfCurrentTargetIsLocal() { - SQInteger trg = _fs->TopTarget(); - if(_fs->IsLocal(trg)) { - trg = _fs->PopTarget(); //pops the target and moves it - _fs->AddInstruction(_OP_MOVE, _fs->PushTarget(), trg); - } - } - bool Compile(SQObjectPtr &o) - { - _debugline = 1; - _debugop = 0; - - SQFuncState funcstate(_ss(_vm), NULL,ThrowError,this); - funcstate._name = SQString::Create(_ss(_vm), _SC("main")); - _fs = &funcstate; - _fs->AddParameter(_fs->CreateString(_SC("this"))); - _fs->AddParameter(_fs->CreateString(_SC("vargv"))); - _fs->_varparams = true; - _fs->_sourcename = _sourcename; - SQInteger stacksize = _fs->GetStackSize(); - if(setjmp(_errorjmp) == 0) { - Lex(); - while(_token > 0){ - Statement(); - if(_lex._prevtoken != _SC('}') && _lex._prevtoken != _SC(';')) OptionalSemicolon(); - } - _fs->SetStackSize(stacksize); - _fs->AddLineInfos(_lex._currentline, _lineinfo, true); - _fs->AddInstruction(_OP_RETURN, 0xFF); - _fs->SetStackSize(0); - o =_fs->BuildProto(); -#ifdef _DEBUG_DUMP - _fs->Dump(_funcproto(o)); -#endif - } - else { - if(_raiseerror && _ss(_vm)->_compilererrorhandler) { - _ss(_vm)->_compilererrorhandler(_vm, _compilererror, sq_type(_sourcename) == OT_STRING?_stringval(_sourcename):_SC("unknown"), - _lex._currentline, _lex._currentcolumn); - } - _vm->_lasterror = SQString::Create(_ss(_vm), _compilererror, -1); - return false; - } - return true; - } - void Statements() - { - while(_token != _SC('}') && _token != TK_DEFAULT && _token != TK_CASE) { - Statement(); - if(_lex._prevtoken != _SC('}') && _lex._prevtoken != _SC(';')) OptionalSemicolon(); - } - } - void Statement(bool closeframe = true) - { - _fs->AddLineInfos(_lex._currentline, _lineinfo); - switch(_token){ - case _SC(';'): Lex(); break; - case TK_IF: IfStatement(); break; - case TK_WHILE: WhileStatement(); break; - case TK_DO: DoWhileStatement(); break; - case TK_FOR: ForStatement(); break; - case TK_FOREACH: ForEachStatement(); break; - case TK_SWITCH: SwitchStatement(); break; - case TK_LOCAL: LocalDeclStatement(); break; - case TK_RETURN: - case TK_YIELD: { - SQOpcode op; - if(_token == TK_RETURN) { - op = _OP_RETURN; - } - else { - op = _OP_YIELD; - _fs->_bgenerator = true; - } - Lex(); - if(!IsEndOfStatement()) { - SQInteger retexp = _fs->GetCurrentPos()+1; - CommaExpr(); - if(op == _OP_RETURN && _fs->_traps > 0) - _fs->AddInstruction(_OP_POPTRAP, _fs->_traps, 0); - _fs->_returnexp = retexp; - _fs->AddInstruction(op, 1, _fs->PopTarget(),_fs->GetStackSize()); - } - else{ - if(op == _OP_RETURN && _fs->_traps > 0) - _fs->AddInstruction(_OP_POPTRAP, _fs->_traps ,0); - _fs->_returnexp = -1; - _fs->AddInstruction(op, 0xFF,0,_fs->GetStackSize()); - } - break;} - case TK_BREAK: - if(_fs->_breaktargets.size() <= 0)Error(_SC("'break' has to be in a loop block")); - if(_fs->_breaktargets.top() > 0){ - _fs->AddInstruction(_OP_POPTRAP, _fs->_breaktargets.top(), 0); - } - RESOLVE_OUTERS(); - _fs->AddInstruction(_OP_JMP, 0, -1234); - _fs->_unresolvedbreaks.push_back(_fs->GetCurrentPos()); - Lex(); - break; - case TK_CONTINUE: - if(_fs->_continuetargets.size() <= 0)Error(_SC("'continue' has to be in a loop block")); - if(_fs->_continuetargets.top() > 0) { - _fs->AddInstruction(_OP_POPTRAP, _fs->_continuetargets.top(), 0); - } - RESOLVE_OUTERS(); - _fs->AddInstruction(_OP_JMP, 0, -1234); - _fs->_unresolvedcontinues.push_back(_fs->GetCurrentPos()); - Lex(); - break; - case TK_FUNCTION: - FunctionStatement(); - break; - case TK_CLASS: - ClassStatement(); - break; - case TK_ENUM: - EnumStatement(); - break; - case _SC('{'):{ - BEGIN_SCOPE(); - Lex(); - Statements(); - Expect(_SC('}')); - if(closeframe) { - END_SCOPE(); - } - else { - END_SCOPE_NO_CLOSE(); - } - } - break; - case TK_TRY: - TryCatchStatement(); - break; - case TK_THROW: - Lex(); - CommaExpr(); - _fs->AddInstruction(_OP_THROW, _fs->PopTarget()); - break; - case TK_CONST: - { - Lex(); - SQObject id = Expect(TK_IDENTIFIER); - Expect('='); - SQObject val = ExpectScalar(); - OptionalSemicolon(); - SQTable *enums = _table(_ss(_vm)->_consts); - SQObjectPtr strongid = id; - enums->NewSlot(strongid,SQObjectPtr(val)); - strongid.Null(); - } - break; - default: - CommaExpr(); - _fs->DiscardTarget(); - //_fs->PopTarget(); - break; - } - _fs->SnoozeOpt(); - } - void EmitDerefOp(SQOpcode op) - { - SQInteger val = _fs->PopTarget(); - SQInteger key = _fs->PopTarget(); - SQInteger src = _fs->PopTarget(); - _fs->AddInstruction(op,_fs->PushTarget(),src,key,val); - } - void Emit2ArgsOP(SQOpcode op, SQInteger p3 = 0) - { - SQInteger p2 = _fs->PopTarget(); //src in OP_GET - SQInteger p1 = _fs->PopTarget(); //key in OP_GET - _fs->AddInstruction(op,_fs->PushTarget(), p1, p2, p3); - } - void EmitCompoundArith(SQInteger tok, SQInteger etype, SQInteger pos) - { - /* Generate code depending on the expression type */ - switch(etype) { - case LOCAL:{ - SQInteger p2 = _fs->PopTarget(); //src in OP_GET - SQInteger p1 = _fs->PopTarget(); //key in OP_GET - _fs->PushTarget(p1); - //EmitCompArithLocal(tok, p1, p1, p2); - _fs->AddInstruction(ChooseArithOpByToken(tok),p1, p2, p1, 0); - _fs->SnoozeOpt(); - } - break; - case OBJECT: - case BASE: - { - SQInteger val = _fs->PopTarget(); - SQInteger key = _fs->PopTarget(); - SQInteger src = _fs->PopTarget(); - /* _OP_COMPARITH mixes dest obj and source val in the arg1 */ - _fs->AddInstruction(_OP_COMPARITH, _fs->PushTarget(), (src<<16)|val, key, ChooseCompArithCharByToken(tok)); - } - break; - case OUTER: - { - SQInteger val = _fs->TopTarget(); - SQInteger tmp = _fs->PushTarget(); - _fs->AddInstruction(_OP_GETOUTER, tmp, pos); - _fs->AddInstruction(ChooseArithOpByToken(tok), tmp, val, tmp, 0); - _fs->PopTarget(); - _fs->PopTarget(); - _fs->AddInstruction(_OP_SETOUTER, _fs->PushTarget(), pos, tmp); - } - break; - } - } - void CommaExpr() - { - for(Expression();_token == ',';_fs->PopTarget(), Lex(), CommaExpr()); - } - void Expression() - { - SQExpState es = _es; - _es.etype = EXPR; - _es.epos = -1; - _es.donot_get = false; - LogicalOrExp(); - switch(_token) { - case _SC('='): - case TK_NEWSLOT: - case TK_MINUSEQ: - case TK_PLUSEQ: - case TK_MULEQ: - case TK_DIVEQ: - case TK_MODEQ:{ - SQInteger op = _token; - SQInteger ds = _es.etype; - SQInteger pos = _es.epos; - if(ds == EXPR) Error(_SC("can't assign expression")); - else if(ds == BASE) Error(_SC("'base' cannot be modified")); - Lex(); Expression(); - - switch(op){ - case TK_NEWSLOT: - if(ds == OBJECT || ds == BASE) - EmitDerefOp(_OP_NEWSLOT); - else //if _derefstate != DEREF_NO_DEREF && DEREF_FIELD so is the index of a local - Error(_SC("can't 'create' a local slot")); - break; - case _SC('='): //ASSIGN - switch(ds) { - case LOCAL: - { - SQInteger src = _fs->PopTarget(); - SQInteger dst = _fs->TopTarget(); - _fs->AddInstruction(_OP_MOVE, dst, src); - } - break; - case OBJECT: - case BASE: - EmitDerefOp(_OP_SET); - break; - case OUTER: - { - SQInteger src = _fs->PopTarget(); - SQInteger dst = _fs->PushTarget(); - _fs->AddInstruction(_OP_SETOUTER, dst, pos, src); - } - } - break; - case TK_MINUSEQ: - case TK_PLUSEQ: - case TK_MULEQ: - case TK_DIVEQ: - case TK_MODEQ: - EmitCompoundArith(op, ds, pos); - break; - } - } - break; - case _SC('?'): { - Lex(); - _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); - SQInteger jzpos = _fs->GetCurrentPos(); - SQInteger trg = _fs->PushTarget(); - Expression(); - SQInteger first_exp = _fs->PopTarget(); - if(trg != first_exp) _fs->AddInstruction(_OP_MOVE, trg, first_exp); - SQInteger endfirstexp = _fs->GetCurrentPos(); - _fs->AddInstruction(_OP_JMP, 0, 0); - Expect(_SC(':')); - SQInteger jmppos = _fs->GetCurrentPos(); - Expression(); - SQInteger second_exp = _fs->PopTarget(); - if(trg != second_exp) _fs->AddInstruction(_OP_MOVE, trg, second_exp); - _fs->SetInstructionParam(jmppos, 1, _fs->GetCurrentPos() - jmppos); - _fs->SetInstructionParam(jzpos, 1, endfirstexp - jzpos + 1); - _fs->SnoozeOpt(); - } - break; - default: - break; - } - _es = es; - } - template void INVOKE_EXP(T f) - { - SQExpState es = _es; - _es.etype = EXPR; - _es.epos = -1; - _es.donot_get = false; - (this->*f)(); - _es = es; - } - template void BIN_EXP(SQOpcode op, T f,SQInteger op3 = 0) - { - Lex(); - INVOKE_EXP(f); - SQInteger op1 = _fs->PopTarget();SQInteger op2 = _fs->PopTarget(); - _fs->AddInstruction(op, _fs->PushTarget(), op1, op2, op3); - _es.etype = EXPR; - } - void LogicalOrExp() - { - LogicalAndExp(); - for(;;) if(_token == TK_OR) { - SQInteger first_exp = _fs->PopTarget(); - SQInteger trg = _fs->PushTarget(); - _fs->AddInstruction(_OP_OR, trg, 0, first_exp, 0); - SQInteger jpos = _fs->GetCurrentPos(); - if(trg != first_exp) _fs->AddInstruction(_OP_MOVE, trg, first_exp); - Lex(); INVOKE_EXP(&SQCompiler::LogicalOrExp); - _fs->SnoozeOpt(); - SQInteger second_exp = _fs->PopTarget(); - if(trg != second_exp) _fs->AddInstruction(_OP_MOVE, trg, second_exp); - _fs->SnoozeOpt(); - _fs->SetInstructionParam(jpos, 1, (_fs->GetCurrentPos() - jpos)); - _es.etype = EXPR; - break; - }else return; - } - void LogicalAndExp() - { - BitwiseOrExp(); - for(;;) switch(_token) { - case TK_AND: { - SQInteger first_exp = _fs->PopTarget(); - SQInteger trg = _fs->PushTarget(); - _fs->AddInstruction(_OP_AND, trg, 0, first_exp, 0); - SQInteger jpos = _fs->GetCurrentPos(); - if(trg != first_exp) _fs->AddInstruction(_OP_MOVE, trg, first_exp); - Lex(); INVOKE_EXP(&SQCompiler::LogicalAndExp); - _fs->SnoozeOpt(); - SQInteger second_exp = _fs->PopTarget(); - if(trg != second_exp) _fs->AddInstruction(_OP_MOVE, trg, second_exp); - _fs->SnoozeOpt(); - _fs->SetInstructionParam(jpos, 1, (_fs->GetCurrentPos() - jpos)); - _es.etype = EXPR; - break; - } - - default: - return; - } - } - void BitwiseOrExp() - { - BitwiseXorExp(); - for(;;) if(_token == _SC('|')) - {BIN_EXP(_OP_BITW, &SQCompiler::BitwiseXorExp,BW_OR); - }else return; - } - void BitwiseXorExp() - { - BitwiseAndExp(); - for(;;) if(_token == _SC('^')) - {BIN_EXP(_OP_BITW, &SQCompiler::BitwiseAndExp,BW_XOR); - }else return; - } - void BitwiseAndExp() - { - EqExp(); - for(;;) if(_token == _SC('&')) - {BIN_EXP(_OP_BITW, &SQCompiler::EqExp,BW_AND); - }else return; - } - void EqExp() - { - CompExp(); - for(;;) switch(_token) { - case TK_EQ: BIN_EXP(_OP_EQ, &SQCompiler::CompExp); break; - case TK_NE: BIN_EXP(_OP_NE, &SQCompiler::CompExp); break; - case TK_3WAYSCMP: BIN_EXP(_OP_CMP, &SQCompiler::CompExp,CMP_3W); break; - default: return; - } - } - void CompExp() - { - ShiftExp(); - for(;;) switch(_token) { - case _SC('>'): BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_G); break; - case _SC('<'): BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_L); break; - case TK_GE: BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_GE); break; - case TK_LE: BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_LE); break; - case TK_IN: BIN_EXP(_OP_EXISTS, &SQCompiler::ShiftExp); break; - case TK_INSTANCEOF: BIN_EXP(_OP_INSTANCEOF, &SQCompiler::ShiftExp); break; - default: return; - } - } - void ShiftExp() - { - PlusExp(); - for(;;) switch(_token) { - case TK_USHIFTR: BIN_EXP(_OP_BITW, &SQCompiler::PlusExp,BW_USHIFTR); break; - case TK_SHIFTL: BIN_EXP(_OP_BITW, &SQCompiler::PlusExp,BW_SHIFTL); break; - case TK_SHIFTR: BIN_EXP(_OP_BITW, &SQCompiler::PlusExp,BW_SHIFTR); break; - default: return; - } - } - SQOpcode ChooseArithOpByToken(SQInteger tok) - { - switch(tok) { - case TK_PLUSEQ: case '+': return _OP_ADD; - case TK_MINUSEQ: case '-': return _OP_SUB; - case TK_MULEQ: case '*': return _OP_MUL; - case TK_DIVEQ: case '/': return _OP_DIV; - case TK_MODEQ: case '%': return _OP_MOD; - default: assert(0); - } - return _OP_ADD; - } - SQInteger ChooseCompArithCharByToken(SQInteger tok) - { - SQInteger oper; - switch(tok){ - case TK_MINUSEQ: oper = '-'; break; - case TK_PLUSEQ: oper = '+'; break; - case TK_MULEQ: oper = '*'; break; - case TK_DIVEQ: oper = '/'; break; - case TK_MODEQ: oper = '%'; break; - default: oper = 0; //shut up compiler - assert(0); break; - }; - return oper; - } - void PlusExp() - { - MultExp(); - for(;;) switch(_token) { - case _SC('+'): case _SC('-'): - BIN_EXP(ChooseArithOpByToken(_token), &SQCompiler::MultExp); break; - default: return; - } - } - - void MultExp() - { - PrefixedExpr(); - for(;;) switch(_token) { - case _SC('*'): case _SC('/'): case _SC('%'): - BIN_EXP(ChooseArithOpByToken(_token), &SQCompiler::PrefixedExpr); break; - default: return; - } - } - //if 'pos' != -1 the previous variable is a local variable - void PrefixedExpr() - { - SQInteger pos = Factor(); - for(;;) { - switch(_token) { - case _SC('.'): - pos = -1; - Lex(); - - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(Expect(TK_IDENTIFIER))); - if(_es.etype==BASE) { - Emit2ArgsOP(_OP_GET); - pos = _fs->TopTarget(); - _es.etype = EXPR; - _es.epos = pos; - } - else { - if(NeedGet()) { - Emit2ArgsOP(_OP_GET); - } - _es.etype = OBJECT; - } - break; - case _SC('['): - if(_lex._prevtoken == _SC('\n')) Error(_SC("cannot break deref/or comma needed after [exp]=exp slot declaration")); - Lex(); Expression(); Expect(_SC(']')); - pos = -1; - if(_es.etype==BASE) { - Emit2ArgsOP(_OP_GET); - pos = _fs->TopTarget(); - _es.etype = EXPR; - _es.epos = pos; - } - else { - if(NeedGet()) { - Emit2ArgsOP(_OP_GET); - } - _es.etype = OBJECT; - } - break; - case TK_MINUSMINUS: - case TK_PLUSPLUS: - { - if(IsEndOfStatement()) return; - SQInteger diff = (_token==TK_MINUSMINUS) ? -1 : 1; - Lex(); - switch(_es.etype) - { - case EXPR: Error(_SC("can't '++' or '--' an expression")); break; - case BASE: Error(_SC("'base' cannot be modified")); break; - case OBJECT: - if(_es.donot_get == true) { Error(_SC("can't '++' or '--' an expression")); break; } //mmh dor this make sense? - Emit2ArgsOP(_OP_PINC, diff); - break; - case LOCAL: { - SQInteger src = _fs->PopTarget(); - _fs->AddInstruction(_OP_PINCL, _fs->PushTarget(), src, 0, diff); - } - break; - case OUTER: { - SQInteger tmp1 = _fs->PushTarget(); - SQInteger tmp2 = _fs->PushTarget(); - _fs->AddInstruction(_OP_GETOUTER, tmp2, _es.epos); - _fs->AddInstruction(_OP_PINCL, tmp1, tmp2, 0, diff); - _fs->AddInstruction(_OP_SETOUTER, tmp2, _es.epos, tmp2); - _fs->PopTarget(); - } - } - _es.etype = EXPR; - } - return; - break; - case _SC('('): - switch(_es.etype) { - case OBJECT: { - SQInteger key = _fs->PopTarget(); /* location of the key */ - SQInteger table = _fs->PopTarget(); /* location of the object */ - SQInteger closure = _fs->PushTarget(); /* location for the closure */ - SQInteger ttarget = _fs->PushTarget(); /* location for 'this' pointer */ - _fs->AddInstruction(_OP_PREPCALL, closure, key, table, ttarget); - } - break; - case BASE: - //Emit2ArgsOP(_OP_GET); - _fs->AddInstruction(_OP_MOVE, _fs->PushTarget(), 0); - break; - case OUTER: - _fs->AddInstruction(_OP_GETOUTER, _fs->PushTarget(), _es.epos); - _fs->AddInstruction(_OP_MOVE, _fs->PushTarget(), 0); - break; - default: - _fs->AddInstruction(_OP_MOVE, _fs->PushTarget(), 0); - } - _es.etype = EXPR; - Lex(); - FunctionCallArgs(); - break; - default: return; - } - } - } - SQInteger Factor() - { - //_es.etype = EXPR; - switch(_token) - { - case TK_STRING_LITERAL: - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(_fs->CreateString(_lex._svalue,_lex._longstr.size()-1))); - Lex(); - break; - case TK_BASE: - Lex(); - _fs->AddInstruction(_OP_GETBASE, _fs->PushTarget()); - _es.etype = BASE; - _es.epos = _fs->TopTarget(); - return (_es.epos); - break; - case TK_IDENTIFIER: - case TK_CONSTRUCTOR: - case TK_THIS:{ - SQObject id; - SQObject constant; - - switch(_token) { - case TK_IDENTIFIER: id = _fs->CreateString(_lex._svalue); break; - case TK_THIS: id = _fs->CreateString(_SC("this"),4); break; - case TK_CONSTRUCTOR: id = _fs->CreateString(_SC("constructor"),11); break; - } - - SQInteger pos = -1; - Lex(); - if((pos = _fs->GetLocalVariable(id)) != -1) { - /* Handle a local variable (includes 'this') */ - _fs->PushTarget(pos); - _es.etype = LOCAL; - _es.epos = pos; - } - - else if((pos = _fs->GetOuterVariable(id)) != -1) { - /* Handle a free var */ - if(NeedGet()) { - _es.epos = _fs->PushTarget(); - _fs->AddInstruction(_OP_GETOUTER, _es.epos, pos); - /* _es.etype = EXPR; already default value */ - } - else { - _es.etype = OUTER; - _es.epos = pos; - } - } - - else if(_fs->IsConstant(id, constant)) { - /* Handle named constant */ - SQObjectPtr constval; - SQObject constid; - if(sq_type(constant) == OT_TABLE) { - Expect('.'); - constid = Expect(TK_IDENTIFIER); - if(!_table(constant)->Get(constid, constval)) { - constval.Null(); - Error(_SC("invalid constant [%s.%s]"), _stringval(id), _stringval(constid)); - } - } - else { - constval = constant; - } - _es.epos = _fs->PushTarget(); - - /* generate direct or literal function depending on size */ - SQObjectType ctype = sq_type(constval); - switch(ctype) { - case OT_INTEGER: EmitLoadConstInt(_integer(constval),_es.epos); break; - case OT_FLOAT: EmitLoadConstFloat(_float(constval),_es.epos); break; - case OT_BOOL: _fs->AddInstruction(_OP_LOADBOOL, _es.epos, _integer(constval)); break; - default: _fs->AddInstruction(_OP_LOAD,_es.epos,_fs->GetConstant(constval)); break; - } - _es.etype = EXPR; - } - else { - /* Handle a non-local variable, aka a field. Push the 'this' pointer on - * the virtual stack (always found in offset 0, so no instruction needs to - * be generated), and push the key next. Generate an _OP_LOAD instruction - * for the latter. If we are not using the variable as a dref expr, generate - * the _OP_GET instruction. - */ - _fs->PushTarget(0); - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id)); - if(NeedGet()) { - Emit2ArgsOP(_OP_GET); - } - _es.etype = OBJECT; - } - return _es.epos; - } - break; - case TK_DOUBLE_COLON: // "::" - _fs->AddInstruction(_OP_LOADROOT, _fs->PushTarget()); - _es.etype = OBJECT; - _token = _SC('.'); /* hack: drop into PrefixExpr, case '.'*/ - _es.epos = -1; - return _es.epos; - break; - case TK_NULL: - _fs->AddInstruction(_OP_LOADNULLS, _fs->PushTarget(),1); - Lex(); - break; - case TK_INTEGER: EmitLoadConstInt(_lex._nvalue,-1); Lex(); break; - case TK_FLOAT: EmitLoadConstFloat(_lex._fvalue,-1); Lex(); break; - case TK_TRUE: case TK_FALSE: - _fs->AddInstruction(_OP_LOADBOOL, _fs->PushTarget(),_token == TK_TRUE?1:0); - Lex(); - break; - case _SC('['): { - _fs->AddInstruction(_OP_NEWOBJ, _fs->PushTarget(),0,0,NOT_ARRAY); - SQInteger apos = _fs->GetCurrentPos(),key = 0; - Lex(); - while(_token != _SC(']')) { - Expression(); - if(_token == _SC(',')) Lex(); - SQInteger val = _fs->PopTarget(); - SQInteger array = _fs->TopTarget(); - _fs->AddInstruction(_OP_APPENDARRAY, array, val, AAT_STACK); - key++; - } - _fs->SetInstructionParam(apos, 1, key); - Lex(); - } - break; - case _SC('{'): - _fs->AddInstruction(_OP_NEWOBJ, _fs->PushTarget(),0,0,NOT_TABLE); - Lex();ParseTableOrClass(_SC(','),_SC('}')); - break; - case TK_FUNCTION: FunctionExp();break; - case _SC('@'): FunctionExp(true);break; - case TK_CLASS: Lex(); ClassExp();break; - case _SC('-'): - Lex(); - switch(_token) { - case TK_INTEGER: EmitLoadConstInt(-_lex._nvalue,-1); Lex(); break; - case TK_FLOAT: EmitLoadConstFloat(-_lex._fvalue,-1); Lex(); break; - default: UnaryOP(_OP_NEG); - } - break; - case _SC('!'): Lex(); UnaryOP(_OP_NOT); break; - case _SC('~'): - Lex(); - if(_token == TK_INTEGER) { EmitLoadConstInt(~_lex._nvalue,-1); Lex(); break; } - UnaryOP(_OP_BWNOT); - break; - case TK_TYPEOF : Lex() ;UnaryOP(_OP_TYPEOF); break; - case TK_RESUME : Lex(); UnaryOP(_OP_RESUME); break; - case TK_CLONE : Lex(); UnaryOP(_OP_CLONE); break; - case TK_RAWCALL: Lex(); Expect('('); FunctionCallArgs(true); break; - case TK_MINUSMINUS : - case TK_PLUSPLUS :PrefixIncDec(_token); break; - case TK_DELETE : DeleteExpr(); break; - case _SC('('): Lex(); CommaExpr(); Expect(_SC(')')); - break; - case TK___LINE__: EmitLoadConstInt(_lex._currentline,-1); Lex(); break; - case TK___FILE__: _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(_sourcename)); Lex(); break; - default: Error(_SC("expression expected")); - } - _es.etype = EXPR; - return -1; - } - void EmitLoadConstInt(SQInteger value,SQInteger target) - { - if(target < 0) { - target = _fs->PushTarget(); - } - if(value <= INT_MAX && value > INT_MIN) { //does it fit in 32 bits? - _fs->AddInstruction(_OP_LOADINT, target,value); - } - else { - _fs->AddInstruction(_OP_LOAD, target, _fs->GetNumericConstant(value)); - } - } - void EmitLoadConstFloat(SQFloat value,SQInteger target) - { - if(target < 0) { - target = _fs->PushTarget(); - } - if(sizeof(SQFloat) == sizeof(SQInt32)) { - _fs->AddInstruction(_OP_LOADFLOAT, target,*((SQInt32 *)&value)); - } - else { - _fs->AddInstruction(_OP_LOAD, target, _fs->GetNumericConstant(value)); - } - } - void UnaryOP(SQOpcode op) - { - PrefixedExpr(); - if (_fs->_targetstack.size() == 0) - Error(_SC("cannot evaluate unary operator")); - SQInteger src = _fs->PopTarget(); - _fs->AddInstruction(op, _fs->PushTarget(), src); - } - bool NeedGet() - { - switch(_token) { - case _SC('='): case _SC('('): case TK_NEWSLOT: case TK_MODEQ: case TK_MULEQ: - case TK_DIVEQ: case TK_MINUSEQ: case TK_PLUSEQ: - return false; - case TK_PLUSPLUS: case TK_MINUSMINUS: - if (!IsEndOfStatement()) { - return false; - } - break; - } - return (!_es.donot_get || ( _es.donot_get && (_token == _SC('.') || _token == _SC('[')))); - } - void FunctionCallArgs(bool rawcall = false) - { - SQInteger nargs = 1;//this - while(_token != _SC(')')) { - Expression(); - MoveIfCurrentTargetIsLocal(); - nargs++; - if(_token == _SC(',')){ - Lex(); - if(_token == ')') Error(_SC("expression expected, found ')'")); - } - } - Lex(); - if (rawcall) { - if (nargs < 3) Error(_SC("rawcall requires at least 2 parameters (callee and this)")); - nargs -= 2; //removes callee and this from count - } - for(SQInteger i = 0; i < (nargs - 1); i++) _fs->PopTarget(); - SQInteger stackbase = _fs->PopTarget(); - SQInteger closure = _fs->PopTarget(); - _fs->AddInstruction(_OP_CALL, _fs->PushTarget(), closure, stackbase, nargs); - if (_token == '{') - { - SQInteger retval = _fs->TopTarget(); - SQInteger nkeys = 0; - Lex(); - while (_token != '}') { - switch (_token) { - case _SC('['): - Lex(); CommaExpr(); Expect(_SC(']')); - Expect(_SC('=')); Expression(); - break; - default: - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(Expect(TK_IDENTIFIER))); - Expect(_SC('=')); Expression(); - break; - } - if (_token == ',') Lex(); - nkeys++; - SQInteger val = _fs->PopTarget(); - SQInteger key = _fs->PopTarget(); - _fs->AddInstruction(_OP_SET, 0xFF, retval, key, val); - } - Lex(); - } - } - void ParseTableOrClass(SQInteger separator,SQInteger terminator) - { - SQInteger tpos = _fs->GetCurrentPos(),nkeys = 0; - while(_token != terminator) { - bool hasattrs = false; - bool isstatic = false; - //check if is an attribute - if(separator == ';') { - if(_token == TK_ATTR_OPEN) { - _fs->AddInstruction(_OP_NEWOBJ, _fs->PushTarget(),0,0,NOT_TABLE); Lex(); - ParseTableOrClass(',',TK_ATTR_CLOSE); - hasattrs = true; - } - if(_token == TK_STATIC) { - isstatic = true; - Lex(); - } - } - switch(_token) { - case TK_FUNCTION: - case TK_CONSTRUCTOR:{ - SQInteger tk = _token; - Lex(); - SQObject id = tk == TK_FUNCTION ? Expect(TK_IDENTIFIER) : _fs->CreateString(_SC("constructor")); - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id)); - SQInteger boundtarget = 0xFF; - if (_token == _SC('[')) { - boundtarget = ParseBindEnv(); - } - Expect(_SC('(')); - - CreateFunction(id, boundtarget); - _fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, boundtarget); - } - break; - case _SC('['): - Lex(); CommaExpr(); Expect(_SC(']')); - Expect(_SC('=')); Expression(); - break; - case TK_STRING_LITERAL: //JSON - if(separator == ',') { //only works for tables - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(Expect(TK_STRING_LITERAL))); - Expect(_SC(':')); Expression(); - break; - } - default : - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(Expect(TK_IDENTIFIER))); - Expect(_SC('=')); Expression(); - } - if(_token == separator) Lex();//optional comma/semicolon - nkeys++; - SQInteger val = _fs->PopTarget(); - SQInteger key = _fs->PopTarget(); - SQInteger attrs = hasattrs ? _fs->PopTarget():-1; - ((void)attrs); - assert((hasattrs && (attrs == key-1)) || !hasattrs); - unsigned char flags = (hasattrs?NEW_SLOT_ATTRIBUTES_FLAG:0)|(isstatic?NEW_SLOT_STATIC_FLAG:0); - SQInteger table = _fs->TopTarget(); //<AddInstruction(_OP_NEWSLOT, 0xFF, table, key, val); - } - else { - _fs->AddInstruction(_OP_NEWSLOTA, flags, table, key, val); //this for classes only as it invokes _newmember - } - } - if(separator == _SC(',')) //hack recognizes a table from the separator - _fs->SetInstructionParam(tpos, 1, nkeys); - Lex(); - } - void LocalDeclStatement() - { - SQObject varname; - Lex(); - if( _token == TK_FUNCTION) { - SQInteger boundtarget = 0xFF; - Lex(); - varname = Expect(TK_IDENTIFIER); - if (_token == _SC('[')) { - boundtarget = ParseBindEnv(); - } - Expect(_SC('(')); - CreateFunction(varname,0xFF,false); - _fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, boundtarget); - _fs->PopTarget(); - _fs->PushLocalVariable(varname); - return; - } - - do { - varname = Expect(TK_IDENTIFIER); - if(_token == _SC('=')) { - Lex(); Expression(); - SQInteger src = _fs->PopTarget(); - SQInteger dest = _fs->PushTarget(); - if (dest != src) { - if (_fs->IsLocal(src)) { - _fs->SnoozeOpt(); - } - _fs->AddInstruction(_OP_MOVE, dest, src); - } - } - else{ - _fs->AddInstruction(_OP_LOADNULLS, _fs->PushTarget(),1); - } - _fs->PopTarget(); - _fs->PushLocalVariable(varname); - if(_token == _SC(',')) Lex(); else break; - } while(1); - } - void IfBlock() - { - if (_token == _SC('{')) - { - BEGIN_SCOPE(); - Lex(); - Statements(); - Expect(_SC('}')); - if (true) { - END_SCOPE(); - } - else { - END_SCOPE_NO_CLOSE(); - } - } - else { - Statement(); - if (_lex._prevtoken != _SC('}') && _lex._prevtoken != _SC(';')) OptionalSemicolon(); - } - } - void IfStatement() - { - SQInteger jmppos; - bool haselse = false; - Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')')); - _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); - SQInteger jnepos = _fs->GetCurrentPos(); - - IfBlock(); - - SQInteger endifblock = _fs->GetCurrentPos(); - if(_token == TK_ELSE){ - haselse = true; - _fs->AddInstruction(_OP_JMP); - jmppos = _fs->GetCurrentPos(); - Lex(); - IfBlock(); - _fs->SetInstructionParam(jmppos, 1, _fs->GetCurrentPos() - jmppos); - } - _fs->SetInstructionParam(jnepos, 1, endifblock - jnepos + (haselse?1:0)); - } - void WhileStatement() - { - SQInteger jzpos, jmppos; - jmppos = _fs->GetCurrentPos(); - Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')')); - - BEGIN_BREAKBLE_BLOCK(); - _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); - jzpos = _fs->GetCurrentPos(); - BEGIN_SCOPE(); - - Statement(); - - END_SCOPE(); - _fs->AddInstruction(_OP_JMP, 0, jmppos - _fs->GetCurrentPos() - 1); - _fs->SetInstructionParam(jzpos, 1, _fs->GetCurrentPos() - jzpos); - - END_BREAKBLE_BLOCK(jmppos); - } - void DoWhileStatement() - { - Lex(); - SQInteger jmptrg = _fs->GetCurrentPos(); - BEGIN_BREAKBLE_BLOCK() - BEGIN_SCOPE(); - Statement(); - END_SCOPE(); - Expect(TK_WHILE); - SQInteger continuetrg = _fs->GetCurrentPos(); - Expect(_SC('(')); CommaExpr(); Expect(_SC(')')); - _fs->AddInstruction(_OP_JZ, _fs->PopTarget(), 1); - _fs->AddInstruction(_OP_JMP, 0, jmptrg - _fs->GetCurrentPos() - 1); - END_BREAKBLE_BLOCK(continuetrg); - } - void ForStatement() - { - Lex(); - BEGIN_SCOPE(); - Expect(_SC('(')); - if(_token == TK_LOCAL) LocalDeclStatement(); - else if(_token != _SC(';')){ - CommaExpr(); - _fs->PopTarget(); - } - Expect(_SC(';')); - _fs->SnoozeOpt(); - SQInteger jmppos = _fs->GetCurrentPos(); - SQInteger jzpos = -1; - if(_token != _SC(';')) { CommaExpr(); _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); jzpos = _fs->GetCurrentPos(); } - Expect(_SC(';')); - _fs->SnoozeOpt(); - SQInteger expstart = _fs->GetCurrentPos() + 1; - if(_token != _SC(')')) { - CommaExpr(); - _fs->PopTarget(); - } - Expect(_SC(')')); - _fs->SnoozeOpt(); - SQInteger expend = _fs->GetCurrentPos(); - SQInteger expsize = (expend - expstart) + 1; - SQInstructionVec exp; - if(expsize > 0) { - for(SQInteger i = 0; i < expsize; i++) - exp.push_back(_fs->GetInstruction(expstart + i)); - _fs->PopInstructions(expsize); - } - BEGIN_BREAKBLE_BLOCK() - Statement(); - SQInteger continuetrg = _fs->GetCurrentPos(); - if(expsize > 0) { - for(SQInteger i = 0; i < expsize; i++) - _fs->AddInstruction(exp[i]); - } - _fs->AddInstruction(_OP_JMP, 0, jmppos - _fs->GetCurrentPos() - 1, 0); - if(jzpos> 0) _fs->SetInstructionParam(jzpos, 1, _fs->GetCurrentPos() - jzpos); - - END_BREAKBLE_BLOCK(continuetrg); - - END_SCOPE(); - } - void ForEachStatement() - { - SQObject idxname, valname; - Lex(); Expect(_SC('(')); valname = Expect(TK_IDENTIFIER); - if(_token == _SC(',')) { - idxname = valname; - Lex(); valname = Expect(TK_IDENTIFIER); - } - else{ - idxname = _fs->CreateString(_SC("@INDEX@")); - } - Expect(TK_IN); - - //save the stack size - BEGIN_SCOPE(); - //put the table in the stack(evaluate the table expression) - Expression(); Expect(_SC(')')); - SQInteger container = _fs->TopTarget(); - //push the index local var - SQInteger indexpos = _fs->PushLocalVariable(idxname); - _fs->AddInstruction(_OP_LOADNULLS, indexpos,1); - //push the value local var - SQInteger valuepos = _fs->PushLocalVariable(valname); - _fs->AddInstruction(_OP_LOADNULLS, valuepos,1); - //push reference index - SQInteger itrpos = _fs->PushLocalVariable(_fs->CreateString(_SC("@ITERATOR@"))); //use invalid id to make it inaccessible - _fs->AddInstruction(_OP_LOADNULLS, itrpos,1); - SQInteger jmppos = _fs->GetCurrentPos(); - _fs->AddInstruction(_OP_FOREACH, container, 0, indexpos); - SQInteger foreachpos = _fs->GetCurrentPos(); - _fs->AddInstruction(_OP_POSTFOREACH, container, 0, indexpos); - //generate the statement code - BEGIN_BREAKBLE_BLOCK() - Statement(); - _fs->AddInstruction(_OP_JMP, 0, jmppos - _fs->GetCurrentPos() - 1); - _fs->SetInstructionParam(foreachpos, 1, _fs->GetCurrentPos() - foreachpos); - _fs->SetInstructionParam(foreachpos + 1, 1, _fs->GetCurrentPos() - foreachpos); - END_BREAKBLE_BLOCK(foreachpos - 1); - //restore the local variable stack(remove index,val and ref idx) - _fs->PopTarget(); - END_SCOPE(); - } - void SwitchStatement() - { - Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')')); - Expect(_SC('{')); - SQInteger expr = _fs->TopTarget(); - bool bfirst = true; - SQInteger tonextcondjmp = -1; - SQInteger skipcondjmp = -1; - SQInteger __nbreaks__ = _fs->_unresolvedbreaks.size(); - _fs->_breaktargets.push_back(0); - while(_token == TK_CASE) { - if(!bfirst) { - _fs->AddInstruction(_OP_JMP, 0, 0); - skipcondjmp = _fs->GetCurrentPos(); - _fs->SetInstructionParam(tonextcondjmp, 1, _fs->GetCurrentPos() - tonextcondjmp); - } - //condition - Lex(); Expression(); Expect(_SC(':')); - SQInteger trg = _fs->PopTarget(); - SQInteger eqtarget = trg; - bool local = _fs->IsLocal(trg); - if(local) { - eqtarget = _fs->PushTarget(); //we need to allocate a extra reg - } - _fs->AddInstruction(_OP_EQ, eqtarget, trg, expr); - _fs->AddInstruction(_OP_JZ, eqtarget, 0); - if(local) { - _fs->PopTarget(); - } - - //end condition - if(skipcondjmp != -1) { - _fs->SetInstructionParam(skipcondjmp, 1, (_fs->GetCurrentPos() - skipcondjmp)); - } - tonextcondjmp = _fs->GetCurrentPos(); - BEGIN_SCOPE(); - Statements(); - END_SCOPE(); - bfirst = false; - } - if(tonextcondjmp != -1) - _fs->SetInstructionParam(tonextcondjmp, 1, _fs->GetCurrentPos() - tonextcondjmp); - if(_token == TK_DEFAULT) { - Lex(); Expect(_SC(':')); - BEGIN_SCOPE(); - Statements(); - END_SCOPE(); - } - Expect(_SC('}')); - _fs->PopTarget(); - __nbreaks__ = _fs->_unresolvedbreaks.size() - __nbreaks__; - if(__nbreaks__ > 0)ResolveBreaks(_fs, __nbreaks__); - _fs->_breaktargets.pop_back(); - } - void FunctionStatement() - { - SQObject id; - Lex(); id = Expect(TK_IDENTIFIER); - _fs->PushTarget(0); - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id)); - if(_token == TK_DOUBLE_COLON) Emit2ArgsOP(_OP_GET); - - while(_token == TK_DOUBLE_COLON) { - Lex(); - id = Expect(TK_IDENTIFIER); - _fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id)); - if(_token == TK_DOUBLE_COLON) Emit2ArgsOP(_OP_GET); - } - SQInteger boundtarget = 0xFF; - if (_token == _SC('[')) { - boundtarget = ParseBindEnv(); - } - Expect(_SC('(')); - CreateFunction(id, boundtarget); - _fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, boundtarget); - EmitDerefOp(_OP_NEWSLOT); - _fs->PopTarget(); - } - void ClassStatement() - { - SQExpState es; - Lex(); - es = _es; - _es.donot_get = true; - PrefixedExpr(); - if(_es.etype == EXPR) { - Error(_SC("invalid class name")); - } - else if(_es.etype == OBJECT || _es.etype == BASE) { - ClassExp(); - EmitDerefOp(_OP_NEWSLOT); - _fs->PopTarget(); - } - else { - Error(_SC("cannot create a class in a local with the syntax(class )")); - } - _es = es; - } - SQObject ExpectScalar() - { - SQObject val; - val._type = OT_NULL; val._unVal.nInteger = 0; //shut up GCC 4.x - switch(_token) { - case TK_INTEGER: - val._type = OT_INTEGER; - val._unVal.nInteger = _lex._nvalue; - break; - case TK_FLOAT: - val._type = OT_FLOAT; - val._unVal.fFloat = _lex._fvalue; - break; - case TK_STRING_LITERAL: - val = _fs->CreateString(_lex._svalue,_lex._longstr.size()-1); - break; - case TK_TRUE: - case TK_FALSE: - val._type = OT_BOOL; - val._unVal.nInteger = _token == TK_TRUE ? 1 : 0; - break; - case '-': - Lex(); - switch(_token) - { - case TK_INTEGER: - val._type = OT_INTEGER; - val._unVal.nInteger = -_lex._nvalue; - break; - case TK_FLOAT: - val._type = OT_FLOAT; - val._unVal.fFloat = -_lex._fvalue; - break; - default: - Error(_SC("scalar expected : integer, float")); - } - break; - default: - Error(_SC("scalar expected : integer, float, or string")); - } - Lex(); - return val; - } - void EnumStatement() - { - Lex(); - SQObject id = Expect(TK_IDENTIFIER); - Expect(_SC('{')); - - SQObject table = _fs->CreateTable(); - SQInteger nval = 0; - while(_token != _SC('}')) { - SQObject key = Expect(TK_IDENTIFIER); - SQObject val; - if(_token == _SC('=')) { - Lex(); - val = ExpectScalar(); - } - else { - val._type = OT_INTEGER; - val._unVal.nInteger = nval++; - } - _table(table)->NewSlot(SQObjectPtr(key),SQObjectPtr(val)); - if(_token == ',') Lex(); - } - SQTable *enums = _table(_ss(_vm)->_consts); - SQObjectPtr strongid = id; - enums->NewSlot(SQObjectPtr(strongid),SQObjectPtr(table)); - strongid.Null(); - Lex(); - } - void TryCatchStatement() - { - SQObject exid; - Lex(); - _fs->AddInstruction(_OP_PUSHTRAP,0,0); - _fs->_traps++; - if(_fs->_breaktargets.size()) _fs->_breaktargets.top()++; - if(_fs->_continuetargets.size()) _fs->_continuetargets.top()++; - SQInteger trappos = _fs->GetCurrentPos(); - { - BEGIN_SCOPE(); - Statement(); - END_SCOPE(); - } - _fs->_traps--; - _fs->AddInstruction(_OP_POPTRAP, 1, 0); - if(_fs->_breaktargets.size()) _fs->_breaktargets.top()--; - if(_fs->_continuetargets.size()) _fs->_continuetargets.top()--; - _fs->AddInstruction(_OP_JMP, 0, 0); - SQInteger jmppos = _fs->GetCurrentPos(); - _fs->SetInstructionParam(trappos, 1, (_fs->GetCurrentPos() - trappos)); - Expect(TK_CATCH); Expect(_SC('(')); exid = Expect(TK_IDENTIFIER); Expect(_SC(')')); - { - BEGIN_SCOPE(); - SQInteger ex_target = _fs->PushLocalVariable(exid); - _fs->SetInstructionParam(trappos, 0, ex_target); - Statement(); - _fs->SetInstructionParams(jmppos, 0, (_fs->GetCurrentPos() - jmppos), 0); - END_SCOPE(); - } - } - SQInteger ParseBindEnv() - { - SQInteger boundtarget; - Lex(); - Expression(); - boundtarget = _fs->TopTarget(); - Expect(_SC(']')); - return boundtarget; - } - void FunctionExp(bool lambda = false) - { - Lex(); - SQInteger boundtarget = 0xFF; - if (_token == _SC('[')) { - boundtarget = ParseBindEnv(); - } - Expect(_SC('(')); - SQObjectPtr dummy; - CreateFunction(dummy, boundtarget, lambda); - _fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, boundtarget); - } - void ClassExp() - { - SQInteger base = -1; - SQInteger attrs = -1; - if(_token == TK_EXTENDS) { - Lex(); Expression(); - base = _fs->TopTarget(); - } - if(_token == TK_ATTR_OPEN) { - Lex(); - _fs->AddInstruction(_OP_NEWOBJ, _fs->PushTarget(),0,0,NOT_TABLE); - ParseTableOrClass(_SC(','),TK_ATTR_CLOSE); - attrs = _fs->TopTarget(); - } - Expect(_SC('{')); - if(attrs != -1) _fs->PopTarget(); - if(base != -1) _fs->PopTarget(); - _fs->AddInstruction(_OP_NEWOBJ, _fs->PushTarget(), base, attrs,NOT_CLASS); - ParseTableOrClass(_SC(';'),_SC('}')); - } - void DeleteExpr() - { - SQExpState es; - Lex(); - es = _es; - _es.donot_get = true; - PrefixedExpr(); - if(_es.etype==EXPR) Error(_SC("can't delete an expression")); - if(_es.etype==BASE) Error(_SC("can't delete 'base'")); - if(_es.etype==OBJECT) { - Emit2ArgsOP(_OP_DELETE); - } - else { - Error(_SC("cannot delete an (outer) local")); - } - _es = es; - } - void PrefixIncDec(SQInteger token) - { - SQExpState es; - SQInteger diff = (token==TK_MINUSMINUS) ? -1 : 1; - Lex(); - es = _es; - _es.donot_get = true; - PrefixedExpr(); - if(_es.etype==EXPR) { - Error(_SC("can't '++' or '--' an expression")); - } - else if (_es.etype == BASE) { - Error(_SC("can't '++' or '--' a base")); - } - else if(_es.etype==OBJECT) { - Emit2ArgsOP(_OP_INC, diff); - } - else if(_es.etype==LOCAL) { - SQInteger src = _fs->TopTarget(); - _fs->AddInstruction(_OP_INCL, src, src, 0, diff); - - } - else if(_es.etype==OUTER) { - SQInteger tmp = _fs->PushTarget(); - _fs->AddInstruction(_OP_GETOUTER, tmp, _es.epos); - _fs->AddInstruction(_OP_INCL, tmp, tmp, 0, diff); - _fs->AddInstruction(_OP_SETOUTER, tmp, _es.epos, tmp); - } - _es = es; - } - void CreateFunction(SQObject &name,SQInteger boundtarget,bool lambda = false) - { - SQFuncState *funcstate = _fs->PushChildState(_ss(_vm)); - funcstate->_name = name; - SQObject paramname; - funcstate->AddParameter(_fs->CreateString(_SC("this"))); - funcstate->_sourcename = _sourcename; - SQInteger defparams = 0; - while(_token!=_SC(')')) { - if(_token == TK_VARPARAMS) { - if(defparams > 0) Error(_SC("function with default parameters cannot have variable number of parameters")); - funcstate->AddParameter(_fs->CreateString(_SC("vargv"))); - funcstate->_varparams = true; - Lex(); - if(_token != _SC(')')) Error(_SC("expected ')'")); - break; - } - else { - paramname = Expect(TK_IDENTIFIER); - funcstate->AddParameter(paramname); - if(_token == _SC('=')) { - Lex(); - Expression(); - funcstate->AddDefaultParam(_fs->TopTarget()); - defparams++; - } - else { - if(defparams > 0) Error(_SC("expected '='")); - } - if(_token == _SC(',')) Lex(); - else if(_token != _SC(')')) Error(_SC("expected ')' or ','")); - } - } - Expect(_SC(')')); - if (boundtarget != 0xFF) { - _fs->PopTarget(); - } - for(SQInteger n = 0; n < defparams; n++) { - _fs->PopTarget(); - } - - SQFuncState *currchunk = _fs; - _fs = funcstate; - if(lambda) { - Expression(); - _fs->AddInstruction(_OP_RETURN, 1, _fs->PopTarget());} - else { - Statement(false); - } - funcstate->AddLineInfos(_lex._prevtoken == _SC('\n')?_lex._lasttokenline:_lex._currentline, _lineinfo, true); - funcstate->AddInstruction(_OP_RETURN, -1); - funcstate->SetStackSize(0); - - SQFunctionProto *func = funcstate->BuildProto(); -#ifdef _DEBUG_DUMP - funcstate->Dump(func); -#endif - _fs = currchunk; - _fs->_functions.push_back(func); - _fs->PopChildState(); - } - void ResolveBreaks(SQFuncState *funcstate, SQInteger ntoresolve) - { - while(ntoresolve > 0) { - SQInteger pos = funcstate->_unresolvedbreaks.back(); - funcstate->_unresolvedbreaks.pop_back(); - //set the jmp instruction - funcstate->SetInstructionParams(pos, 0, funcstate->GetCurrentPos() - pos, 0); - ntoresolve--; - } - } - void ResolveContinues(SQFuncState *funcstate, SQInteger ntoresolve, SQInteger targetpos) - { - while(ntoresolve > 0) { - SQInteger pos = funcstate->_unresolvedcontinues.back(); - funcstate->_unresolvedcontinues.pop_back(); - //set the jmp instruction - funcstate->SetInstructionParams(pos, 0, targetpos - pos, 0); - ntoresolve--; - } - } -private: - SQInteger _token; - SQFuncState *_fs; - SQObjectPtr _sourcename; - SQLexer _lex; - bool _lineinfo; - bool _raiseerror; - SQInteger _debugline; - SQInteger _debugop; - SQExpState _es; - SQScope _scope; - SQChar _compilererror[MAX_COMPILER_ERROR_LEN]; - jmp_buf _errorjmp; - SQVM *_vm; -}; - -bool Compile(SQVM *vm,SQLEXREADFUNC rg, SQUserPointer up, const SQChar *sourcename, SQObjectPtr &out, bool raiseerror, bool lineinfo) -{ - SQCompiler p(vm, rg, up, sourcename, raiseerror, lineinfo); - return p.Compile(out); -} - -#endif diff --git a/m_packages/squirrel/squirrel/sqcompiler.h b/m_packages/squirrel/squirrel/sqcompiler.h deleted file mode 100644 index e7da6423..00000000 --- a/m_packages/squirrel/squirrel/sqcompiler.h +++ /dev/null @@ -1,79 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQCOMPILER_H_ -#define _SQCOMPILER_H_ - -struct SQVM; - -#define TK_IDENTIFIER 258 -#define TK_STRING_LITERAL 259 -#define TK_INTEGER 260 -#define TK_FLOAT 261 -#define TK_BASE 262 -#define TK_DELETE 263 -#define TK_EQ 264 -#define TK_NE 265 -#define TK_LE 266 -#define TK_GE 267 -#define TK_SWITCH 268 -#define TK_ARROW 269 -#define TK_AND 270 -#define TK_OR 271 -#define TK_IF 272 -#define TK_ELSE 273 -#define TK_WHILE 274 -#define TK_BREAK 275 -#define TK_FOR 276 -#define TK_DO 277 -#define TK_NULL 278 -#define TK_FOREACH 279 -#define TK_IN 280 -#define TK_NEWSLOT 281 -#define TK_MODULO 282 -#define TK_LOCAL 283 -#define TK_CLONE 284 -#define TK_FUNCTION 285 -#define TK_RETURN 286 -#define TK_TYPEOF 287 -#define TK_UMINUS 288 -#define TK_PLUSEQ 289 -#define TK_MINUSEQ 290 -#define TK_CONTINUE 291 -#define TK_YIELD 292 -#define TK_TRY 293 -#define TK_CATCH 294 -#define TK_THROW 295 -#define TK_SHIFTL 296 -#define TK_SHIFTR 297 -#define TK_RESUME 298 -#define TK_DOUBLE_COLON 299 -#define TK_CASE 300 -#define TK_DEFAULT 301 -#define TK_THIS 302 -#define TK_PLUSPLUS 303 -#define TK_MINUSMINUS 304 -#define TK_3WAYSCMP 305 -#define TK_USHIFTR 306 -#define TK_CLASS 307 -#define TK_EXTENDS 308 -#define TK_CONSTRUCTOR 310 -#define TK_INSTANCEOF 311 -#define TK_VARPARAMS 312 -#define TK___LINE__ 313 -#define TK___FILE__ 314 -#define TK_TRUE 315 -#define TK_FALSE 316 -#define TK_MULEQ 317 -#define TK_DIVEQ 318 -#define TK_MODEQ 319 -#define TK_ATTR_OPEN 320 -#define TK_ATTR_CLOSE 321 -#define TK_STATIC 322 -#define TK_ENUM 323 -#define TK_CONST 324 -#define TK_RAWCALL 325 - - - -typedef void(*CompilerErrorFunc)(void *ud, const SQChar *s); -bool Compile(SQVM *vm, SQLEXREADFUNC rg, SQUserPointer up, const SQChar *sourcename, SQObjectPtr &out, bool raiseerror, bool lineinfo); -#endif //_SQCOMPILER_H_ diff --git a/m_packages/squirrel/squirrel/sqdebug.cpp b/m_packages/squirrel/squirrel/sqdebug.cpp deleted file mode 100644 index d55b1b2e..00000000 --- a/m_packages/squirrel/squirrel/sqdebug.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include -#include "sqvm.h" -#include "sqfuncproto.h" -#include "sqclosure.h" -#include "sqstring.h" - -SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi) -{ - SQInteger cssize = v->_callsstacksize; - if (cssize > level) { - SQVM::CallInfo &ci = v->_callsstack[cssize-level-1]; - if(sq_isclosure(ci._closure)) { - SQClosure *c = _closure(ci._closure); - SQFunctionProto *proto = c->_function; - fi->funcid = proto; - fi->name = sq_type(proto->_name) == OT_STRING?_stringval(proto->_name):_SC("unknown"); - fi->source = sq_type(proto->_sourcename) == OT_STRING?_stringval(proto->_sourcename):_SC("unknown"); - fi->line = proto->_lineinfos[0]._line; - return SQ_OK; - } - } - return sq_throwerror(v,_SC("the object is not a closure")); -} - -SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si) -{ - SQInteger cssize = v->_callsstacksize; - if (cssize > level) { - memset(si, 0, sizeof(SQStackInfos)); - SQVM::CallInfo &ci = v->_callsstack[cssize-level-1]; - switch (sq_type(ci._closure)) { - case OT_CLOSURE:{ - SQFunctionProto *func = _closure(ci._closure)->_function; - if (sq_type(func->_name) == OT_STRING) - si->funcname = _stringval(func->_name); - if (sq_type(func->_sourcename) == OT_STRING) - si->source = _stringval(func->_sourcename); - si->line = func->GetLine(ci._ip); - } - break; - case OT_NATIVECLOSURE: - si->source = _SC("NATIVE"); - si->funcname = _SC("unknown"); - if(sq_type(_nativeclosure(ci._closure)->_name) == OT_STRING) - si->funcname = _stringval(_nativeclosure(ci._closure)->_name); - si->line = -1; - break; - default: break; //shutup compiler - } - return SQ_OK; - } - return SQ_ERROR; -} - -void SQVM::Raise_Error(const SQChar *s, ...) -{ - va_list vl; - va_start(vl, s); - SQInteger buffersize = (SQInteger)scstrlen(s)+(NUMBER_MAX_CHAR*2); - scvsprintf(_sp(sq_rsl(buffersize)),buffersize, s, vl); - va_end(vl); - _lasterror = SQString::Create(_ss(this),_spval,-1); -} - -void SQVM::Raise_Error(const SQObjectPtr &desc) -{ - _lasterror = desc; -} - -SQString *SQVM::PrintObjVal(const SQObjectPtr &o) -{ - switch(sq_type(o)) { - case OT_STRING: return _string(o); - case OT_INTEGER: - scsprintf(_sp(sq_rsl(NUMBER_MAX_CHAR+1)),sq_rsl(NUMBER_MAX_CHAR), _PRINT_INT_FMT, _integer(o)); - return SQString::Create(_ss(this), _spval); - break; - case OT_FLOAT: - scsprintf(_sp(sq_rsl(NUMBER_MAX_CHAR+1)), sq_rsl(NUMBER_MAX_CHAR), _SC("%.14g"), _float(o)); - return SQString::Create(_ss(this), _spval); - break; - default: - return SQString::Create(_ss(this), GetTypeName(o)); - } -} - -void SQVM::Raise_IdxError(const SQObjectPtr &o) -{ - SQObjectPtr oval = PrintObjVal(o); - Raise_Error(_SC("the index '%.50s' does not exist"), _stringval(oval)); -} - -void SQVM::Raise_CompareError(const SQObject &o1, const SQObject &o2) -{ - SQObjectPtr oval1 = PrintObjVal(o1), oval2 = PrintObjVal(o2); - Raise_Error(_SC("comparison between '%.50s' and '%.50s'"), _stringval(oval1), _stringval(oval2)); -} - - -void SQVM::Raise_ParamTypeError(SQInteger nparam,SQInteger typemask,SQInteger type) -{ - SQObjectPtr exptypes = SQString::Create(_ss(this), _SC(""), -1); - SQInteger found = 0; - for(SQInteger i=0; i<16; i++) - { - SQInteger mask = ((SQInteger)1) << i; - if(typemask & (mask)) { - if(found>0) StringCat(exptypes,SQString::Create(_ss(this), _SC("|"), -1), exptypes); - found ++; - StringCat(exptypes,SQString::Create(_ss(this), IdType2Name((SQObjectType)mask), -1), exptypes); - } - } - Raise_Error(_SC("parameter %d has an invalid type '%s' ; expected: '%s'"), nparam, IdType2Name((SQObjectType)type), _stringval(exptypes)); -} diff --git a/m_packages/squirrel/squirrel/sqfuncproto.h b/m_packages/squirrel/squirrel/sqfuncproto.h deleted file mode 100644 index 546dbabb..00000000 --- a/m_packages/squirrel/squirrel/sqfuncproto.h +++ /dev/null @@ -1,154 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQFUNCTION_H_ -#define _SQFUNCTION_H_ - -#include "sqopcodes.h" - -enum SQOuterType { - otLOCAL = 0, - otOUTER = 1 -}; - -struct SQOuterVar -{ - - SQOuterVar(){} - SQOuterVar(const SQObjectPtr &name,const SQObjectPtr &src,SQOuterType t) - { - _name = name; - _src=src; - _type=t; - } - SQOuterVar(const SQOuterVar &ov) - { - _type=ov._type; - _src=ov._src; - _name=ov._name; - } - SQOuterType _type; - SQObjectPtr _name; - SQObjectPtr _src; -}; - -struct SQLocalVarInfo -{ - SQLocalVarInfo():_start_op(0),_end_op(0),_pos(0){} - SQLocalVarInfo(const SQLocalVarInfo &lvi) - { - _name=lvi._name; - _start_op=lvi._start_op; - _end_op=lvi._end_op; - _pos=lvi._pos; - } - SQObjectPtr _name; - SQUnsignedInteger _start_op; - SQUnsignedInteger _end_op; - SQUnsignedInteger _pos; -}; - -struct SQLineInfo { SQInteger _line;SQInteger _op; }; - -typedef sqvector SQOuterVarVec; -typedef sqvector SQLocalVarInfoVec; -typedef sqvector SQLineInfoVec; - -#define _FUNC_SIZE(ni,nl,nparams,nfuncs,nouters,nlineinf,localinf,defparams) (sizeof(SQFunctionProto) \ - +((ni-1)*sizeof(SQInstruction))+(nl*sizeof(SQObjectPtr)) \ - +(nparams*sizeof(SQObjectPtr))+(nfuncs*sizeof(SQObjectPtr)) \ - +(nouters*sizeof(SQOuterVar))+(nlineinf*sizeof(SQLineInfo)) \ - +(localinf*sizeof(SQLocalVarInfo))+(defparams*sizeof(SQInteger))) - - -struct SQFunctionProto : public CHAINABLE_OBJ -{ -private: - SQFunctionProto(SQSharedState *ss); - ~SQFunctionProto(); - -public: - static SQFunctionProto *Create(SQSharedState *ss,SQInteger ninstructions, - SQInteger nliterals,SQInteger nparameters, - SQInteger nfunctions,SQInteger noutervalues, - SQInteger nlineinfos,SQInteger nlocalvarinfos,SQInteger ndefaultparams) - { - SQFunctionProto *f; - //I compact the whole class and members in a single memory allocation - f = (SQFunctionProto *)sq_vm_malloc(_FUNC_SIZE(ninstructions,nliterals,nparameters,nfunctions,noutervalues,nlineinfos,nlocalvarinfos,ndefaultparams)); - new (f) SQFunctionProto(ss); - f->_ninstructions = ninstructions; - f->_literals = (SQObjectPtr*)&f->_instructions[ninstructions]; - f->_nliterals = nliterals; - f->_parameters = (SQObjectPtr*)&f->_literals[nliterals]; - f->_nparameters = nparameters; - f->_functions = (SQObjectPtr*)&f->_parameters[nparameters]; - f->_nfunctions = nfunctions; - f->_outervalues = (SQOuterVar*)&f->_functions[nfunctions]; - f->_noutervalues = noutervalues; - f->_lineinfos = (SQLineInfo *)&f->_outervalues[noutervalues]; - f->_nlineinfos = nlineinfos; - f->_localvarinfos = (SQLocalVarInfo *)&f->_lineinfos[nlineinfos]; - f->_nlocalvarinfos = nlocalvarinfos; - f->_defaultparams = (SQInteger *)&f->_localvarinfos[nlocalvarinfos]; - f->_ndefaultparams = ndefaultparams; - - _CONSTRUCT_VECTOR(SQObjectPtr,f->_nliterals,f->_literals); - _CONSTRUCT_VECTOR(SQObjectPtr,f->_nparameters,f->_parameters); - _CONSTRUCT_VECTOR(SQObjectPtr,f->_nfunctions,f->_functions); - _CONSTRUCT_VECTOR(SQOuterVar,f->_noutervalues,f->_outervalues); - //_CONSTRUCT_VECTOR(SQLineInfo,f->_nlineinfos,f->_lineinfos); //not required are 2 integers - _CONSTRUCT_VECTOR(SQLocalVarInfo,f->_nlocalvarinfos,f->_localvarinfos); - return f; - } - void Release(){ - _DESTRUCT_VECTOR(SQObjectPtr,_nliterals,_literals); - _DESTRUCT_VECTOR(SQObjectPtr,_nparameters,_parameters); - _DESTRUCT_VECTOR(SQObjectPtr,_nfunctions,_functions); - _DESTRUCT_VECTOR(SQOuterVar,_noutervalues,_outervalues); - //_DESTRUCT_VECTOR(SQLineInfo,_nlineinfos,_lineinfos); //not required are 2 integers - _DESTRUCT_VECTOR(SQLocalVarInfo,_nlocalvarinfos,_localvarinfos); - SQInteger size = _FUNC_SIZE(_ninstructions,_nliterals,_nparameters,_nfunctions,_noutervalues,_nlineinfos,_nlocalvarinfos,_ndefaultparams); - this->~SQFunctionProto(); - sq_vm_free(this,size); - } - - const SQChar* GetLocal(SQVM *v,SQUnsignedInteger stackbase,SQUnsignedInteger nseq,SQUnsignedInteger nop); - SQInteger GetLine(SQInstruction *curr); - bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write); - static bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize(){ _NULL_SQOBJECT_VECTOR(_literals,_nliterals); } - SQObjectType GetType() {return OT_FUNCPROTO;} -#endif - SQObjectPtr _sourcename; - SQObjectPtr _name; - SQInteger _stacksize; - bool _bgenerator; - SQInteger _varparams; - - SQInteger _nlocalvarinfos; - SQLocalVarInfo *_localvarinfos; - - SQInteger _nlineinfos; - SQLineInfo *_lineinfos; - - SQInteger _nliterals; - SQObjectPtr *_literals; - - SQInteger _nparameters; - SQObjectPtr *_parameters; - - SQInteger _nfunctions; - SQObjectPtr *_functions; - - SQInteger _noutervalues; - SQOuterVar *_outervalues; - - SQInteger _ndefaultparams; - SQInteger *_defaultparams; - - SQInteger _ninstructions; - SQInstruction _instructions[1]; -}; - -#endif //_SQFUNCTION_H_ diff --git a/m_packages/squirrel/squirrel/sqfuncstate.cpp b/m_packages/squirrel/squirrel/sqfuncstate.cpp deleted file mode 100644 index 779b40df..00000000 --- a/m_packages/squirrel/squirrel/sqfuncstate.cpp +++ /dev/null @@ -1,649 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#ifndef NO_COMPILER -#include "sqcompiler.h" -#include "sqstring.h" -#include "sqfuncproto.h" -#include "sqtable.h" -#include "sqopcodes.h" -#include "sqfuncstate.h" - -#ifdef _DEBUG_DUMP -SQInstructionDesc g_InstrDesc[]={ - {_SC("_OP_LINE")}, - {_SC("_OP_LOAD")}, - {_SC("_OP_LOADINT")}, - {_SC("_OP_LOADFLOAT")}, - {_SC("_OP_DLOAD")}, - {_SC("_OP_TAILCALL")}, - {_SC("_OP_CALL")}, - {_SC("_OP_PREPCALL")}, - {_SC("_OP_PREPCALLK")}, - {_SC("_OP_GETK")}, - {_SC("_OP_MOVE")}, - {_SC("_OP_NEWSLOT")}, - {_SC("_OP_DELETE")}, - {_SC("_OP_SET")}, - {_SC("_OP_GET")}, - {_SC("_OP_EQ")}, - {_SC("_OP_NE")}, - {_SC("_OP_ADD")}, - {_SC("_OP_SUB")}, - {_SC("_OP_MUL")}, - {_SC("_OP_DIV")}, - {_SC("_OP_MOD")}, - {_SC("_OP_BITW")}, - {_SC("_OP_RETURN")}, - {_SC("_OP_LOADNULLS")}, - {_SC("_OP_LOADROOT")}, - {_SC("_OP_LOADBOOL")}, - {_SC("_OP_DMOVE")}, - {_SC("_OP_JMP")}, - {_SC("_OP_JCMP")}, - {_SC("_OP_JZ")}, - {_SC("_OP_SETOUTER")}, - {_SC("_OP_GETOUTER")}, - {_SC("_OP_NEWOBJ")}, - {_SC("_OP_APPENDARRAY")}, - {_SC("_OP_COMPARITH")}, - {_SC("_OP_INC")}, - {_SC("_OP_INCL")}, - {_SC("_OP_PINC")}, - {_SC("_OP_PINCL")}, - {_SC("_OP_CMP")}, - {_SC("_OP_EXISTS")}, - {_SC("_OP_INSTANCEOF")}, - {_SC("_OP_AND")}, - {_SC("_OP_OR")}, - {_SC("_OP_NEG")}, - {_SC("_OP_NOT")}, - {_SC("_OP_BWNOT")}, - {_SC("_OP_CLOSURE")}, - {_SC("_OP_YIELD")}, - {_SC("_OP_RESUME")}, - {_SC("_OP_FOREACH")}, - {_SC("_OP_POSTFOREACH")}, - {_SC("_OP_CLONE")}, - {_SC("_OP_TYPEOF")}, - {_SC("_OP_PUSHTRAP")}, - {_SC("_OP_POPTRAP")}, - {_SC("_OP_THROW")}, - {_SC("_OP_NEWSLOTA")}, - {_SC("_OP_GETBASE")}, - {_SC("_OP_CLOSE")}, -}; -#endif -void DumpLiteral(SQObjectPtr &o) -{ - switch(sq_type(o)){ - case OT_STRING: scprintf(_SC("\"%s\""),_stringval(o));break; - case OT_FLOAT: scprintf(_SC("{%f}"),_float(o));break; - case OT_INTEGER: scprintf(_SC("{") _PRINT_INT_FMT _SC("}"),_integer(o));break; - case OT_BOOL: scprintf(_SC("%s"),_integer(o)?_SC("true"):_SC("false"));break; - default: scprintf(_SC("(%s %p)"),GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler - } -} - -SQFuncState::SQFuncState(SQSharedState *ss,SQFuncState *parent,CompilerErrorFunc efunc,void *ed) -{ - _nliterals = 0; - _literals = SQTable::Create(ss,0); - _strings = SQTable::Create(ss,0); - _sharedstate = ss; - _lastline = 0; - _optimization = true; - _parent = parent; - _stacksize = 0; - _traps = 0; - _returnexp = 0; - _varparams = false; - _errfunc = efunc; - _errtarget = ed; - _bgenerator = false; - _outers = 0; - _ss = ss; - -} - -void SQFuncState::Error(const SQChar *err) -{ - _errfunc(_errtarget,err); -} - -#ifdef _DEBUG_DUMP -void SQFuncState::Dump(SQFunctionProto *func) -{ - SQUnsignedInteger n=0,i; - SQInteger si; - scprintf(_SC("SQInstruction sizeof %d\n"),(SQInt32)sizeof(SQInstruction)); - scprintf(_SC("SQObject sizeof %d\n"), (SQInt32)sizeof(SQObject)); - scprintf(_SC("--------------------------------------------------------------------\n")); - scprintf(_SC("*****FUNCTION [%s]\n"),sq_type(func->_name)==OT_STRING?_stringval(func->_name):_SC("unknown")); - scprintf(_SC("-----LITERALS\n")); - SQObjectPtr refidx,key,val; - SQInteger idx; - SQObjectPtrVec templiterals; - templiterals.resize(_nliterals); - while((idx=_table(_literals)->Next(false,refidx,key,val))!=-1) { - refidx=idx; - templiterals[_integer(val)]=key; - } - for(i=0;i>\n")); - n=0; - for(i=0;i<_parameters.size();i++){ - scprintf(_SC("[%d] "), (SQInt32)n); - DumpLiteral(_parameters[i]); - scprintf(_SC("\n")); - n++; - } - scprintf(_SC("-----LOCALS\n")); - for(si=0;si_nlocalvarinfos;si++){ - SQLocalVarInfo lvi=func->_localvarinfos[si]; - scprintf(_SC("[%d] %s \t%d %d\n"), (SQInt32)lvi._pos,_stringval(lvi._name), (SQInt32)lvi._start_op, (SQInt32)lvi._end_op); - n++; - } - scprintf(_SC("-----LINE INFO\n")); - for(i=0;i<_lineinfos.size();i++){ - SQLineInfo li=_lineinfos[i]; - scprintf(_SC("op [%d] line [%d] \n"), (SQInt32)li._op, (SQInt32)li._line); - n++; - } - scprintf(_SC("-----dump\n")); - n=0; - for(i=0;i<_instructions.size();i++){ - SQInstruction &inst=_instructions[i]; - if(inst.op==_OP_LOAD || inst.op==_OP_DLOAD || inst.op==_OP_PREPCALLK || inst.op==_OP_GETK ){ - - SQInteger lidx = inst._arg1; - scprintf(_SC("[%03d] %15s %d "), (SQInt32)n,g_InstrDesc[inst.op].name,inst._arg0); - if(lidx >= 0xFFFFFFFF) - scprintf(_SC("null")); - else { - SQInteger refidx; - SQObjectPtr val,key,refo; - while(((refidx=_table(_literals)->Next(false,refo,key,val))!= -1) && (_integer(val) != lidx)) { - refo = refidx; - } - DumpLiteral(key); - } - if(inst.op != _OP_DLOAD) { - scprintf(_SC(" %d %d \n"),inst._arg2,inst._arg3); - } - else { - scprintf(_SC(" %d "),inst._arg2); - lidx = inst._arg3; - if(lidx >= 0xFFFFFFFF) - scprintf(_SC("null")); - else { - SQInteger refidx; - SQObjectPtr val,key,refo; - while(((refidx=_table(_literals)->Next(false,refo,key,val))!= -1) && (_integer(val) != lidx)) { - refo = refidx; - } - DumpLiteral(key); - scprintf(_SC("\n")); - } - } - } - else if(inst.op==_OP_LOADFLOAT) { - scprintf(_SC("[%03d] %15s %d %f %d %d\n"), (SQInt32)n,g_InstrDesc[inst.op].name,inst._arg0,*((SQFloat*)&inst._arg1),inst._arg2,inst._arg3); - } - /* else if(inst.op==_OP_ARITH){ - scprintf(_SC("[%03d] %15s %d %d %d %c\n"),n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3); - }*/ - else { - scprintf(_SC("[%03d] %15s %d %d %d %d\n"), (SQInt32)n,g_InstrDesc[inst.op].name,inst._arg0,inst._arg1,inst._arg2,inst._arg3); - } - n++; - } - scprintf(_SC("-----\n")); - scprintf(_SC("stack size[%d]\n"), (SQInt32)func->_stacksize); - scprintf(_SC("--------------------------------------------------------------------\n\n")); -} -#endif - -SQInteger SQFuncState::GetNumericConstant(const SQInteger cons) -{ - return GetConstant(SQObjectPtr(cons)); -} - -SQInteger SQFuncState::GetNumericConstant(const SQFloat cons) -{ - return GetConstant(SQObjectPtr(cons)); -} - -SQInteger SQFuncState::GetConstant(const SQObject &cons) -{ - SQObjectPtr val; - if(!_table(_literals)->Get(cons,val)) - { - val = _nliterals; - _table(_literals)->NewSlot(cons,val); - _nliterals++; - if(_nliterals > MAX_LITERALS) { - val.Null(); - Error(_SC("internal compiler error: too many literals")); - } - } - return _integer(val); -} - -void SQFuncState::SetInstructionParams(SQInteger pos,SQInteger arg0,SQInteger arg1,SQInteger arg2,SQInteger arg3) -{ - _instructions[pos]._arg0=(unsigned char)*((SQUnsignedInteger *)&arg0); - _instructions[pos]._arg1=(SQInt32)*((SQUnsignedInteger *)&arg1); - _instructions[pos]._arg2=(unsigned char)*((SQUnsignedInteger *)&arg2); - _instructions[pos]._arg3=(unsigned char)*((SQUnsignedInteger *)&arg3); -} - -void SQFuncState::SetInstructionParam(SQInteger pos,SQInteger arg,SQInteger val) -{ - switch(arg){ - case 0:_instructions[pos]._arg0=(unsigned char)*((SQUnsignedInteger *)&val);break; - case 1:case 4:_instructions[pos]._arg1=(SQInt32)*((SQUnsignedInteger *)&val);break; - case 2:_instructions[pos]._arg2=(unsigned char)*((SQUnsignedInteger *)&val);break; - case 3:_instructions[pos]._arg3=(unsigned char)*((SQUnsignedInteger *)&val);break; - }; -} - -SQInteger SQFuncState::AllocStackPos() -{ - SQInteger npos=_vlocals.size(); - _vlocals.push_back(SQLocalVarInfo()); - if(_vlocals.size()>((SQUnsignedInteger)_stacksize)) { - if(_stacksize>MAX_FUNC_STACKSIZE) Error(_SC("internal compiler error: too many locals")); - _stacksize=_vlocals.size(); - } - return npos; -} - -SQInteger SQFuncState::PushTarget(SQInteger n) -{ - if(n!=-1){ - _targetstack.push_back(n); - return n; - } - n=AllocStackPos(); - _targetstack.push_back(n); - return n; -} - -SQInteger SQFuncState::GetUpTarget(SQInteger n){ - return _targetstack[((_targetstack.size()-1)-n)]; -} - -SQInteger SQFuncState::TopTarget(){ - return _targetstack.back(); -} -SQInteger SQFuncState::PopTarget() -{ - SQUnsignedInteger npos=_targetstack.back(); - assert(npos < _vlocals.size()); - SQLocalVarInfo &t = _vlocals[npos]; - if(sq_type(t._name)==OT_NULL){ - _vlocals.pop_back(); - } - _targetstack.pop_back(); - return npos; -} - -SQInteger SQFuncState::GetStackSize() -{ - return _vlocals.size(); -} - -SQInteger SQFuncState::CountOuters(SQInteger stacksize) -{ - SQInteger outers = 0; - SQInteger k = _vlocals.size() - 1; - while(k >= stacksize) { - SQLocalVarInfo &lvi = _vlocals[k]; - k--; - if(lvi._end_op == UINT_MINUS_ONE) { //this means is an outer - outers++; - } - } - return outers; -} - -void SQFuncState::SetStackSize(SQInteger n) -{ - SQInteger size=_vlocals.size(); - while(size>n){ - size--; - SQLocalVarInfo lvi = _vlocals.back(); - if(sq_type(lvi._name)!=OT_NULL){ - if(lvi._end_op == UINT_MINUS_ONE) { //this means is an outer - _outers--; - } - lvi._end_op = GetCurrentPos(); - _localvarinfos.push_back(lvi); - } - _vlocals.pop_back(); - } -} - -bool SQFuncState::IsConstant(const SQObject &name,SQObject &e) -{ - SQObjectPtr val; - if(_table(_sharedstate->_consts)->Get(name,val)) { - e = val; - return true; - } - return false; -} - -bool SQFuncState::IsLocal(SQUnsignedInteger stkpos) -{ - if(stkpos>=_vlocals.size())return false; - else if(sq_type(_vlocals[stkpos]._name)!=OT_NULL)return true; - return false; -} - -SQInteger SQFuncState::PushLocalVariable(const SQObject &name) -{ - SQInteger pos=_vlocals.size(); - SQLocalVarInfo lvi; - lvi._name=name; - lvi._start_op=GetCurrentPos()+1; - lvi._pos=_vlocals.size(); - _vlocals.push_back(lvi); - if(_vlocals.size()>((SQUnsignedInteger)_stacksize))_stacksize=_vlocals.size(); - return pos; -} - - - -SQInteger SQFuncState::GetLocalVariable(const SQObject &name) -{ - SQInteger locals=_vlocals.size(); - while(locals>=1){ - SQLocalVarInfo &lvi = _vlocals[locals-1]; - if(sq_type(lvi._name)==OT_STRING && _string(lvi._name)==_string(name)){ - return locals-1; - } - locals--; - } - return -1; -} - -void SQFuncState::MarkLocalAsOuter(SQInteger pos) -{ - SQLocalVarInfo &lvi = _vlocals[pos]; - lvi._end_op = UINT_MINUS_ONE; - _outers++; -} - -SQInteger SQFuncState::GetOuterVariable(const SQObject &name) -{ - SQInteger outers = _outervalues.size(); - for(SQInteger i = 0; iGetLocalVariable(name); - if(pos == -1) { - pos = _parent->GetOuterVariable(name); - if(pos != -1) { - _outervalues.push_back(SQOuterVar(name,SQObjectPtr(SQInteger(pos)),otOUTER)); //local - return _outervalues.size() - 1; - } - } - else { - _parent->MarkLocalAsOuter(pos); - _outervalues.push_back(SQOuterVar(name,SQObjectPtr(SQInteger(pos)),otLOCAL)); //local - return _outervalues.size() - 1; - - - } - } - return -1; -} - -void SQFuncState::AddParameter(const SQObject &name) -{ - PushLocalVariable(name); - _parameters.push_back(name); -} - -void SQFuncState::AddLineInfos(SQInteger line,bool lineop,bool force) -{ - if(_lastline!=line || force){ - SQLineInfo li; - li._line=line;li._op=(GetCurrentPos()+1); - if(lineop)AddInstruction(_OP_LINE,0,line); - if(_lastline!=line) { - _lineinfos.push_back(li); - } - _lastline=line; - } -} - -void SQFuncState::DiscardTarget() -{ - SQInteger discardedtarget = PopTarget(); - SQInteger size = _instructions.size(); - if(size > 0 && _optimization){ - SQInstruction &pi = _instructions[size-1];//previous instruction - switch(pi.op) { - case _OP_SET:case _OP_NEWSLOT:case _OP_SETOUTER:case _OP_CALL: - if(pi._arg0 == discardedtarget) { - pi._arg0 = 0xFF; - } - } - } -} - -void SQFuncState::AddInstruction(SQInstruction &i) -{ - SQInteger size = _instructions.size(); - if(size > 0 && _optimization){ //simple optimizer - SQInstruction &pi = _instructions[size-1];//previous instruction - switch(i.op) { - case _OP_JZ: - if( pi.op == _OP_CMP && pi._arg1 < 0xFF) { - pi.op = _OP_JCMP; - pi._arg0 = (unsigned char)pi._arg1; - pi._arg1 = i._arg1; - return; - } - break; - case _OP_SET: - case _OP_NEWSLOT: - if(i._arg0 == i._arg3) { - i._arg0 = 0xFF; - } - break; - case _OP_SETOUTER: - if(i._arg0 == i._arg2) { - i._arg0 = 0xFF; - } - break; - case _OP_RETURN: - if( _parent && i._arg0 != MAX_FUNC_STACKSIZE && pi.op == _OP_CALL && _returnexp < size-1) { - pi.op = _OP_TAILCALL; - } else if(pi.op == _OP_CLOSE){ - pi = i; - return; - } - break; - case _OP_GET: - if( pi.op == _OP_LOAD && pi._arg0 == i._arg2 && (!IsLocal(pi._arg0))){ - pi._arg2 = (unsigned char)i._arg1; - pi.op = _OP_GETK; - pi._arg0 = i._arg0; - - return; - } - break; - case _OP_PREPCALL: - if( pi.op == _OP_LOAD && pi._arg0 == i._arg1 && (!IsLocal(pi._arg0))){ - pi.op = _OP_PREPCALLK; - pi._arg0 = i._arg0; - pi._arg2 = i._arg2; - pi._arg3 = i._arg3; - return; - } - break; - case _OP_APPENDARRAY: { - SQInteger aat = -1; - switch(pi.op) { - case _OP_LOAD: aat = AAT_LITERAL; break; - case _OP_LOADINT: aat = AAT_INT; break; - case _OP_LOADBOOL: aat = AAT_BOOL; break; - case _OP_LOADFLOAT: aat = AAT_FLOAT; break; - default: break; - } - if(aat != -1 && pi._arg0 == i._arg1 && (!IsLocal(pi._arg0))){ - pi.op = _OP_APPENDARRAY; - pi._arg0 = i._arg0; - pi._arg2 = (unsigned char)aat; - pi._arg3 = MAX_FUNC_STACKSIZE; - return; - } - } - break; - case _OP_MOVE: - switch(pi.op) { - case _OP_GET: case _OP_ADD: case _OP_SUB: case _OP_MUL: case _OP_DIV: case _OP_MOD: case _OP_BITW: - case _OP_LOADINT: case _OP_LOADFLOAT: case _OP_LOADBOOL: case _OP_LOAD: - - if(pi._arg0 == i._arg1) - { - pi._arg0 = i._arg0; - _optimization = false; - //_result_elimination = false; - return; - } - } - - if(pi.op == _OP_MOVE) - { - pi.op = _OP_DMOVE; - pi._arg2 = i._arg0; - pi._arg3 = (unsigned char)i._arg1; - return; - } - break; - case _OP_LOAD: - if(pi.op == _OP_LOAD && i._arg1 < 256) { - pi.op = _OP_DLOAD; - pi._arg2 = i._arg0; - pi._arg3 = (unsigned char)i._arg1; - return; - } - break; - case _OP_EQ:case _OP_NE: - if(pi.op == _OP_LOAD && pi._arg0 == i._arg1 && (!IsLocal(pi._arg0) )) - { - pi.op = i.op; - pi._arg0 = i._arg0; - pi._arg2 = i._arg2; - pi._arg3 = MAX_FUNC_STACKSIZE; - return; - } - break; - case _OP_LOADNULLS: - if((pi.op == _OP_LOADNULLS && pi._arg0+pi._arg1 == i._arg0)) { - - pi._arg1 = pi._arg1 + 1; - pi.op = _OP_LOADNULLS; - return; - } - break; - case _OP_LINE: - if(pi.op == _OP_LINE) { - _instructions.pop_back(); - _lineinfos.pop_back(); - } - break; - } - } - _optimization = true; - _instructions.push_back(i); -} - -SQObject SQFuncState::CreateString(const SQChar *s,SQInteger len) -{ - SQObjectPtr ns(SQString::Create(_sharedstate,s,len)); - _table(_strings)->NewSlot(ns,(SQInteger)1); - return ns; -} - -SQObject SQFuncState::CreateTable() -{ - SQObjectPtr nt(SQTable::Create(_sharedstate,0)); - _table(_strings)->NewSlot(nt,(SQInteger)1); - return nt; -} - -SQFunctionProto *SQFuncState::BuildProto() -{ - - SQFunctionProto *f=SQFunctionProto::Create(_ss,_instructions.size(), - _nliterals,_parameters.size(),_functions.size(),_outervalues.size(), - _lineinfos.size(),_localvarinfos.size(),_defaultparams.size()); - - SQObjectPtr refidx,key,val; - SQInteger idx; - - f->_stacksize = _stacksize; - f->_sourcename = _sourcename; - f->_bgenerator = _bgenerator; - f->_name = _name; - - while((idx=_table(_literals)->Next(false,refidx,key,val))!=-1) { - f->_literals[_integer(val)]=key; - refidx=idx; - } - - for(SQUnsignedInteger nf = 0; nf < _functions.size(); nf++) f->_functions[nf] = _functions[nf]; - for(SQUnsignedInteger np = 0; np < _parameters.size(); np++) f->_parameters[np] = _parameters[np]; - for(SQUnsignedInteger no = 0; no < _outervalues.size(); no++) f->_outervalues[no] = _outervalues[no]; - for(SQUnsignedInteger nl = 0; nl < _localvarinfos.size(); nl++) f->_localvarinfos[nl] = _localvarinfos[nl]; - for(SQUnsignedInteger ni = 0; ni < _lineinfos.size(); ni++) f->_lineinfos[ni] = _lineinfos[ni]; - for(SQUnsignedInteger nd = 0; nd < _defaultparams.size(); nd++) f->_defaultparams[nd] = _defaultparams[nd]; - - memcpy(f->_instructions,&_instructions[0],_instructions.size()*sizeof(SQInstruction)); - - f->_varparams = _varparams; - - return f; -} - -SQFuncState *SQFuncState::PushChildState(SQSharedState *ss) -{ - SQFuncState *child = (SQFuncState *)sq_malloc(sizeof(SQFuncState)); - new (child) SQFuncState(ss,this,_errfunc,_errtarget); - _childstates.push_back(child); - return child; -} - -void SQFuncState::PopChildState() -{ - SQFuncState *child = _childstates.back(); - sq_delete(child,SQFuncState); - _childstates.pop_back(); -} - -SQFuncState::~SQFuncState() -{ - while(_childstates.size() > 0) - { - PopChildState(); - } -} - -#endif diff --git a/m_packages/squirrel/squirrel/sqfuncstate.h b/m_packages/squirrel/squirrel/sqfuncstate.h deleted file mode 100644 index 130aa54f..00000000 --- a/m_packages/squirrel/squirrel/sqfuncstate.h +++ /dev/null @@ -1,91 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQFUNCSTATE_H_ -#define _SQFUNCSTATE_H_ -/////////////////////////////////// -#include "squtils.h" - -struct SQFuncState -{ - SQFuncState(SQSharedState *ss,SQFuncState *parent,CompilerErrorFunc efunc,void *ed); - ~SQFuncState(); -#ifdef _DEBUG_DUMP - void Dump(SQFunctionProto *func); -#endif - void Error(const SQChar *err); - SQFuncState *PushChildState(SQSharedState *ss); - void PopChildState(); - void AddInstruction(SQOpcode _op,SQInteger arg0=0,SQInteger arg1=0,SQInteger arg2=0,SQInteger arg3=0){SQInstruction i(_op,arg0,arg1,arg2,arg3);AddInstruction(i);} - void AddInstruction(SQInstruction &i); - void SetInstructionParams(SQInteger pos,SQInteger arg0,SQInteger arg1,SQInteger arg2=0,SQInteger arg3=0); - void SetInstructionParam(SQInteger pos,SQInteger arg,SQInteger val); - SQInstruction &GetInstruction(SQInteger pos){return _instructions[pos];} - void PopInstructions(SQInteger size){for(SQInteger i=0;i _childstates; - SQInteger GetConstant(const SQObject &cons); -private: - CompilerErrorFunc _errfunc; - void *_errtarget; - SQSharedState *_ss; -}; - - -#endif //_SQFUNCSTATE_H_ - diff --git a/m_packages/squirrel/squirrel/sqlexer.cpp b/m_packages/squirrel/squirrel/sqlexer.cpp deleted file mode 100644 index 6a8e7c4f..00000000 --- a/m_packages/squirrel/squirrel/sqlexer.cpp +++ /dev/null @@ -1,563 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include -#include -#include "sqtable.h" -#include "sqstring.h" -#include "sqcompiler.h" -#include "sqlexer.h" - -#define CUR_CHAR (_currdata) -#define RETURN_TOKEN(t) { _prevtoken = _curtoken; _curtoken = t; return t;} -#define IS_EOB() (CUR_CHAR <= SQUIRREL_EOB) -#define NEXT() {Next();_currentcolumn++;} -#define INIT_TEMP_STRING() { _longstr.resize(0);} -#define APPEND_CHAR(c) { _longstr.push_back(c);} -#define TERMINATE_BUFFER() {_longstr.push_back(_SC('\0'));} -#define ADD_KEYWORD(key,id) _keywords->NewSlot( SQString::Create(ss, _SC(#key)) ,SQInteger(id)) - -SQLexer::SQLexer(){} -SQLexer::~SQLexer() -{ - _keywords->Release(); -} - -void SQLexer::Init(SQSharedState *ss, SQLEXREADFUNC rg, SQUserPointer up,CompilerErrorFunc efunc,void *ed) -{ - _errfunc = efunc; - _errtarget = ed; - _sharedstate = ss; - _keywords = SQTable::Create(ss, 37); - ADD_KEYWORD(while, TK_WHILE); - ADD_KEYWORD(do, TK_DO); - ADD_KEYWORD(if, TK_IF); - ADD_KEYWORD(else, TK_ELSE); - ADD_KEYWORD(break, TK_BREAK); - ADD_KEYWORD(continue, TK_CONTINUE); - ADD_KEYWORD(return, TK_RETURN); - ADD_KEYWORD(null, TK_NULL); - ADD_KEYWORD(function, TK_FUNCTION); - ADD_KEYWORD(local, TK_LOCAL); - ADD_KEYWORD(for, TK_FOR); - ADD_KEYWORD(foreach, TK_FOREACH); - ADD_KEYWORD(in, TK_IN); - ADD_KEYWORD(typeof, TK_TYPEOF); - ADD_KEYWORD(base, TK_BASE); - ADD_KEYWORD(delete, TK_DELETE); - ADD_KEYWORD(try, TK_TRY); - ADD_KEYWORD(catch, TK_CATCH); - ADD_KEYWORD(throw, TK_THROW); - ADD_KEYWORD(clone, TK_CLONE); - ADD_KEYWORD(yield, TK_YIELD); - ADD_KEYWORD(resume, TK_RESUME); - ADD_KEYWORD(switch, TK_SWITCH); - ADD_KEYWORD(case, TK_CASE); - ADD_KEYWORD(default, TK_DEFAULT); - ADD_KEYWORD(this, TK_THIS); - ADD_KEYWORD(class,TK_CLASS); - ADD_KEYWORD(extends,TK_EXTENDS); - ADD_KEYWORD(constructor,TK_CONSTRUCTOR); - ADD_KEYWORD(instanceof,TK_INSTANCEOF); - ADD_KEYWORD(true,TK_TRUE); - ADD_KEYWORD(false,TK_FALSE); - ADD_KEYWORD(static,TK_STATIC); - ADD_KEYWORD(enum,TK_ENUM); - ADD_KEYWORD(const,TK_CONST); - ADD_KEYWORD(__LINE__,TK___LINE__); - ADD_KEYWORD(__FILE__,TK___FILE__); - ADD_KEYWORD(rawcall, TK_RAWCALL); - - - _readf = rg; - _up = up; - _lasttokenline = _currentline = 1; - _currentcolumn = 0; - _prevtoken = -1; - _reached_eof = SQFalse; - Next(); -} - -void SQLexer::Error(const SQChar *err) -{ - _errfunc(_errtarget,err); -} - -void SQLexer::Next() -{ - SQInteger t = _readf(_up); - if(t > MAX_CHAR) Error(_SC("Invalid character")); - if(t != 0) { - _currdata = (LexChar)t; - return; - } - _currdata = SQUIRREL_EOB; - _reached_eof = SQTrue; -} - -const SQChar *SQLexer::Tok2Str(SQInteger tok) -{ - SQObjectPtr itr, key, val; - SQInteger nitr; - while((nitr = _keywords->Next(false,itr, key, val)) != -1) { - itr = (SQInteger)nitr; - if(((SQInteger)_integer(val)) == tok) - return _stringval(key); - } - return NULL; -} - -void SQLexer::LexBlockComment() -{ - bool done = false; - while(!done) { - switch(CUR_CHAR) { - case _SC('*'): { NEXT(); if(CUR_CHAR == _SC('/')) { done = true; NEXT(); }}; continue; - case _SC('\n'): _currentline++; NEXT(); continue; - case SQUIRREL_EOB: Error(_SC("missing \"*/\" in comment")); - default: NEXT(); - } - } -} -void SQLexer::LexLineComment() -{ - do { NEXT(); } while (CUR_CHAR != _SC('\n') && (!IS_EOB())); -} - -SQInteger SQLexer::Lex() -{ - _lasttokenline = _currentline; - while(CUR_CHAR != SQUIRREL_EOB) { - switch(CUR_CHAR){ - case _SC('\t'): case _SC('\r'): case _SC(' '): NEXT(); continue; - case _SC('\n'): - _currentline++; - _prevtoken=_curtoken; - _curtoken=_SC('\n'); - NEXT(); - _currentcolumn=1; - continue; - case _SC('#'): LexLineComment(); continue; - case _SC('/'): - NEXT(); - switch(CUR_CHAR){ - case _SC('*'): - NEXT(); - LexBlockComment(); - continue; - case _SC('/'): - LexLineComment(); - continue; - case _SC('='): - NEXT(); - RETURN_TOKEN(TK_DIVEQ); - continue; - case _SC('>'): - NEXT(); - RETURN_TOKEN(TK_ATTR_CLOSE); - continue; - default: - RETURN_TOKEN('/'); - } - case _SC('='): - NEXT(); - if (CUR_CHAR != _SC('=')){ RETURN_TOKEN('=') } - else { NEXT(); RETURN_TOKEN(TK_EQ); } - case _SC('<'): - NEXT(); - switch(CUR_CHAR) { - case _SC('='): - NEXT(); - if(CUR_CHAR == _SC('>')) { - NEXT(); - RETURN_TOKEN(TK_3WAYSCMP); - } - RETURN_TOKEN(TK_LE) - break; - case _SC('-'): NEXT(); RETURN_TOKEN(TK_NEWSLOT); break; - case _SC('<'): NEXT(); RETURN_TOKEN(TK_SHIFTL); break; - case _SC('/'): NEXT(); RETURN_TOKEN(TK_ATTR_OPEN); break; - } - RETURN_TOKEN('<'); - case _SC('>'): - NEXT(); - if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_GE);} - else if(CUR_CHAR == _SC('>')){ - NEXT(); - if(CUR_CHAR == _SC('>')){ - NEXT(); - RETURN_TOKEN(TK_USHIFTR); - } - RETURN_TOKEN(TK_SHIFTR); - } - else { RETURN_TOKEN('>') } - case _SC('!'): - NEXT(); - if (CUR_CHAR != _SC('=')){ RETURN_TOKEN('!')} - else { NEXT(); RETURN_TOKEN(TK_NE); } - case _SC('@'): { - SQInteger stype; - NEXT(); - if(CUR_CHAR != _SC('"')) { - RETURN_TOKEN('@'); - } - if((stype=ReadString('"',true))!=-1) { - RETURN_TOKEN(stype); - } - Error(_SC("error parsing the string")); - } - case _SC('"'): - case _SC('\''): { - SQInteger stype; - if((stype=ReadString(CUR_CHAR,false))!=-1){ - RETURN_TOKEN(stype); - } - Error(_SC("error parsing the string")); - } - case _SC('{'): case _SC('}'): case _SC('('): case _SC(')'): case _SC('['): case _SC(']'): - case _SC(';'): case _SC(','): case _SC('?'): case _SC('^'): case _SC('~'): - {SQInteger ret = CUR_CHAR; - NEXT(); RETURN_TOKEN(ret); } - case _SC('.'): - NEXT(); - if (CUR_CHAR != _SC('.')){ RETURN_TOKEN('.') } - NEXT(); - if (CUR_CHAR != _SC('.')){ Error(_SC("invalid token '..'")); } - NEXT(); - RETURN_TOKEN(TK_VARPARAMS); - case _SC('&'): - NEXT(); - if (CUR_CHAR != _SC('&')){ RETURN_TOKEN('&') } - else { NEXT(); RETURN_TOKEN(TK_AND); } - case _SC('|'): - NEXT(); - if (CUR_CHAR != _SC('|')){ RETURN_TOKEN('|') } - else { NEXT(); RETURN_TOKEN(TK_OR); } - case _SC(':'): - NEXT(); - if (CUR_CHAR != _SC(':')){ RETURN_TOKEN(':') } - else { NEXT(); RETURN_TOKEN(TK_DOUBLE_COLON); } - case _SC('*'): - NEXT(); - if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_MULEQ);} - else RETURN_TOKEN('*'); - case _SC('%'): - NEXT(); - if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_MODEQ);} - else RETURN_TOKEN('%'); - case _SC('-'): - NEXT(); - if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_MINUSEQ);} - else if (CUR_CHAR == _SC('-')){ NEXT(); RETURN_TOKEN(TK_MINUSMINUS);} - else RETURN_TOKEN('-'); - case _SC('+'): - NEXT(); - if (CUR_CHAR == _SC('=')){ NEXT(); RETURN_TOKEN(TK_PLUSEQ);} - else if (CUR_CHAR == _SC('+')){ NEXT(); RETURN_TOKEN(TK_PLUSPLUS);} - else RETURN_TOKEN('+'); - case SQUIRREL_EOB: - return 0; - default:{ - if (scisdigit(CUR_CHAR)) { - SQInteger ret = ReadNumber(); - RETURN_TOKEN(ret); - } - else if (scisalpha(CUR_CHAR) || CUR_CHAR == _SC('_')) { - SQInteger t = ReadID(); - RETURN_TOKEN(t); - } - else { - SQInteger c = CUR_CHAR; - if (sciscntrl((int)c)) Error(_SC("unexpected character(control)")); - NEXT(); - RETURN_TOKEN(c); - } - RETURN_TOKEN(0); - } - } - } - return 0; -} - -SQInteger SQLexer::GetIDType(const SQChar *s,SQInteger len) -{ - SQObjectPtr t; - if(_keywords->GetStr(s,len, t)) { - return SQInteger(_integer(t)); - } - return TK_IDENTIFIER; -} - -#ifdef SQUNICODE -#if WCHAR_SIZE == 2 -SQInteger SQLexer::AddUTF16(SQUnsignedInteger ch) -{ - if (ch >= 0x10000) - { - SQUnsignedInteger code = (ch - 0x10000); - APPEND_CHAR((SQChar)(0xD800 | (code >> 10))); - APPEND_CHAR((SQChar)(0xDC00 | (code & 0x3FF))); - return 2; - } - else { - APPEND_CHAR((SQChar)ch); - return 1; - } -} -#endif -#else -SQInteger SQLexer::AddUTF8(SQUnsignedInteger ch) -{ - if (ch < 0x80) { - APPEND_CHAR((char)ch); - return 1; - } - if (ch < 0x800) { - APPEND_CHAR((SQChar)((ch >> 6) | 0xC0)); - APPEND_CHAR((SQChar)((ch & 0x3F) | 0x80)); - return 2; - } - if (ch < 0x10000) { - APPEND_CHAR((SQChar)((ch >> 12) | 0xE0)); - APPEND_CHAR((SQChar)(((ch >> 6) & 0x3F) | 0x80)); - APPEND_CHAR((SQChar)((ch & 0x3F) | 0x80)); - return 3; - } - if (ch < 0x110000) { - APPEND_CHAR((SQChar)((ch >> 18) | 0xF0)); - APPEND_CHAR((SQChar)(((ch >> 12) & 0x3F) | 0x80)); - APPEND_CHAR((SQChar)(((ch >> 6) & 0x3F) | 0x80)); - APPEND_CHAR((SQChar)((ch & 0x3F) | 0x80)); - return 4; - } - return 0; -} -#endif - -SQInteger SQLexer::ProcessStringHexEscape(SQChar *dest, SQInteger maxdigits) -{ - NEXT(); - if (!isxdigit(CUR_CHAR)) Error(_SC("hexadecimal number expected")); - SQInteger n = 0; - while (isxdigit(CUR_CHAR) && n < maxdigits) { - dest[n] = CUR_CHAR; - n++; - NEXT(); - } - dest[n] = 0; - return n; -} - -SQInteger SQLexer::ReadString(SQInteger ndelim,bool verbatim) -{ - INIT_TEMP_STRING(); - NEXT(); - if(IS_EOB()) return -1; - for(;;) { - while(CUR_CHAR != ndelim) { - SQInteger x = CUR_CHAR; - switch (x) { - case SQUIRREL_EOB: - Error(_SC("unfinished string")); - return -1; - case _SC('\n'): - if(!verbatim) Error(_SC("newline in a constant")); - APPEND_CHAR(CUR_CHAR); NEXT(); - _currentline++; - break; - case _SC('\\'): - if(verbatim) { - APPEND_CHAR('\\'); NEXT(); - } - else { - NEXT(); - switch(CUR_CHAR) { - case _SC('x'): { - const SQInteger maxdigits = sizeof(SQChar) * 2; - SQChar temp[maxdigits + 1]; - ProcessStringHexEscape(temp, maxdigits); - SQChar *stemp; - APPEND_CHAR((SQChar)scstrtoul(temp, &stemp, 16)); - } - break; - case _SC('U'): - case _SC('u'): { - const SQInteger maxdigits = CUR_CHAR == 'u' ? 4 : 8; - SQChar temp[8 + 1]; - ProcessStringHexEscape(temp, maxdigits); - SQChar *stemp; -#ifdef SQUNICODE -#if WCHAR_SIZE == 2 - AddUTF16(scstrtoul(temp, &stemp, 16)); -#else - APPEND_CHAR((SQChar)scstrtoul(temp, &stemp, 16)); -#endif -#else - AddUTF8(scstrtoul(temp, &stemp, 16)); -#endif - } - break; - case _SC('t'): APPEND_CHAR(_SC('\t')); NEXT(); break; - case _SC('a'): APPEND_CHAR(_SC('\a')); NEXT(); break; - case _SC('b'): APPEND_CHAR(_SC('\b')); NEXT(); break; - case _SC('n'): APPEND_CHAR(_SC('\n')); NEXT(); break; - case _SC('r'): APPEND_CHAR(_SC('\r')); NEXT(); break; - case _SC('v'): APPEND_CHAR(_SC('\v')); NEXT(); break; - case _SC('f'): APPEND_CHAR(_SC('\f')); NEXT(); break; - case _SC('0'): APPEND_CHAR(_SC('\0')); NEXT(); break; - case _SC('\\'): APPEND_CHAR(_SC('\\')); NEXT(); break; - case _SC('"'): APPEND_CHAR(_SC('"')); NEXT(); break; - case _SC('\''): APPEND_CHAR(_SC('\'')); NEXT(); break; - default: - Error(_SC("unrecognised escaper char")); - break; - } - } - break; - default: - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - } - NEXT(); - if(verbatim && CUR_CHAR == '"') { //double quotation - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - else { - break; - } - } - TERMINATE_BUFFER(); - SQInteger len = _longstr.size()-1; - if(ndelim == _SC('\'')) { - if(len == 0) Error(_SC("empty constant")); - if(len > 1) Error(_SC("constant too long")); - _nvalue = _longstr[0]; - return TK_INTEGER; - } - _svalue = &_longstr[0]; - return TK_STRING_LITERAL; -} - -void LexHexadecimal(const SQChar *s,SQUnsignedInteger *res) -{ - *res = 0; - while(*s != 0) - { - if(scisdigit(*s)) *res = (*res)*16+((*s++)-'0'); - else if(scisxdigit(*s)) *res = (*res)*16+(toupper(*s++)-'A'+10); - else { assert(0); } - } -} - -void LexInteger(const SQChar *s,SQUnsignedInteger *res) -{ - *res = 0; - while(*s != 0) - { - *res = (*res)*10+((*s++)-'0'); - } -} - -SQInteger scisodigit(SQInteger c) { return c >= _SC('0') && c <= _SC('7'); } - -void LexOctal(const SQChar *s,SQUnsignedInteger *res) -{ - *res = 0; - while(*s != 0) - { - if(scisodigit(*s)) *res = (*res)*8+((*s++)-'0'); - else { assert(0); } - } -} - -SQInteger isexponent(SQInteger c) { return c == 'e' || c=='E'; } - - -#define MAX_HEX_DIGITS (sizeof(SQInteger)*2) -SQInteger SQLexer::ReadNumber() -{ -#define TINT 1 -#define TFLOAT 2 -#define THEX 3 -#define TSCIENTIFIC 4 -#define TOCTAL 5 - SQInteger type = TINT, firstchar = CUR_CHAR; - SQChar *sTemp; - INIT_TEMP_STRING(); - NEXT(); - if(firstchar == _SC('0') && (toupper(CUR_CHAR) == _SC('X') || scisodigit(CUR_CHAR)) ) { - if(scisodigit(CUR_CHAR)) { - type = TOCTAL; - while(scisodigit(CUR_CHAR)) { - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - if(scisdigit(CUR_CHAR)) Error(_SC("invalid octal number")); - } - else { - NEXT(); - type = THEX; - while(isxdigit(CUR_CHAR)) { - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - if(_longstr.size() > MAX_HEX_DIGITS) Error(_SC("too many digits for an Hex number")); - } - } - else { - APPEND_CHAR((int)firstchar); - while (CUR_CHAR == _SC('.') || scisdigit(CUR_CHAR) || isexponent(CUR_CHAR)) { - if(CUR_CHAR == _SC('.') || isexponent(CUR_CHAR)) type = TFLOAT; - if(isexponent(CUR_CHAR)) { - if(type != TFLOAT) Error(_SC("invalid numeric format")); - type = TSCIENTIFIC; - APPEND_CHAR(CUR_CHAR); - NEXT(); - if(CUR_CHAR == '+' || CUR_CHAR == '-'){ - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - if(!scisdigit(CUR_CHAR)) Error(_SC("exponent expected")); - } - - APPEND_CHAR(CUR_CHAR); - NEXT(); - } - } - TERMINATE_BUFFER(); - switch(type) { - case TSCIENTIFIC: - case TFLOAT: - _fvalue = (SQFloat)scstrtod(&_longstr[0],&sTemp); - return TK_FLOAT; - case TINT: - LexInteger(&_longstr[0],(SQUnsignedInteger *)&_nvalue); - return TK_INTEGER; - case THEX: - LexHexadecimal(&_longstr[0],(SQUnsignedInteger *)&_nvalue); - return TK_INTEGER; - case TOCTAL: - LexOctal(&_longstr[0],(SQUnsignedInteger *)&_nvalue); - return TK_INTEGER; - } - return 0; -} - -SQInteger SQLexer::ReadID() -{ - SQInteger res; - INIT_TEMP_STRING(); - do { - APPEND_CHAR(CUR_CHAR); - NEXT(); - } while(scisalnum(CUR_CHAR) || CUR_CHAR == _SC('_')); - TERMINATE_BUFFER(); - res = GetIDType(&_longstr[0],_longstr.size() - 1); - if(res == TK_IDENTIFIER || res == TK_CONSTRUCTOR) { - _svalue = &_longstr[0]; - } - return res; -} diff --git a/m_packages/squirrel/squirrel/sqlexer.h b/m_packages/squirrel/squirrel/sqlexer.h deleted file mode 100644 index d731c20e..00000000 --- a/m_packages/squirrel/squirrel/sqlexer.h +++ /dev/null @@ -1,55 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQLEXER_H_ -#define _SQLEXER_H_ - -#ifdef SQUNICODE -typedef SQChar LexChar; -#else -typedef unsigned char LexChar; -#endif - -struct SQLexer -{ - SQLexer(); - ~SQLexer(); - void Init(SQSharedState *ss,SQLEXREADFUNC rg,SQUserPointer up,CompilerErrorFunc efunc,void *ed); - void Error(const SQChar *err); - SQInteger Lex(); - const SQChar *Tok2Str(SQInteger tok); -private: - SQInteger GetIDType(const SQChar *s,SQInteger len); - SQInteger ReadString(SQInteger ndelim,bool verbatim); - SQInteger ReadNumber(); - void LexBlockComment(); - void LexLineComment(); - SQInteger ReadID(); - void Next(); -#ifdef SQUNICODE -#if WCHAR_SIZE == 2 - SQInteger AddUTF16(SQUnsignedInteger ch); -#endif -#else - SQInteger AddUTF8(SQUnsignedInteger ch); -#endif - SQInteger ProcessStringHexEscape(SQChar *dest, SQInteger maxdigits); - SQInteger _curtoken; - SQTable *_keywords; - SQBool _reached_eof; -public: - SQInteger _prevtoken; - SQInteger _currentline; - SQInteger _lasttokenline; - SQInteger _currentcolumn; - const SQChar *_svalue; - SQInteger _nvalue; - SQFloat _fvalue; - SQLEXREADFUNC _readf; - SQUserPointer _up; - LexChar _currdata; - SQSharedState *_sharedstate; - sqvector _longstr; - CompilerErrorFunc _errfunc; - void *_errtarget; -}; - -#endif diff --git a/m_packages/squirrel/squirrel/sqmem.cpp b/m_packages/squirrel/squirrel/sqmem.cpp deleted file mode 100644 index 378e254b..00000000 --- a/m_packages/squirrel/squirrel/sqmem.cpp +++ /dev/null @@ -1,11 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#ifndef SQ_EXCLUDE_DEFAULT_MEMFUNCTIONS -void *sq_vm_malloc(SQUnsignedInteger size){ return malloc(size); } - -void *sq_vm_realloc(void *p, SQUnsignedInteger SQ_UNUSED_ARG(oldsize), SQUnsignedInteger size){ return realloc(p, size); } - -void sq_vm_free(void *p, SQUnsignedInteger SQ_UNUSED_ARG(size)){ free(p); } -#endif diff --git a/m_packages/squirrel/squirrel/sqobject.cpp b/m_packages/squirrel/squirrel/sqobject.cpp deleted file mode 100644 index 7d7f297f..00000000 --- a/m_packages/squirrel/squirrel/sqobject.cpp +++ /dev/null @@ -1,677 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqvm.h" -#include "sqstring.h" -#include "sqarray.h" -#include "sqtable.h" -#include "squserdata.h" -#include "sqfuncproto.h" -#include "sqclass.h" -#include "sqclosure.h" - - -const SQChar *IdType2Name(SQObjectType type) -{ - switch(_RAW_TYPE(type)) - { - case _RT_NULL:return _SC("null"); - case _RT_INTEGER:return _SC("integer"); - case _RT_FLOAT:return _SC("float"); - case _RT_BOOL:return _SC("bool"); - case _RT_STRING:return _SC("string"); - case _RT_TABLE:return _SC("table"); - case _RT_ARRAY:return _SC("array"); - case _RT_GENERATOR:return _SC("generator"); - case _RT_CLOSURE: - case _RT_NATIVECLOSURE: - return _SC("function"); - case _RT_USERDATA: - case _RT_USERPOINTER: - return _SC("userdata"); - case _RT_THREAD: return _SC("thread"); - case _RT_FUNCPROTO: return _SC("function"); - case _RT_CLASS: return _SC("class"); - case _RT_INSTANCE: return _SC("instance"); - case _RT_WEAKREF: return _SC("weakref"); - case _RT_OUTER: return _SC("outer"); - default: - return NULL; - } -} - -const SQChar *GetTypeName(const SQObjectPtr &obj1) -{ - return IdType2Name(sq_type(obj1)); -} - -SQString *SQString::Create(SQSharedState *ss,const SQChar *s,SQInteger len) -{ - SQString *str=ADD_STRING(ss,s,len); - return str; -} - -void SQString::Release() -{ - REMOVE_STRING(_sharedstate,this); -} - -SQInteger SQString::Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval) -{ - SQInteger idx = (SQInteger)TranslateIndex(refpos); - while(idx < _len){ - outkey = (SQInteger)idx; - outval = (SQInteger)((SQUnsignedInteger)_val[idx]); - //return idx for the next iteration - return ++idx; - } - //nothing to iterate anymore - return -1; -} - -SQUnsignedInteger TranslateIndex(const SQObjectPtr &idx) -{ - switch(sq_type(idx)){ - case OT_NULL: - return 0; - case OT_INTEGER: - return (SQUnsignedInteger)_integer(idx); - default: assert(0); break; - } - return 0; -} - -SQWeakRef *SQRefCounted::GetWeakRef(SQObjectType type) -{ - if(!_weakref) { - sq_new(_weakref,SQWeakRef); -#if defined(SQUSEDOUBLE) && !defined(_SQ64) - _weakref->_obj._unVal.raw = 0; //clean the whole union on 32 bits with double -#endif - _weakref->_obj._type = type; - _weakref->_obj._unVal.pRefCounted = this; - } - return _weakref; -} - -SQRefCounted::~SQRefCounted() -{ - if(_weakref) { - _weakref->_obj._type = OT_NULL; - _weakref->_obj._unVal.pRefCounted = NULL; - } -} - -void SQWeakRef::Release() { - if(ISREFCOUNTED(_obj._type)) { - _obj._unVal.pRefCounted->_weakref = NULL; - } - sq_delete(this,SQWeakRef); -} - -bool SQDelegable::GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res) { - if(_delegate) { - return _delegate->Get((*_ss(v)->_metamethods)[mm],res); - } - return false; -} - -bool SQDelegable::SetDelegate(SQTable *mt) -{ - SQTable *temp = mt; - if(temp == this) return false; - while (temp) { - if (temp->_delegate == this) return false; //cycle detected - temp = temp->_delegate; - } - if (mt) __ObjAddRef(mt); - __ObjRelease(_delegate); - _delegate = mt; - return true; -} - -bool SQGenerator::Yield(SQVM *v,SQInteger target) -{ - if(_state==eSuspended) { v->Raise_Error(_SC("internal vm error, yielding dead generator")); return false;} - if(_state==eDead) { v->Raise_Error(_SC("internal vm error, yielding a dead generator")); return false; } - SQInteger size = v->_top-v->_stackbase; - - _stack.resize(size); - SQObject _this = v->_stack[v->_stackbase]; - _stack._vals[0] = ISREFCOUNTED(sq_type(_this)) ? SQObjectPtr(_refcounted(_this)->GetWeakRef(sq_type(_this))) : _this; - for(SQInteger n =1; n_stack[v->_stackbase+n]; - } - for(SQInteger j =0; j < size; j++) - { - v->_stack[v->_stackbase+j].Null(); - } - - _ci = *v->ci; - _ci._generator=NULL; - for(SQInteger i=0;i<_ci._etraps;i++) { - _etraps.push_back(v->_etraps.top()); - v->_etraps.pop_back(); - // store relative stack base and size in case of resume to other _top - SQExceptionTrap &et = _etraps.back(); - et._stackbase -= v->_stackbase; - et._stacksize -= v->_stackbase; - } - _state=eSuspended; - return true; -} - -bool SQGenerator::Resume(SQVM *v,SQObjectPtr &dest) -{ - if(_state==eDead){ v->Raise_Error(_SC("resuming dead generator")); return false; } - if(_state==eRunning){ v->Raise_Error(_SC("resuming active generator")); return false; } - SQInteger size = _stack.size(); - SQInteger target = &dest - &(v->_stack._vals[v->_stackbase]); - assert(target>=0 && target<=255); - SQInteger newbase = v->_top; - if(!v->EnterFrame(v->_top, v->_top + size, false)) - return false; - v->ci->_generator = this; - v->ci->_target = (SQInt32)target; - v->ci->_closure = _ci._closure; - v->ci->_ip = _ci._ip; - v->ci->_literals = _ci._literals; - v->ci->_ncalls = _ci._ncalls; - v->ci->_etraps = _ci._etraps; - v->ci->_root = _ci._root; - - - for(SQInteger i=0;i<_ci._etraps;i++) { - v->_etraps.push_back(_etraps.top()); - _etraps.pop_back(); - SQExceptionTrap &et = v->_etraps.back(); - // restore absolute stack base and size - et._stackbase += newbase; - et._stacksize += newbase; - } - SQObject _this = _stack._vals[0]; - v->_stack[v->_stackbase] = sq_type(_this) == OT_WEAKREF ? _weakref(_this)->_obj : _this; - - for(SQInteger n = 1; n_stack[v->_stackbase+n] = _stack._vals[n]; - _stack._vals[n].Null(); - } - - _state=eRunning; - if (v->_debughook) - v->CallDebugHook(_SC('c')); - - return true; -} - -void SQArray::Extend(const SQArray *a){ - SQInteger xlen; - if((xlen=a->Size())) - for(SQInteger i=0;i_values[i]); -} - -const SQChar* SQFunctionProto::GetLocal(SQVM *vm,SQUnsignedInteger stackbase,SQUnsignedInteger nseq,SQUnsignedInteger nop) -{ - SQUnsignedInteger nvars=_nlocalvarinfos; - const SQChar *res=NULL; - if(nvars>=nseq){ - for(SQUnsignedInteger i=0;i=nop) - { - if(nseq==0){ - vm->Push(vm->_stack[stackbase+_localvarinfos[i]._pos]); - res=_stringval(_localvarinfos[i]._name); - break; - } - nseq--; - } - } - } - return res; -} - - -SQInteger SQFunctionProto::GetLine(SQInstruction *curr) -{ - SQInteger op = (SQInteger)(curr-_instructions); - SQInteger line=_lineinfos[0]._line; - SQInteger low = 0; - SQInteger high = _nlineinfos - 1; - SQInteger mid = 0; - while(low <= high) - { - mid = low + ((high - low) >> 1); - SQInteger curop = _lineinfos[mid]._op; - if(curop > op) - { - high = mid - 1; - } - else if(curop < op) { - if(mid < (_nlineinfos - 1) - && _lineinfos[mid + 1]._op >= op) { - break; - } - low = mid + 1; - } - else { //equal - break; - } - } - - while(mid > 0 && _lineinfos[mid]._op >= op) mid--; - - line = _lineinfos[mid]._line; - - return line; -} - -SQClosure::~SQClosure() -{ - __ObjRelease(_root); - __ObjRelease(_env); - __ObjRelease(_base); - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); -} - -#define _CHECK_IO(exp) { if(!exp)return false; } -bool SafeWrite(HSQUIRRELVM v,SQWRITEFUNC write,SQUserPointer up,SQUserPointer dest,SQInteger size) -{ - if(write(up,dest,size) != size) { - v->Raise_Error(_SC("io error (write function failure)")); - return false; - } - return true; -} - -bool SafeRead(HSQUIRRELVM v,SQREADFUNC read,SQUserPointer up,SQUserPointer dest,SQInteger size) -{ - if(size && read(up,dest,size) != size) { - v->Raise_Error(_SC("io error, read function failure, the origin stream could be corrupted/trucated")); - return false; - } - return true; -} - -bool WriteTag(HSQUIRRELVM v,SQWRITEFUNC write,SQUserPointer up,SQUnsignedInteger32 tag) -{ - return SafeWrite(v,write,up,&tag,sizeof(tag)); -} - -bool CheckTag(HSQUIRRELVM v,SQREADFUNC read,SQUserPointer up,SQUnsignedInteger32 tag) -{ - SQUnsignedInteger32 t; - _CHECK_IO(SafeRead(v,read,up,&t,sizeof(t))); - if(t != tag){ - v->Raise_Error(_SC("invalid or corrupted closure stream")); - return false; - } - return true; -} - -bool WriteObject(HSQUIRRELVM v,SQUserPointer up,SQWRITEFUNC write,SQObjectPtr &o) -{ - SQUnsignedInteger32 _type = (SQUnsignedInteger32)sq_type(o); - _CHECK_IO(SafeWrite(v,write,up,&_type,sizeof(_type))); - switch(sq_type(o)){ - case OT_STRING: - _CHECK_IO(SafeWrite(v,write,up,&_string(o)->_len,sizeof(SQInteger))); - _CHECK_IO(SafeWrite(v,write,up,_stringval(o),sq_rsl(_string(o)->_len))); - break; - case OT_BOOL: - case OT_INTEGER: - _CHECK_IO(SafeWrite(v,write,up,&_integer(o),sizeof(SQInteger)));break; - case OT_FLOAT: - _CHECK_IO(SafeWrite(v,write,up,&_float(o),sizeof(SQFloat)));break; - case OT_NULL: - break; - default: - v->Raise_Error(_SC("cannot serialize a %s"),GetTypeName(o)); - return false; - } - return true; -} - -bool ReadObject(HSQUIRRELVM v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &o) -{ - SQUnsignedInteger32 _type; - _CHECK_IO(SafeRead(v,read,up,&_type,sizeof(_type))); - SQObjectType t = (SQObjectType)_type; - switch(t){ - case OT_STRING:{ - SQInteger len; - _CHECK_IO(SafeRead(v,read,up,&len,sizeof(SQInteger))); - _CHECK_IO(SafeRead(v,read,up,_ss(v)->GetScratchPad(sq_rsl(len)),sq_rsl(len))); - o=SQString::Create(_ss(v),_ss(v)->GetScratchPad(-1),len); - } - break; - case OT_INTEGER:{ - SQInteger i; - _CHECK_IO(SafeRead(v,read,up,&i,sizeof(SQInteger))); o = i; break; - } - case OT_BOOL:{ - SQInteger i; - _CHECK_IO(SafeRead(v,read,up,&i,sizeof(SQInteger))); o._type = OT_BOOL; o._unVal.nInteger = i; break; - } - case OT_FLOAT:{ - SQFloat f; - _CHECK_IO(SafeRead(v,read,up,&f,sizeof(SQFloat))); o = f; break; - } - case OT_NULL: - o.Null(); - break; - default: - v->Raise_Error(_SC("cannot serialize a %s"),IdType2Name(t)); - return false; - } - return true; -} - -bool SQClosure::Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write) -{ - _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_HEAD)); - _CHECK_IO(WriteTag(v,write,up,sizeof(SQChar))); - _CHECK_IO(WriteTag(v,write,up,sizeof(SQInteger))); - _CHECK_IO(WriteTag(v,write,up,sizeof(SQFloat))); - _CHECK_IO(_function->Save(v,up,write)); - _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_TAIL)); - return true; -} - -bool SQClosure::Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret) -{ - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_HEAD)); - _CHECK_IO(CheckTag(v,read,up,sizeof(SQChar))); - _CHECK_IO(CheckTag(v,read,up,sizeof(SQInteger))); - _CHECK_IO(CheckTag(v,read,up,sizeof(SQFloat))); - SQObjectPtr func; - _CHECK_IO(SQFunctionProto::Load(v,up,read,func)); - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_TAIL)); - ret = SQClosure::Create(_ss(v),_funcproto(func),_table(v->_roottable)->GetWeakRef(OT_TABLE)); - //FIXME: load an root for this closure - return true; -} - -SQFunctionProto::SQFunctionProto(SQSharedState *ss) -{ - _stacksize=0; - _bgenerator=false; - INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); -} - -SQFunctionProto::~SQFunctionProto() -{ - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain,this); -} - -bool SQFunctionProto::Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write) -{ - SQInteger i,nliterals = _nliterals,nparameters = _nparameters; - SQInteger noutervalues = _noutervalues,nlocalvarinfos = _nlocalvarinfos; - SQInteger nlineinfos=_nlineinfos,ninstructions = _ninstructions,nfunctions=_nfunctions; - SQInteger ndefaultparams = _ndefaultparams; - _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(WriteObject(v,up,write,_sourcename)); - _CHECK_IO(WriteObject(v,up,write,_name)); - _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(SafeWrite(v,write,up,&nliterals,sizeof(nliterals))); - _CHECK_IO(SafeWrite(v,write,up,&nparameters,sizeof(nparameters))); - _CHECK_IO(SafeWrite(v,write,up,&noutervalues,sizeof(noutervalues))); - _CHECK_IO(SafeWrite(v,write,up,&nlocalvarinfos,sizeof(nlocalvarinfos))); - _CHECK_IO(SafeWrite(v,write,up,&nlineinfos,sizeof(nlineinfos))); - _CHECK_IO(SafeWrite(v,write,up,&ndefaultparams,sizeof(ndefaultparams))); - _CHECK_IO(SafeWrite(v,write,up,&ninstructions,sizeof(ninstructions))); - _CHECK_IO(SafeWrite(v,write,up,&nfunctions,sizeof(nfunctions))); - _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_PART)); - for(i=0;iSave(v,up,write)); - } - _CHECK_IO(SafeWrite(v,write,up,&_stacksize,sizeof(_stacksize))); - _CHECK_IO(SafeWrite(v,write,up,&_bgenerator,sizeof(_bgenerator))); - _CHECK_IO(SafeWrite(v,write,up,&_varparams,sizeof(_varparams))); - return true; -} - -bool SQFunctionProto::Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret) -{ - SQInteger i, nliterals,nparameters; - SQInteger noutervalues ,nlocalvarinfos ; - SQInteger nlineinfos,ninstructions ,nfunctions,ndefaultparams ; - SQObjectPtr sourcename, name; - SQObjectPtr o; - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(ReadObject(v, up, read, sourcename)); - _CHECK_IO(ReadObject(v, up, read, name)); - - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(SafeRead(v,read,up, &nliterals, sizeof(nliterals))); - _CHECK_IO(SafeRead(v,read,up, &nparameters, sizeof(nparameters))); - _CHECK_IO(SafeRead(v,read,up, &noutervalues, sizeof(noutervalues))); - _CHECK_IO(SafeRead(v,read,up, &nlocalvarinfos, sizeof(nlocalvarinfos))); - _CHECK_IO(SafeRead(v,read,up, &nlineinfos, sizeof(nlineinfos))); - _CHECK_IO(SafeRead(v,read,up, &ndefaultparams, sizeof(ndefaultparams))); - _CHECK_IO(SafeRead(v,read,up, &ninstructions, sizeof(ninstructions))); - _CHECK_IO(SafeRead(v,read,up, &nfunctions, sizeof(nfunctions))); - - - SQFunctionProto *f = SQFunctionProto::Create(_opt_ss(v),ninstructions,nliterals,nparameters, - nfunctions,noutervalues,nlineinfos,nlocalvarinfos,ndefaultparams); - SQObjectPtr proto = f; //gets a ref in case of failure - f->_sourcename = sourcename; - f->_name = name; - - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - - for(i = 0;i < nliterals; i++){ - _CHECK_IO(ReadObject(v, up, read, o)); - f->_literals[i] = o; - } - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - - for(i = 0; i < nparameters; i++){ - _CHECK_IO(ReadObject(v, up, read, o)); - f->_parameters[i] = o; - } - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - - for(i = 0; i < noutervalues; i++){ - SQUnsignedInteger type; - SQObjectPtr name; - _CHECK_IO(SafeRead(v,read,up, &type, sizeof(SQUnsignedInteger))); - _CHECK_IO(ReadObject(v, up, read, o)); - _CHECK_IO(ReadObject(v, up, read, name)); - f->_outervalues[i] = SQOuterVar(name,o, (SQOuterType)type); - } - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - - for(i = 0; i < nlocalvarinfos; i++){ - SQLocalVarInfo lvi; - _CHECK_IO(ReadObject(v, up, read, lvi._name)); - _CHECK_IO(SafeRead(v,read,up, &lvi._pos, sizeof(SQUnsignedInteger))); - _CHECK_IO(SafeRead(v,read,up, &lvi._start_op, sizeof(SQUnsignedInteger))); - _CHECK_IO(SafeRead(v,read,up, &lvi._end_op, sizeof(SQUnsignedInteger))); - f->_localvarinfos[i] = lvi; - } - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(SafeRead(v,read,up, f->_lineinfos, sizeof(SQLineInfo)*nlineinfos)); - - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(SafeRead(v,read,up, f->_defaultparams, sizeof(SQInteger)*ndefaultparams)); - - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - _CHECK_IO(SafeRead(v,read,up, f->_instructions, sizeof(SQInstruction)*ninstructions)); - - _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); - for(i = 0; i < nfunctions; i++){ - _CHECK_IO(_funcproto(o)->Load(v, up, read, o)); - f->_functions[i] = o; - } - _CHECK_IO(SafeRead(v,read,up, &f->_stacksize, sizeof(f->_stacksize))); - _CHECK_IO(SafeRead(v,read,up, &f->_bgenerator, sizeof(f->_bgenerator))); - _CHECK_IO(SafeRead(v,read,up, &f->_varparams, sizeof(f->_varparams))); - - ret = f; - return true; -} - -#ifndef NO_GARBAGE_COLLECTOR - -#define START_MARK() if(!(_uiRef&MARK_FLAG)){ \ - _uiRef|=MARK_FLAG; - -#define END_MARK() RemoveFromChain(&_sharedstate->_gc_chain, this); \ - AddToChain(chain, this); } - -void SQVM::Mark(SQCollectable **chain) -{ - START_MARK() - SQSharedState::MarkObject(_lasterror,chain); - SQSharedState::MarkObject(_errorhandler,chain); - SQSharedState::MarkObject(_debughook_closure,chain); - SQSharedState::MarkObject(_roottable, chain); - SQSharedState::MarkObject(temp_reg, chain); - for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain); - for(SQInteger k = 0; k < _callsstacksize; k++) SQSharedState::MarkObject(_callsstack[k]._closure, chain); - END_MARK() -} - -void SQArray::Mark(SQCollectable **chain) -{ - START_MARK() - SQInteger len = _values.size(); - for(SQInteger i = 0;i < len; i++) SQSharedState::MarkObject(_values[i], chain); - END_MARK() -} -void SQTable::Mark(SQCollectable **chain) -{ - START_MARK() - if(_delegate) _delegate->Mark(chain); - SQInteger len = _numofnodes; - for(SQInteger i = 0; i < len; i++){ - SQSharedState::MarkObject(_nodes[i].key, chain); - SQSharedState::MarkObject(_nodes[i].val, chain); - } - END_MARK() -} - -void SQClass::Mark(SQCollectable **chain) -{ - START_MARK() - _members->Mark(chain); - if(_base) _base->Mark(chain); - SQSharedState::MarkObject(_attributes, chain); - for(SQUnsignedInteger i =0; i< _defaultvalues.size(); i++) { - SQSharedState::MarkObject(_defaultvalues[i].val, chain); - SQSharedState::MarkObject(_defaultvalues[i].attrs, chain); - } - for(SQUnsignedInteger j =0; j< _methods.size(); j++) { - SQSharedState::MarkObject(_methods[j].val, chain); - SQSharedState::MarkObject(_methods[j].attrs, chain); - } - for(SQUnsignedInteger k =0; k< MT_LAST; k++) { - SQSharedState::MarkObject(_metamethods[k], chain); - } - END_MARK() -} - -void SQInstance::Mark(SQCollectable **chain) -{ - START_MARK() - _class->Mark(chain); - SQUnsignedInteger nvalues = _class->_defaultvalues.size(); - for(SQUnsignedInteger i =0; i< nvalues; i++) { - SQSharedState::MarkObject(_values[i], chain); - } - END_MARK() -} - -void SQGenerator::Mark(SQCollectable **chain) -{ - START_MARK() - for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain); - SQSharedState::MarkObject(_closure, chain); - END_MARK() -} - -void SQFunctionProto::Mark(SQCollectable **chain) -{ - START_MARK() - for(SQInteger i = 0; i < _nliterals; i++) SQSharedState::MarkObject(_literals[i], chain); - for(SQInteger k = 0; k < _nfunctions; k++) SQSharedState::MarkObject(_functions[k], chain); - END_MARK() -} - -void SQClosure::Mark(SQCollectable **chain) -{ - START_MARK() - if(_base) _base->Mark(chain); - SQFunctionProto *fp = _function; - fp->Mark(chain); - for(SQInteger i = 0; i < fp->_noutervalues; i++) SQSharedState::MarkObject(_outervalues[i], chain); - for(SQInteger k = 0; k < fp->_ndefaultparams; k++) SQSharedState::MarkObject(_defaultparams[k], chain); - END_MARK() -} - -void SQNativeClosure::Mark(SQCollectable **chain) -{ - START_MARK() - for(SQUnsignedInteger i = 0; i < _noutervalues; i++) SQSharedState::MarkObject(_outervalues[i], chain); - END_MARK() -} - -void SQOuter::Mark(SQCollectable **chain) -{ - START_MARK() - /* If the valptr points to a closed value, that value is alive */ - if(_valptr == &_value) { - SQSharedState::MarkObject(_value, chain); - } - END_MARK() -} - -void SQUserData::Mark(SQCollectable **chain){ - START_MARK() - if(_delegate) _delegate->Mark(chain); - END_MARK() -} - -void SQCollectable::UnMark() { _uiRef&=~MARK_FLAG; } - -#endif - diff --git a/m_packages/squirrel/squirrel/sqobject.h b/m_packages/squirrel/squirrel/sqobject.h deleted file mode 100644 index a2022227..00000000 --- a/m_packages/squirrel/squirrel/sqobject.h +++ /dev/null @@ -1,353 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQOBJECT_H_ -#define _SQOBJECT_H_ - -#include "squtils.h" - -#ifdef _SQ64 -#define UINT_MINUS_ONE (0xFFFFFFFFFFFFFFFF) -#else -#define UINT_MINUS_ONE (0xFFFFFFFF) -#endif - -#define SQ_CLOSURESTREAM_HEAD (('S'<<24)|('Q'<<16)|('I'<<8)|('R')) -#define SQ_CLOSURESTREAM_PART (('P'<<24)|('A'<<16)|('R'<<8)|('T')) -#define SQ_CLOSURESTREAM_TAIL (('T'<<24)|('A'<<16)|('I'<<8)|('L')) - -struct SQSharedState; - -enum SQMetaMethod{ - MT_ADD=0, - MT_SUB=1, - MT_MUL=2, - MT_DIV=3, - MT_UNM=4, - MT_MODULO=5, - MT_SET=6, - MT_GET=7, - MT_TYPEOF=8, - MT_NEXTI=9, - MT_CMP=10, - MT_CALL=11, - MT_CLONED=12, - MT_NEWSLOT=13, - MT_DELSLOT=14, - MT_TOSTRING=15, - MT_NEWMEMBER=16, - MT_INHERITED=17, - MT_LAST = 18 -}; - -#define MM_ADD _SC("_add") -#define MM_SUB _SC("_sub") -#define MM_MUL _SC("_mul") -#define MM_DIV _SC("_div") -#define MM_UNM _SC("_unm") -#define MM_MODULO _SC("_modulo") -#define MM_SET _SC("_set") -#define MM_GET _SC("_get") -#define MM_TYPEOF _SC("_typeof") -#define MM_NEXTI _SC("_nexti") -#define MM_CMP _SC("_cmp") -#define MM_CALL _SC("_call") -#define MM_CLONED _SC("_cloned") -#define MM_NEWSLOT _SC("_newslot") -#define MM_DELSLOT _SC("_delslot") -#define MM_TOSTRING _SC("_tostring") -#define MM_NEWMEMBER _SC("_newmember") -#define MM_INHERITED _SC("_inherited") - - -#define _CONSTRUCT_VECTOR(type,size,ptr) { \ - for(SQInteger n = 0; n < ((SQInteger)size); n++) { \ - new (&ptr[n]) type(); \ - } \ -} - -#define _DESTRUCT_VECTOR(type,size,ptr) { \ - for(SQInteger nl = 0; nl < ((SQInteger)size); nl++) { \ - ptr[nl].~type(); \ - } \ -} - -#define _COPY_VECTOR(dest,src,size) { \ - for(SQInteger _n_ = 0; _n_ < ((SQInteger)size); _n_++) { \ - dest[_n_] = src[_n_]; \ - } \ -} - -#define _NULL_SQOBJECT_VECTOR(vec,size) { \ - for(SQInteger _n_ = 0; _n_ < ((SQInteger)size); _n_++) { \ - vec[_n_].Null(); \ - } \ -} - -#define MINPOWER2 4 - -struct SQRefCounted -{ - SQUnsignedInteger _uiRef; - struct SQWeakRef *_weakref; - SQRefCounted() { _uiRef = 0; _weakref = NULL; } - virtual ~SQRefCounted(); - SQWeakRef *GetWeakRef(SQObjectType type); - virtual void Release()=0; - -}; - -struct SQWeakRef : SQRefCounted -{ - void Release(); - SQObject _obj; -}; - -#define _realval(o) (sq_type((o)) != OT_WEAKREF?(SQObject)o:_weakref(o)->_obj) - -struct SQObjectPtr; - -#define __AddRef(type,unval) if(ISREFCOUNTED(type)) \ - { \ - unval.pRefCounted->_uiRef++; \ - } - -#define __Release(type,unval) if(ISREFCOUNTED(type) && ((--unval.pRefCounted->_uiRef)==0)) \ - { \ - unval.pRefCounted->Release(); \ - } - -#define __ObjRelease(obj) { \ - if((obj)) { \ - (obj)->_uiRef--; \ - if((obj)->_uiRef == 0) \ - (obj)->Release(); \ - (obj) = NULL; \ - } \ -} - -#define __ObjAddRef(obj) { \ - (obj)->_uiRef++; \ -} - -#define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE) -#define raw_type(obj) _RAW_TYPE((obj)._type) - -#define _integer(obj) ((obj)._unVal.nInteger) -#define _float(obj) ((obj)._unVal.fFloat) -#define _string(obj) ((obj)._unVal.pString) -#define _table(obj) ((obj)._unVal.pTable) -#define _array(obj) ((obj)._unVal.pArray) -#define _closure(obj) ((obj)._unVal.pClosure) -#define _generator(obj) ((obj)._unVal.pGenerator) -#define _nativeclosure(obj) ((obj)._unVal.pNativeClosure) -#define _userdata(obj) ((obj)._unVal.pUserData) -#define _userpointer(obj) ((obj)._unVal.pUserPointer) -#define _thread(obj) ((obj)._unVal.pThread) -#define _funcproto(obj) ((obj)._unVal.pFunctionProto) -#define _class(obj) ((obj)._unVal.pClass) -#define _instance(obj) ((obj)._unVal.pInstance) -#define _delegable(obj) ((SQDelegable *)(obj)._unVal.pDelegable) -#define _weakref(obj) ((obj)._unVal.pWeakRef) -#define _outer(obj) ((obj)._unVal.pOuter) -#define _refcounted(obj) ((obj)._unVal.pRefCounted) -#define _rawval(obj) ((obj)._unVal.raw) - -#define _stringval(obj) (obj)._unVal.pString->_val -#define _userdataval(obj) ((SQUserPointer)sq_aligning((obj)._unVal.pUserData + 1)) - -#define tofloat(num) ((sq_type(num)==OT_INTEGER)?(SQFloat)_integer(num):_float(num)) -#define tointeger(num) ((sq_type(num)==OT_FLOAT)?(SQInteger)_float(num):_integer(num)) -///////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////// -#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) -#define SQ_REFOBJECT_INIT() SQ_OBJECT_RAWINIT() -#else -#define SQ_REFOBJECT_INIT() -#endif - -#define _REF_TYPE_DECL(type,_class,sym) \ - SQObjectPtr(_class * x) \ - { \ - SQ_OBJECT_RAWINIT() \ - _type=type; \ - _unVal.sym = x; \ - assert(_unVal.pTable); \ - _unVal.pRefCounted->_uiRef++; \ - } \ - inline SQObjectPtr& operator=(_class *x) \ - { \ - SQObjectType tOldType; \ - SQObjectValue unOldVal; \ - tOldType=_type; \ - unOldVal=_unVal; \ - _type = type; \ - SQ_REFOBJECT_INIT() \ - _unVal.sym = x; \ - _unVal.pRefCounted->_uiRef++; \ - __Release(tOldType,unOldVal); \ - return *this; \ - } - -#define _SCALAR_TYPE_DECL(type,_class,sym) \ - SQObjectPtr(_class x) \ - { \ - SQ_OBJECT_RAWINIT() \ - _type=type; \ - _unVal.sym = x; \ - } \ - inline SQObjectPtr& operator=(_class x) \ - { \ - __Release(_type,_unVal); \ - _type = type; \ - SQ_OBJECT_RAWINIT() \ - _unVal.sym = x; \ - return *this; \ - } -struct SQObjectPtr : public SQObject -{ - SQObjectPtr() - { - SQ_OBJECT_RAWINIT() - _type=OT_NULL; - _unVal.pUserPointer=NULL; - } - SQObjectPtr(const SQObjectPtr &o) - { - _type = o._type; - _unVal = o._unVal; - __AddRef(_type,_unVal); - } - SQObjectPtr(const SQObject &o) - { - _type = o._type; - _unVal = o._unVal; - __AddRef(_type,_unVal); - } - _REF_TYPE_DECL(OT_TABLE,SQTable,pTable) - _REF_TYPE_DECL(OT_CLASS,SQClass,pClass) - _REF_TYPE_DECL(OT_INSTANCE,SQInstance,pInstance) - _REF_TYPE_DECL(OT_ARRAY,SQArray,pArray) - _REF_TYPE_DECL(OT_CLOSURE,SQClosure,pClosure) - _REF_TYPE_DECL(OT_NATIVECLOSURE,SQNativeClosure,pNativeClosure) - _REF_TYPE_DECL(OT_OUTER,SQOuter,pOuter) - _REF_TYPE_DECL(OT_GENERATOR,SQGenerator,pGenerator) - _REF_TYPE_DECL(OT_STRING,SQString,pString) - _REF_TYPE_DECL(OT_USERDATA,SQUserData,pUserData) - _REF_TYPE_DECL(OT_WEAKREF,SQWeakRef,pWeakRef) - _REF_TYPE_DECL(OT_THREAD,SQVM,pThread) - _REF_TYPE_DECL(OT_FUNCPROTO,SQFunctionProto,pFunctionProto) - - _SCALAR_TYPE_DECL(OT_INTEGER,SQInteger,nInteger) - _SCALAR_TYPE_DECL(OT_FLOAT,SQFloat,fFloat) - _SCALAR_TYPE_DECL(OT_USERPOINTER,SQUserPointer,pUserPointer) - - SQObjectPtr(bool bBool) - { - SQ_OBJECT_RAWINIT() - _type = OT_BOOL; - _unVal.nInteger = bBool?1:0; - } - inline SQObjectPtr& operator=(bool b) - { - __Release(_type,_unVal); - SQ_OBJECT_RAWINIT() - _type = OT_BOOL; - _unVal.nInteger = b?1:0; - return *this; - } - - ~SQObjectPtr() - { - __Release(_type,_unVal); - } - - inline SQObjectPtr& operator=(const SQObjectPtr& obj) - { - SQObjectType tOldType; - SQObjectValue unOldVal; - tOldType=_type; - unOldVal=_unVal; - _unVal = obj._unVal; - _type = obj._type; - __AddRef(_type,_unVal); - __Release(tOldType,unOldVal); - return *this; - } - inline SQObjectPtr& operator=(const SQObject& obj) - { - SQObjectType tOldType; - SQObjectValue unOldVal; - tOldType=_type; - unOldVal=_unVal; - _unVal = obj._unVal; - _type = obj._type; - __AddRef(_type,_unVal); - __Release(tOldType,unOldVal); - return *this; - } - inline void Null() - { - SQObjectType tOldType = _type; - SQObjectValue unOldVal = _unVal; - _type = OT_NULL; - _unVal.raw = (SQRawObjectVal)NULL; - __Release(tOldType ,unOldVal); - } - private: - SQObjectPtr(const SQChar *){} //safety -}; - - -inline void _Swap(SQObject &a,SQObject &b) -{ - SQObjectType tOldType = a._type; - SQObjectValue unOldVal = a._unVal; - a._type = b._type; - a._unVal = b._unVal; - b._type = tOldType; - b._unVal = unOldVal; -} - -///////////////////////////////////////////////////////////////////////////////////// -#ifndef NO_GARBAGE_COLLECTOR -#define MARK_FLAG 0x80000000 -struct SQCollectable : public SQRefCounted { - SQCollectable *_next; - SQCollectable *_prev; - SQSharedState *_sharedstate; - virtual SQObjectType GetType()=0; - virtual void Release()=0; - virtual void Mark(SQCollectable **chain)=0; - void UnMark(); - virtual void Finalize()=0; - static void AddToChain(SQCollectable **chain,SQCollectable *c); - static void RemoveFromChain(SQCollectable **chain,SQCollectable *c); -}; - - -#define ADD_TO_CHAIN(chain,obj) AddToChain(chain,obj) -#define REMOVE_FROM_CHAIN(chain,obj) {if(!(_uiRef&MARK_FLAG))RemoveFromChain(chain,obj);} -#define CHAINABLE_OBJ SQCollectable -#define INIT_CHAIN() {_next=NULL;_prev=NULL;_sharedstate=ss;} -#else - -#define ADD_TO_CHAIN(chain,obj) ((void)0) -#define REMOVE_FROM_CHAIN(chain,obj) ((void)0) -#define CHAINABLE_OBJ SQRefCounted -#define INIT_CHAIN() ((void)0) -#endif - -struct SQDelegable : public CHAINABLE_OBJ { - bool SetDelegate(SQTable *m); - virtual bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res); - SQTable *_delegate; -}; - -SQUnsignedInteger TranslateIndex(const SQObjectPtr &idx); -typedef sqvector SQObjectPtrVec; -typedef sqvector SQIntVec; -const SQChar *GetTypeName(const SQObjectPtr &obj1); -const SQChar *IdType2Name(SQObjectType type); - - - -#endif //_SQOBJECT_H_ diff --git a/m_packages/squirrel/squirrel/sqopcodes.h b/m_packages/squirrel/squirrel/sqopcodes.h deleted file mode 100644 index 15d80e4b..00000000 --- a/m_packages/squirrel/squirrel/sqopcodes.h +++ /dev/null @@ -1,132 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQOPCODES_H_ -#define _SQOPCODES_H_ - -#define MAX_FUNC_STACKSIZE 0xFF -#define MAX_LITERALS ((SQInteger)0x7FFFFFFF) - -enum BitWiseOP { - BW_AND = 0, - BW_OR = 2, - BW_XOR = 3, - BW_SHIFTL = 4, - BW_SHIFTR = 5, - BW_USHIFTR = 6 -}; - -enum CmpOP { - CMP_G = 0, - CMP_GE = 2, - CMP_L = 3, - CMP_LE = 4, - CMP_3W = 5 -}; - -enum NewObjectType { - NOT_TABLE = 0, - NOT_ARRAY = 1, - NOT_CLASS = 2 -}; - -enum AppendArrayType { - AAT_STACK = 0, - AAT_LITERAL = 1, - AAT_INT = 2, - AAT_FLOAT = 3, - AAT_BOOL = 4 -}; - -enum SQOpcode -{ - _OP_LINE= 0x00, - _OP_LOAD= 0x01, - _OP_LOADINT= 0x02, - _OP_LOADFLOAT= 0x03, - _OP_DLOAD= 0x04, - _OP_TAILCALL= 0x05, - _OP_CALL= 0x06, - _OP_PREPCALL= 0x07, - _OP_PREPCALLK= 0x08, - _OP_GETK= 0x09, - _OP_MOVE= 0x0A, - _OP_NEWSLOT= 0x0B, - _OP_DELETE= 0x0C, - _OP_SET= 0x0D, - _OP_GET= 0x0E, - _OP_EQ= 0x0F, - _OP_NE= 0x10, - _OP_ADD= 0x11, - _OP_SUB= 0x12, - _OP_MUL= 0x13, - _OP_DIV= 0x14, - _OP_MOD= 0x15, - _OP_BITW= 0x16, - _OP_RETURN= 0x17, - _OP_LOADNULLS= 0x18, - _OP_LOADROOT= 0x19, - _OP_LOADBOOL= 0x1A, - _OP_DMOVE= 0x1B, - _OP_JMP= 0x1C, - //_OP_JNZ= 0x1D, - _OP_JCMP= 0x1D, - _OP_JZ= 0x1E, - _OP_SETOUTER= 0x1F, - _OP_GETOUTER= 0x20, - _OP_NEWOBJ= 0x21, - _OP_APPENDARRAY= 0x22, - _OP_COMPARITH= 0x23, - _OP_INC= 0x24, - _OP_INCL= 0x25, - _OP_PINC= 0x26, - _OP_PINCL= 0x27, - _OP_CMP= 0x28, - _OP_EXISTS= 0x29, - _OP_INSTANCEOF= 0x2A, - _OP_AND= 0x2B, - _OP_OR= 0x2C, - _OP_NEG= 0x2D, - _OP_NOT= 0x2E, - _OP_BWNOT= 0x2F, - _OP_CLOSURE= 0x30, - _OP_YIELD= 0x31, - _OP_RESUME= 0x32, - _OP_FOREACH= 0x33, - _OP_POSTFOREACH= 0x34, - _OP_CLONE= 0x35, - _OP_TYPEOF= 0x36, - _OP_PUSHTRAP= 0x37, - _OP_POPTRAP= 0x38, - _OP_THROW= 0x39, - _OP_NEWSLOTA= 0x3A, - _OP_GETBASE= 0x3B, - _OP_CLOSE= 0x3C -}; - -struct SQInstructionDesc { - const SQChar *name; -}; - -struct SQInstruction -{ - SQInstruction(){}; - SQInstruction(SQOpcode _op,SQInteger a0=0,SQInteger a1=0,SQInteger a2=0,SQInteger a3=0) - { op = (unsigned char)_op; - _arg0 = (unsigned char)a0;_arg1 = (SQInt32)a1; - _arg2 = (unsigned char)a2;_arg3 = (unsigned char)a3; - } - - - SQInt32 _arg1; - unsigned char op; - unsigned char _arg0; - unsigned char _arg2; - unsigned char _arg3; -}; - -#include "squtils.h" -typedef sqvector SQInstructionVec; - -#define NEW_SLOT_ATTRIBUTES_FLAG 0x01 -#define NEW_SLOT_STATIC_FLAG 0x02 - -#endif // _SQOPCODES_H_ diff --git a/m_packages/squirrel/squirrel/sqpcheader.h b/m_packages/squirrel/squirrel/sqpcheader.h deleted file mode 100644 index 8df5ef4c..00000000 --- a/m_packages/squirrel/squirrel/sqpcheader.h +++ /dev/null @@ -1,20 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQPCHEADER_H_ -#define _SQPCHEADER_H_ - -#if defined(_MSC_VER) && defined(_DEBUG) -#include -#endif - -#include -#include -#include -#include -#include -#include -//squirrel stuff -#include -#include "sqobject.h" -#include "sqstate.h" - -#endif //_SQPCHEADER_H_ diff --git a/m_packages/squirrel/squirrel/sqstate.cpp b/m_packages/squirrel/squirrel/sqstate.cpp deleted file mode 100644 index c89bdc4a..00000000 --- a/m_packages/squirrel/squirrel/sqstate.cpp +++ /dev/null @@ -1,647 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqopcodes.h" -#include "sqvm.h" -#include "sqfuncproto.h" -#include "sqclosure.h" -#include "sqstring.h" -#include "sqtable.h" -#include "sqarray.h" -#include "squserdata.h" -#include "sqclass.h" - -SQSharedState::SQSharedState() -{ - _compilererrorhandler = NULL; - _printfunc = NULL; - _errorfunc = NULL; - _debuginfo = false; - _notifyallexceptions = false; - _foreignptr = NULL; - _releasehook = NULL; -} - -#define newsysstring(s) { \ - _systemstrings->push_back(SQString::Create(this,s)); \ - } - -#define newmetamethod(s) { \ - _metamethods->push_back(SQString::Create(this,s)); \ - _table(_metamethodsmap)->NewSlot(_metamethods->back(),(SQInteger)(_metamethods->size()-1)); \ - } - -bool CompileTypemask(SQIntVec &res,const SQChar *typemask) -{ - SQInteger i = 0; - SQInteger mask = 0; - while(typemask[i] != 0) { - switch(typemask[i]) { - case 'o': mask |= _RT_NULL; break; - case 'i': mask |= _RT_INTEGER; break; - case 'f': mask |= _RT_FLOAT; break; - case 'n': mask |= (_RT_FLOAT | _RT_INTEGER); break; - case 's': mask |= _RT_STRING; break; - case 't': mask |= _RT_TABLE; break; - case 'a': mask |= _RT_ARRAY; break; - case 'u': mask |= _RT_USERDATA; break; - case 'c': mask |= (_RT_CLOSURE | _RT_NATIVECLOSURE); break; - case 'b': mask |= _RT_BOOL; break; - case 'g': mask |= _RT_GENERATOR; break; - case 'p': mask |= _RT_USERPOINTER; break; - case 'v': mask |= _RT_THREAD; break; - case 'x': mask |= _RT_INSTANCE; break; - case 'y': mask |= _RT_CLASS; break; - case 'r': mask |= _RT_WEAKREF; break; - case '.': mask = -1; res.push_back(mask); i++; mask = 0; continue; - case ' ': i++; continue; //ignores spaces - default: - return false; - } - i++; - if(typemask[i] == '|') { - i++; - if(typemask[i] == 0) - return false; - continue; - } - res.push_back(mask); - mask = 0; - - } - return true; -} - -SQTable *CreateDefaultDelegate(SQSharedState *ss,const SQRegFunction *funcz) -{ - SQInteger i=0; - SQTable *t=SQTable::Create(ss,0); - while(funcz[i].name!=0){ - SQNativeClosure *nc = SQNativeClosure::Create(ss,funcz[i].f,0); - nc->_nparamscheck = funcz[i].nparamscheck; - nc->_name = SQString::Create(ss,funcz[i].name); - if(funcz[i].typemask && !CompileTypemask(nc->_typecheck,funcz[i].typemask)) - return NULL; - t->NewSlot(SQString::Create(ss,funcz[i].name),nc); - i++; - } - return t; -} - -void SQSharedState::Init() -{ - _scratchpad=NULL; - _scratchpadsize=0; -#ifndef NO_GARBAGE_COLLECTOR - _gc_chain=NULL; -#endif - _stringtable = (SQStringTable*)SQ_MALLOC(sizeof(SQStringTable)); - new (_stringtable) SQStringTable(this); - sq_new(_metamethods,SQObjectPtrVec); - sq_new(_systemstrings,SQObjectPtrVec); - sq_new(_types,SQObjectPtrVec); - _metamethodsmap = SQTable::Create(this,MT_LAST-1); - //adding type strings to avoid memory trashing - //types names - newsysstring(_SC("null")); - newsysstring(_SC("table")); - newsysstring(_SC("array")); - newsysstring(_SC("closure")); - newsysstring(_SC("string")); - newsysstring(_SC("userdata")); - newsysstring(_SC("integer")); - newsysstring(_SC("float")); - newsysstring(_SC("userpointer")); - newsysstring(_SC("function")); - newsysstring(_SC("generator")); - newsysstring(_SC("thread")); - newsysstring(_SC("class")); - newsysstring(_SC("instance")); - newsysstring(_SC("bool")); - //meta methods - newmetamethod(MM_ADD); - newmetamethod(MM_SUB); - newmetamethod(MM_MUL); - newmetamethod(MM_DIV); - newmetamethod(MM_UNM); - newmetamethod(MM_MODULO); - newmetamethod(MM_SET); - newmetamethod(MM_GET); - newmetamethod(MM_TYPEOF); - newmetamethod(MM_NEXTI); - newmetamethod(MM_CMP); - newmetamethod(MM_CALL); - newmetamethod(MM_CLONED); - newmetamethod(MM_NEWSLOT); - newmetamethod(MM_DELSLOT); - newmetamethod(MM_TOSTRING); - newmetamethod(MM_NEWMEMBER); - newmetamethod(MM_INHERITED); - - _constructoridx = SQString::Create(this,_SC("constructor")); - _registry = SQTable::Create(this,0); - _consts = SQTable::Create(this,0); - _table_default_delegate = CreateDefaultDelegate(this,_table_default_delegate_funcz); - _array_default_delegate = CreateDefaultDelegate(this,_array_default_delegate_funcz); - _string_default_delegate = CreateDefaultDelegate(this,_string_default_delegate_funcz); - _number_default_delegate = CreateDefaultDelegate(this,_number_default_delegate_funcz); - _closure_default_delegate = CreateDefaultDelegate(this,_closure_default_delegate_funcz); - _generator_default_delegate = CreateDefaultDelegate(this,_generator_default_delegate_funcz); - _thread_default_delegate = CreateDefaultDelegate(this,_thread_default_delegate_funcz); - _class_default_delegate = CreateDefaultDelegate(this,_class_default_delegate_funcz); - _instance_default_delegate = CreateDefaultDelegate(this,_instance_default_delegate_funcz); - _weakref_default_delegate = CreateDefaultDelegate(this,_weakref_default_delegate_funcz); -} - -SQSharedState::~SQSharedState() -{ - if(_releasehook) { _releasehook(_foreignptr,0); _releasehook = NULL; } - _constructoridx.Null(); - _table(_registry)->Finalize(); - _table(_consts)->Finalize(); - _table(_metamethodsmap)->Finalize(); - _registry.Null(); - _consts.Null(); - _metamethodsmap.Null(); - while(!_systemstrings->empty()) { - _systemstrings->back().Null(); - _systemstrings->pop_back(); - } - _thread(_root_vm)->Finalize(); - _root_vm.Null(); - _table_default_delegate.Null(); - _array_default_delegate.Null(); - _string_default_delegate.Null(); - _number_default_delegate.Null(); - _closure_default_delegate.Null(); - _generator_default_delegate.Null(); - _thread_default_delegate.Null(); - _class_default_delegate.Null(); - _instance_default_delegate.Null(); - _weakref_default_delegate.Null(); - _refs_table.Finalize(); -#ifndef NO_GARBAGE_COLLECTOR - SQCollectable *t = _gc_chain; - SQCollectable *nx = NULL; - if(t) { - t->_uiRef++; - while(t) { - t->Finalize(); - nx = t->_next; - if(nx) nx->_uiRef++; - if(--t->_uiRef == 0) - t->Release(); - t = nx; - } - } - assert(_gc_chain==NULL); //just to proove a theory - while(_gc_chain){ - _gc_chain->_uiRef++; - _gc_chain->Release(); - } -#endif - - sq_delete(_types,SQObjectPtrVec); - sq_delete(_systemstrings,SQObjectPtrVec); - sq_delete(_metamethods,SQObjectPtrVec); - sq_delete(_stringtable,SQStringTable); - if(_scratchpad)SQ_FREE(_scratchpad,_scratchpadsize); -} - - -SQInteger SQSharedState::GetMetaMethodIdxByName(const SQObjectPtr &name) -{ - if(sq_type(name) != OT_STRING) - return -1; - SQObjectPtr ret; - if(_table(_metamethodsmap)->Get(name,ret)) { - return _integer(ret); - } - return -1; -} - -#ifndef NO_GARBAGE_COLLECTOR - -void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain) -{ - switch(sq_type(o)){ - case OT_TABLE:_table(o)->Mark(chain);break; - case OT_ARRAY:_array(o)->Mark(chain);break; - case OT_USERDATA:_userdata(o)->Mark(chain);break; - case OT_CLOSURE:_closure(o)->Mark(chain);break; - case OT_NATIVECLOSURE:_nativeclosure(o)->Mark(chain);break; - case OT_GENERATOR:_generator(o)->Mark(chain);break; - case OT_THREAD:_thread(o)->Mark(chain);break; - case OT_CLASS:_class(o)->Mark(chain);break; - case OT_INSTANCE:_instance(o)->Mark(chain);break; - case OT_OUTER:_outer(o)->Mark(chain);break; - case OT_FUNCPROTO:_funcproto(o)->Mark(chain);break; - default: break; //shutup compiler - } -} - -void SQSharedState::RunMark(SQVM* SQ_UNUSED_ARG(vm),SQCollectable **tchain) -{ - SQVM *vms = _thread(_root_vm); - - vms->Mark(tchain); - - _refs_table.Mark(tchain); - MarkObject(_registry,tchain); - MarkObject(_consts,tchain); - MarkObject(_metamethodsmap,tchain); - MarkObject(_table_default_delegate,tchain); - MarkObject(_array_default_delegate,tchain); - MarkObject(_string_default_delegate,tchain); - MarkObject(_number_default_delegate,tchain); - MarkObject(_generator_default_delegate,tchain); - MarkObject(_thread_default_delegate,tchain); - MarkObject(_closure_default_delegate,tchain); - MarkObject(_class_default_delegate,tchain); - MarkObject(_instance_default_delegate,tchain); - MarkObject(_weakref_default_delegate,tchain); - -} - -SQInteger SQSharedState::ResurrectUnreachable(SQVM *vm) -{ - SQInteger n=0; - SQCollectable *tchain=NULL; - - RunMark(vm,&tchain); - - SQCollectable *resurrected = _gc_chain; - SQCollectable *t = resurrected; - - _gc_chain = tchain; - - SQArray *ret = NULL; - if(resurrected) { - ret = SQArray::Create(this,0); - SQCollectable *rlast = NULL; - while(t) { - rlast = t; - SQObjectType type = t->GetType(); - if(type != OT_FUNCPROTO && type != OT_OUTER) { - SQObject sqo; - sqo._type = type; - sqo._unVal.pRefCounted = t; - ret->Append(sqo); - } - t = t->_next; - n++; - } - - assert(rlast->_next == NULL); - rlast->_next = _gc_chain; - if(_gc_chain) - { - _gc_chain->_prev = rlast; - } - _gc_chain = resurrected; - } - - t = _gc_chain; - while(t) { - t->UnMark(); - t = t->_next; - } - - if(ret) { - SQObjectPtr temp = ret; - vm->Push(temp); - } - else { - vm->PushNull(); - } - return n; -} - -SQInteger SQSharedState::CollectGarbage(SQVM *vm) -{ - SQInteger n = 0; - SQCollectable *tchain = NULL; - - RunMark(vm,&tchain); - - SQCollectable *t = _gc_chain; - SQCollectable *nx = NULL; - if(t) { - t->_uiRef++; - while(t) { - t->Finalize(); - nx = t->_next; - if(nx) nx->_uiRef++; - if(--t->_uiRef == 0) - t->Release(); - t = nx; - n++; - } - } - - t = tchain; - while(t) { - t->UnMark(); - t = t->_next; - } - _gc_chain = tchain; - - return n; -} -#endif - -#ifndef NO_GARBAGE_COLLECTOR -void SQCollectable::AddToChain(SQCollectable **chain,SQCollectable *c) -{ - c->_prev = NULL; - c->_next = *chain; - if(*chain) (*chain)->_prev = c; - *chain = c; -} - -void SQCollectable::RemoveFromChain(SQCollectable **chain,SQCollectable *c) -{ - if(c->_prev) c->_prev->_next = c->_next; - else *chain = c->_next; - if(c->_next) - c->_next->_prev = c->_prev; - c->_next = NULL; - c->_prev = NULL; -} -#endif - -SQChar* SQSharedState::GetScratchPad(SQInteger size) -{ - SQInteger newsize; - if(size>0) { - if(_scratchpadsize < size) { - newsize = size + (size>>1); - _scratchpad = (SQChar *)SQ_REALLOC(_scratchpad,_scratchpadsize,newsize); - _scratchpadsize = newsize; - - }else if(_scratchpadsize >= (size<<5)) { - newsize = _scratchpadsize >> 1; - _scratchpad = (SQChar *)SQ_REALLOC(_scratchpad,_scratchpadsize,newsize); - _scratchpadsize = newsize; - } - } - return _scratchpad; -} - -RefTable::RefTable() -{ - AllocNodes(4); -} - -void RefTable::Finalize() -{ - RefNode *nodes = _nodes; - for(SQUnsignedInteger n = 0; n < _numofslots; n++) { - nodes->obj.Null(); - nodes++; - } -} - -RefTable::~RefTable() -{ - SQ_FREE(_buckets,(_numofslots * sizeof(RefNode *)) + (_numofslots * sizeof(RefNode))); -} - -#ifndef NO_GARBAGE_COLLECTOR -void RefTable::Mark(SQCollectable **chain) -{ - RefNode *nodes = (RefNode *)_nodes; - for(SQUnsignedInteger n = 0; n < _numofslots; n++) { - if(sq_type(nodes->obj) != OT_NULL) { - SQSharedState::MarkObject(nodes->obj,chain); - } - nodes++; - } -} -#endif - -void RefTable::AddRef(SQObject &obj) -{ - SQHash mainpos; - RefNode *prev; - RefNode *ref = Get(obj,mainpos,&prev,true); - ref->refs++; -} - -SQUnsignedInteger RefTable::GetRefCount(SQObject &obj) -{ - SQHash mainpos; - RefNode *prev; - RefNode *ref = Get(obj,mainpos,&prev,true); - return ref->refs; -} - - -SQBool RefTable::Release(SQObject &obj) -{ - SQHash mainpos; - RefNode *prev; - RefNode *ref = Get(obj,mainpos,&prev,false); - if(ref) { - if(--ref->refs == 0) { - SQObjectPtr o = ref->obj; - if(prev) { - prev->next = ref->next; - } - else { - _buckets[mainpos] = ref->next; - } - ref->next = _freelist; - _freelist = ref; - _slotused--; - ref->obj.Null(); - //<>test for shrink? - return SQTrue; - } - } - else { - assert(0); - } - return SQFalse; -} - -void RefTable::Resize(SQUnsignedInteger size) -{ - RefNode **oldbucks = _buckets; - RefNode *t = _nodes; - SQUnsignedInteger oldnumofslots = _numofslots; - AllocNodes(size); - //rehash - SQUnsignedInteger nfound = 0; - for(SQUnsignedInteger n = 0; n < oldnumofslots; n++) { - if(sq_type(t->obj) != OT_NULL) { - //add back; - assert(t->refs != 0); - RefNode *nn = Add(::HashObj(t->obj)&(_numofslots-1),t->obj); - nn->refs = t->refs; - t->obj.Null(); - nfound++; - } - t++; - } - assert(nfound == oldnumofslots); - SQ_FREE(oldbucks,(oldnumofslots * sizeof(RefNode *)) + (oldnumofslots * sizeof(RefNode))); -} - -RefTable::RefNode *RefTable::Add(SQHash mainpos,SQObject &obj) -{ - RefNode *t = _buckets[mainpos]; - RefNode *newnode = _freelist; - newnode->obj = obj; - _buckets[mainpos] = newnode; - _freelist = _freelist->next; - newnode->next = t; - assert(newnode->refs == 0); - _slotused++; - return newnode; -} - -RefTable::RefNode *RefTable::Get(SQObject &obj,SQHash &mainpos,RefNode **prev,bool add) -{ - RefNode *ref; - mainpos = ::HashObj(obj)&(_numofslots-1); - *prev = NULL; - for (ref = _buckets[mainpos]; ref; ) { - if(_rawval(ref->obj) == _rawval(obj) && sq_type(ref->obj) == sq_type(obj)) - break; - *prev = ref; - ref = ref->next; - } - if(ref == NULL && add) { - if(_numofslots == _slotused) { - assert(_freelist == 0); - Resize(_numofslots*2); - mainpos = ::HashObj(obj)&(_numofslots-1); - } - ref = Add(mainpos,obj); - } - return ref; -} - -void RefTable::AllocNodes(SQUnsignedInteger size) -{ - RefNode **bucks; - RefNode *nodes; - bucks = (RefNode **)SQ_MALLOC((size * sizeof(RefNode *)) + (size * sizeof(RefNode))); - nodes = (RefNode *)&bucks[size]; - RefNode *temp = nodes; - SQUnsignedInteger n; - for(n = 0; n < size - 1; n++) { - bucks[n] = NULL; - temp->refs = 0; - new (&temp->obj) SQObjectPtr; - temp->next = temp+1; - temp++; - } - bucks[n] = NULL; - temp->refs = 0; - new (&temp->obj) SQObjectPtr; - temp->next = NULL; - _freelist = nodes; - _nodes = nodes; - _buckets = bucks; - _slotused = 0; - _numofslots = size; -} -////////////////////////////////////////////////////////////////////////// -//SQStringTable -/* -* The following code is based on Lua 4.0 (Copyright 1994-2002 Tecgraf, PUC-Rio.) -* http://www.lua.org/copyright.html#4 -* http://www.lua.org/source/4.0.1/src_lstring.c.html -*/ - -SQStringTable::SQStringTable(SQSharedState *ss) -{ - _sharedstate = ss; - AllocNodes(4); - _slotused = 0; -} - -SQStringTable::~SQStringTable() -{ - SQ_FREE(_strings,sizeof(SQString*)*_numofslots); - _strings = NULL; -} - -void SQStringTable::AllocNodes(SQInteger size) -{ - _numofslots = size; - _strings = (SQString**)SQ_MALLOC(sizeof(SQString*)*_numofslots); - memset(_strings,0,sizeof(SQString*)*_numofslots); -} - -SQString *SQStringTable::Add(const SQChar *news,SQInteger len) -{ - if(len<0) - len = (SQInteger)scstrlen(news); - SQHash newhash = ::_hashstr(news,len); - SQHash h = newhash&(_numofslots-1); - SQString *s; - for (s = _strings[h]; s; s = s->_next){ - if(s->_len == len && (!memcmp(news,s->_val,sq_rsl(len)))) - return s; //found - } - - SQString *t = (SQString *)SQ_MALLOC(sq_rsl(len)+sizeof(SQString)); - new (t) SQString; - t->_sharedstate = _sharedstate; - memcpy(t->_val,news,sq_rsl(len)); - t->_val[len] = _SC('\0'); - t->_len = len; - t->_hash = newhash; - t->_next = _strings[h]; - _strings[h] = t; - _slotused++; - if (_slotused > _numofslots) /* too crowded? */ - Resize(_numofslots*2); - return t; -} - -void SQStringTable::Resize(SQInteger size) -{ - SQInteger oldsize=_numofslots; - SQString **oldtable=_strings; - AllocNodes(size); - for (SQInteger i=0; i_next; - SQHash h = p->_hash&(_numofslots-1); - p->_next = _strings[h]; - _strings[h] = p; - p = next; - } - } - SQ_FREE(oldtable,oldsize*sizeof(SQString*)); -} - -void SQStringTable::Remove(SQString *bs) -{ - SQString *s; - SQString *prev=NULL; - SQHash h = bs->_hash&(_numofslots - 1); - - for (s = _strings[h]; s; ){ - if(s == bs){ - if(prev) - prev->_next = s->_next; - else - _strings[h] = s->_next; - _slotused--; - SQInteger slen = s->_len; - s->~SQString(); - SQ_FREE(s,sizeof(SQString) + sq_rsl(slen)); - return; - } - prev = s; - s = s->_next; - } - assert(0);//if this fail something is wrong -} diff --git a/m_packages/squirrel/squirrel/sqstate.h b/m_packages/squirrel/squirrel/sqstate.h deleted file mode 100644 index 2cdc8da4..00000000 --- a/m_packages/squirrel/squirrel/sqstate.h +++ /dev/null @@ -1,136 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQSTATE_H_ -#define _SQSTATE_H_ - -#include "squtils.h" -#include "sqobject.h" -struct SQString; -struct SQTable; -//max number of character for a printed number -#define NUMBER_MAX_CHAR 50 - -struct SQStringTable -{ - SQStringTable(SQSharedState*ss); - ~SQStringTable(); - SQString *Add(const SQChar *,SQInteger len); - void Remove(SQString *); -private: - void Resize(SQInteger size); - void AllocNodes(SQInteger size); - SQString **_strings; - SQUnsignedInteger _numofslots; - SQUnsignedInteger _slotused; - SQSharedState *_sharedstate; -}; - -struct RefTable { - struct RefNode { - SQObjectPtr obj; - SQUnsignedInteger refs; - struct RefNode *next; - }; - RefTable(); - ~RefTable(); - void AddRef(SQObject &obj); - SQBool Release(SQObject &obj); - SQUnsignedInteger GetRefCount(SQObject &obj); -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); -#endif - void Finalize(); -private: - RefNode *Get(SQObject &obj,SQHash &mainpos,RefNode **prev,bool add); - RefNode *Add(SQHash mainpos,SQObject &obj); - void Resize(SQUnsignedInteger size); - void AllocNodes(SQUnsignedInteger size); - SQUnsignedInteger _numofslots; - SQUnsignedInteger _slotused; - RefNode *_nodes; - RefNode *_freelist; - RefNode **_buckets; -}; - -#define ADD_STRING(ss,str,len) ss->_stringtable->Add(str,len) -#define REMOVE_STRING(ss,bstr) ss->_stringtable->Remove(bstr) - -struct SQObjectPtr; - -struct SQSharedState -{ - SQSharedState(); - ~SQSharedState(); - void Init(); -public: - SQChar* GetScratchPad(SQInteger size); - SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name); -#ifndef NO_GARBAGE_COLLECTOR - SQInteger CollectGarbage(SQVM *vm); - void RunMark(SQVM *vm,SQCollectable **tchain); - SQInteger ResurrectUnreachable(SQVM *vm); - static void MarkObject(SQObjectPtr &o,SQCollectable **chain); -#endif - SQObjectPtrVec *_metamethods; - SQObjectPtr _metamethodsmap; - SQObjectPtrVec *_systemstrings; - SQObjectPtrVec *_types; - SQStringTable *_stringtable; - RefTable _refs_table; - SQObjectPtr _registry; - SQObjectPtr _consts; - SQObjectPtr _constructoridx; -#ifndef NO_GARBAGE_COLLECTOR - SQCollectable *_gc_chain; -#endif - SQObjectPtr _root_vm; - SQObjectPtr _table_default_delegate; - static const SQRegFunction _table_default_delegate_funcz[]; - SQObjectPtr _array_default_delegate; - static const SQRegFunction _array_default_delegate_funcz[]; - SQObjectPtr _string_default_delegate; - static const SQRegFunction _string_default_delegate_funcz[]; - SQObjectPtr _number_default_delegate; - static const SQRegFunction _number_default_delegate_funcz[]; - SQObjectPtr _generator_default_delegate; - static const SQRegFunction _generator_default_delegate_funcz[]; - SQObjectPtr _closure_default_delegate; - static const SQRegFunction _closure_default_delegate_funcz[]; - SQObjectPtr _thread_default_delegate; - static const SQRegFunction _thread_default_delegate_funcz[]; - SQObjectPtr _class_default_delegate; - static const SQRegFunction _class_default_delegate_funcz[]; - SQObjectPtr _instance_default_delegate; - static const SQRegFunction _instance_default_delegate_funcz[]; - SQObjectPtr _weakref_default_delegate; - static const SQRegFunction _weakref_default_delegate_funcz[]; - - SQCOMPILERERROR _compilererrorhandler; - SQPRINTFUNCTION _printfunc; - SQPRINTFUNCTION _errorfunc; - bool _debuginfo; - bool _notifyallexceptions; - SQUserPointer _foreignptr; - SQRELEASEHOOK _releasehook; -private: - SQChar *_scratchpad; - SQInteger _scratchpadsize; -}; - -#define _sp(s) (_sharedstate->GetScratchPad(s)) -#define _spval (_sharedstate->GetScratchPad(-1)) - -#define _table_ddel _table(_sharedstate->_table_default_delegate) -#define _array_ddel _table(_sharedstate->_array_default_delegate) -#define _string_ddel _table(_sharedstate->_string_default_delegate) -#define _number_ddel _table(_sharedstate->_number_default_delegate) -#define _generator_ddel _table(_sharedstate->_generator_default_delegate) -#define _closure_ddel _table(_sharedstate->_closure_default_delegate) -#define _thread_ddel _table(_sharedstate->_thread_default_delegate) -#define _class_ddel _table(_sharedstate->_class_default_delegate) -#define _instance_ddel _table(_sharedstate->_instance_default_delegate) -#define _weakref_ddel _table(_sharedstate->_weakref_default_delegate) - -bool CompileTypemask(SQIntVec &res,const SQChar *typemask); - - -#endif //_SQSTATE_H_ diff --git a/m_packages/squirrel/squirrel/sqstring.h b/m_packages/squirrel/squirrel/sqstring.h deleted file mode 100644 index 0099f3b4..00000000 --- a/m_packages/squirrel/squirrel/sqstring.h +++ /dev/null @@ -1,32 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQSTRING_H_ -#define _SQSTRING_H_ - -inline SQHash _hashstr (const SQChar *s, size_t l) -{ - SQHash h = (SQHash)l; /* seed */ - size_t step = (l >> 5) + 1; /* if string is too long, don't hash all its chars */ - size_t l1; - for (l1 = l; l1 >= step; l1 -= step) - h = h ^ ((h << 5) + (h >> 2) + ((unsigned short)s[l1 - 1])); - return h; -} - -struct SQString : public SQRefCounted -{ - SQString(){} - ~SQString(){} -public: - static SQString *Create(SQSharedState *ss, const SQChar *, SQInteger len = -1 ); - SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval); - void Release(); - SQSharedState *_sharedstate; - SQString *_next; //chain for the string table - SQInteger _len; - SQHash _hash; - SQChar _val[1]; -}; - - - -#endif //_SQSTRING_H_ diff --git a/m_packages/squirrel/squirrel/sqtable.cpp b/m_packages/squirrel/squirrel/sqtable.cpp deleted file mode 100644 index 3a89c459..00000000 --- a/m_packages/squirrel/squirrel/sqtable.cpp +++ /dev/null @@ -1,221 +0,0 @@ -/* -see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include "sqvm.h" -#include "sqtable.h" -#include "sqfuncproto.h" -#include "sqclosure.h" - -SQTable::SQTable(SQSharedState *ss,SQInteger nInitialSize) -{ - SQInteger pow2size=MINPOWER2; - while(nInitialSize>pow2size)pow2size=pow2size<<1; - AllocNodes(pow2size); - _usednodes = 0; - _delegate = NULL; - INIT_CHAIN(); - ADD_TO_CHAIN(&_sharedstate->_gc_chain,this); -} - -void SQTable::Remove(const SQObjectPtr &key) -{ - - _HashNode *n = _Get(key, HashObj(key) & (_numofnodes - 1)); - if (n) { - n->val.Null(); - n->key.Null(); - _usednodes--; - Rehash(false); - } -} - -void SQTable::AllocNodes(SQInteger nSize) -{ - _HashNode *nodes=(_HashNode *)SQ_MALLOC(sizeof(_HashNode)*nSize); - for(SQInteger i=0;i= oldsize-oldsize/4) /* using more than 3/4? */ - AllocNodes(oldsize*2); - else if (nelems <= oldsize/4 && /* less than 1/4? */ - oldsize > MINPOWER2) - AllocNodes(oldsize/2); - else if(force) - AllocNodes(oldsize); - else - return; - _usednodes = 0; - for (SQInteger i=0; ikey) != OT_NULL) - NewSlot(old->key,old->val); - } - for(SQInteger k=0;k_nodes; - _HashNode *src = _nodes; - _HashNode *dst = nt->_nodes; - SQInteger n = 0; - for(n = 0; n < _numofnodes; n++) { - dst->key = src->key; - dst->val = src->val; - if(src->next) { - assert(src->next > basesrc); - dst->next = basedst + (src->next - basesrc); - assert(dst != dst->next); - } - dst++; - src++; - } - assert(_firstfree > basesrc); - assert(_firstfree != NULL); - nt->_firstfree = basedst + (_firstfree - basesrc); - nt->_usednodes = _usednodes; -#else - SQInteger ridx=0; - SQObjectPtr key,val; - while((ridx=Next(true,ridx,key,val))!=-1){ - nt->NewSlot(key,val); - } -#endif - nt->SetDelegate(_delegate); - return nt; -} - -bool SQTable::Get(const SQObjectPtr &key,SQObjectPtr &val) -{ - if(sq_type(key) == OT_NULL) - return false; - _HashNode *n = _Get(key, HashObj(key) & (_numofnodes - 1)); - if (n) { - val = _realval(n->val); - return true; - } - return false; -} -bool SQTable::NewSlot(const SQObjectPtr &key,const SQObjectPtr &val) -{ - assert(sq_type(key) != OT_NULL); - SQHash h = HashObj(key) & (_numofnodes - 1); - _HashNode *n = _Get(key, h); - if (n) { - n->val = val; - return false; - } - _HashNode *mp = &_nodes[h]; - n = mp; - - - //key not found I'll insert it - //main pos is not free - - if(sq_type(mp->key) != OT_NULL) { - n = _firstfree; /* get a free place */ - SQHash mph = HashObj(mp->key) & (_numofnodes - 1); - _HashNode *othern; /* main position of colliding node */ - - if (mp > n && (othern = &_nodes[mph]) != mp){ - /* yes; move colliding node into free position */ - while (othern->next != mp){ - assert(othern->next != NULL); - othern = othern->next; /* find previous */ - } - othern->next = n; /* redo the chain with `n' in place of `mp' */ - n->key = mp->key; - n->val = mp->val;/* copy colliding node into free pos. (mp->next also goes) */ - n->next = mp->next; - mp->key.Null(); - mp->val.Null(); - mp->next = NULL; /* now `mp' is free */ - } - else{ - /* new node will go into free position */ - n->next = mp->next; /* chain new position */ - mp->next = n; - mp = n; - } - } - mp->key = key; - - for (;;) { /* correct `firstfree' */ - if (sq_type(_firstfree->key) == OT_NULL && _firstfree->next == NULL) { - mp->val = val; - _usednodes++; - return true; /* OK; table still has a free place */ - } - else if (_firstfree == _nodes) break; /* cannot decrement from here */ - else (_firstfree)--; - } - Rehash(true); - return NewSlot(key, val); -} - -SQInteger SQTable::Next(bool getweakrefs,const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval) -{ - SQInteger idx = (SQInteger)TranslateIndex(refpos); - while (idx < _numofnodes) { - if(sq_type(_nodes[idx].key) != OT_NULL) { - //first found - _HashNode &n = _nodes[idx]; - outkey = n.key; - outval = getweakrefs?(SQObject)n.val:_realval(n.val); - //return idx for the next iteration - return ++idx; - } - ++idx; - } - //nothing to iterate anymore - return -1; -} - - -bool SQTable::Set(const SQObjectPtr &key, const SQObjectPtr &val) -{ - _HashNode *n = _Get(key, HashObj(key) & (_numofnodes - 1)); - if (n) { - n->val = val; - return true; - } - return false; -} - -void SQTable::_ClearNodes() -{ - for(SQInteger i = 0;i < _numofnodes; i++) { _HashNode &n = _nodes[i]; n.key.Null(); n.val.Null(); } -} - -void SQTable::Finalize() -{ - _ClearNodes(); - SetDelegate(NULL); -} - -void SQTable::Clear() -{ - _ClearNodes(); - _usednodes = 0; - Rehash(true); -} diff --git a/m_packages/squirrel/squirrel/sqtable.h b/m_packages/squirrel/squirrel/sqtable.h deleted file mode 100644 index 8ca3ae7c..00000000 --- a/m_packages/squirrel/squirrel/sqtable.h +++ /dev/null @@ -1,110 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQTABLE_H_ -#define _SQTABLE_H_ -/* -* The following code is based on Lua 4.0 (Copyright 1994-2002 Tecgraf, PUC-Rio.) -* http://www.lua.org/copyright.html#4 -* http://www.lua.org/source/4.0.1/src_ltable.c.html -*/ - -#include "sqstring.h" - - -#define hashptr(p) ((SQHash)(((SQInteger)p) >> 3)) - -inline SQHash HashObj(const SQObject &key) -{ - switch(sq_type(key)) { - case OT_STRING: return _string(key)->_hash; - case OT_FLOAT: return (SQHash)((SQInteger)_float(key)); - case OT_BOOL: case OT_INTEGER: return (SQHash)((SQInteger)_integer(key)); - default: return hashptr(key._unVal.pRefCounted); - } -} - -struct SQTable : public SQDelegable -{ -private: - struct _HashNode - { - _HashNode() { next = NULL; } - SQObjectPtr val; - SQObjectPtr key; - _HashNode *next; - }; - _HashNode *_firstfree; - _HashNode *_nodes; - SQInteger _numofnodes; - SQInteger _usednodes; - -/////////////////////////// - void AllocNodes(SQInteger nSize); - void Rehash(bool force); - SQTable(SQSharedState *ss, SQInteger nInitialSize); - void _ClearNodes(); -public: - static SQTable* Create(SQSharedState *ss,SQInteger nInitialSize) - { - SQTable *newtable = (SQTable*)SQ_MALLOC(sizeof(SQTable)); - new (newtable) SQTable(ss, nInitialSize); - newtable->_delegate = NULL; - return newtable; - } - void Finalize(); - SQTable *Clone(); - ~SQTable() - { - SetDelegate(NULL); - REMOVE_FROM_CHAIN(&_sharedstate->_gc_chain, this); - for (SQInteger i = 0; i < _numofnodes; i++) _nodes[i].~_HashNode(); - SQ_FREE(_nodes, _numofnodes * sizeof(_HashNode)); - } -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - SQObjectType GetType() {return OT_TABLE;} -#endif - inline _HashNode *_Get(const SQObjectPtr &key,SQHash hash) - { - _HashNode *n = &_nodes[hash]; - do{ - if(_rawval(n->key) == _rawval(key) && sq_type(n->key) == sq_type(key)){ - return n; - } - }while((n = n->next)); - return NULL; - } - //for compiler use - inline bool GetStr(const SQChar* key,SQInteger keylen,SQObjectPtr &val) - { - SQHash hash = _hashstr(key,keylen); - _HashNode *n = &_nodes[hash & (_numofnodes - 1)]; - _HashNode *res = NULL; - do{ - if(sq_type(n->key) == OT_STRING && (scstrcmp(_stringval(n->key),key) == 0)){ - res = n; - break; - } - }while((n = n->next)); - if (res) { - val = _realval(res->val); - return true; - } - return false; - } - bool Get(const SQObjectPtr &key,SQObjectPtr &val); - void Remove(const SQObjectPtr &key); - bool Set(const SQObjectPtr &key, const SQObjectPtr &val); - //returns true if a new slot has been created false if it was already present - bool NewSlot(const SQObjectPtr &key,const SQObjectPtr &val); - SQInteger Next(bool getweakrefs,const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval); - - SQInteger CountUsed(){ return _usednodes;} - void Clear(); - void Release() - { - sq_delete(this, SQTable); - } - -}; - -#endif //_SQTABLE_H_ diff --git a/m_packages/squirrel/squirrel/squirrel.dsp b/m_packages/squirrel/squirrel/squirrel.dsp deleted file mode 100644 index 66a84f7d..00000000 --- a/m_packages/squirrel/squirrel/squirrel.dsp +++ /dev/null @@ -1,302 +0,0 @@ -# Microsoft Developer Studio Project File - Name="squirrel" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=squirrel - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "squirrel.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "squirrel.mak" CFG="squirrel - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "squirrel - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "squirrel - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_LocalPath ".." -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "squirrel - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "GARBAGE_COLLECTOR" /YX /FD /c -# ADD BASE RSC /l 0x410 /d "NDEBUG" -# ADD RSC /l 0x410 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\lib\squirrel.lib" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x410 /d "_DEBUG" -# ADD RSC /l 0x410 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\lib\squirrel.lib" - -!ENDIF - -# Begin Target - -# Name "squirrel - Win32 Release" -# Name "squirrel - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\sqapi.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqbaselib.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqcompiler.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqdebug.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqfuncstate.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqlexer.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqmem.cpp -# End Source File -# Begin Source File - -SOURCE=.\sqobject.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqstate.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqtable.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqclass.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sqvm.cpp - -!IF "$(CFG)" == "squirrel - Win32 Release" - -!ELSEIF "$(CFG)" == "squirrel - Win32 Debug" - -# ADD CPP /YX"stdafx.h" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\sqarray.h -# End Source File -# Begin Source File - -SOURCE=.\sqclosure.h -# End Source File -# Begin Source File - -SOURCE=.\sqcompiler.h -# End Source File -# Begin Source File - -SOURCE=.\sqfuncproto.h -# End Source File -# Begin Source File - -SOURCE=.\sqfuncstate.h -# End Source File -# Begin Source File - -SOURCE=.\sqlexer.h -# End Source File -# Begin Source File - -SOURCE=.\sqobject.h -# End Source File -# Begin Source File - -SOURCE=.\sqopcodes.h -# End Source File -# Begin Source File - -SOURCE=.\sqpcheader.h -# End Source File -# Begin Source File - -SOURCE=.\sqstate.h -# End Source File -# Begin Source File - -SOURCE=.\sqstring.h -# End Source File -# Begin Source File - -SOURCE=.\sqtable.h -# End Source File -# Begin Source File - -SOURCE=.\squserdata.h -# End Source File -# Begin Source File - -SOURCE=.\squtils.h -# End Source File -# Begin Source File - -SOURCE=.\sqclass.h -# End Source File -# Begin Source File - -SOURCE=.\sqvm.h -# End Source File -# End Group -# End Target -# End Project diff --git a/m_packages/squirrel/squirrel/squserdata.h b/m_packages/squirrel/squirrel/squserdata.h deleted file mode 100644 index ec217313..00000000 --- a/m_packages/squirrel/squirrel/squserdata.h +++ /dev/null @@ -1,40 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQUSERDATA_H_ -#define _SQUSERDATA_H_ - -struct SQUserData : SQDelegable -{ - SQUserData(SQSharedState *ss){ _delegate = 0; _hook = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); } - ~SQUserData() - { - REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain, this); - SetDelegate(NULL); - } - static SQUserData* Create(SQSharedState *ss, SQInteger size) - { - SQUserData* ud = (SQUserData*)SQ_MALLOC(sq_aligning(sizeof(SQUserData))+size); - new (ud) SQUserData(ss); - ud->_size = size; - ud->_typetag = 0; - return ud; - } -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - void Finalize(){SetDelegate(NULL);} - SQObjectType GetType(){ return OT_USERDATA;} -#endif - void Release() { - if (_hook) _hook((SQUserPointer)sq_aligning(this + 1),_size); - SQInteger tsize = _size; - this->~SQUserData(); - SQ_FREE(this, sq_aligning(sizeof(SQUserData)) + tsize); - } - - - SQInteger _size; - SQRELEASEHOOK _hook; - SQUserPointer _typetag; - //SQChar _val[1]; -}; - -#endif //_SQUSERDATA_H_ diff --git a/m_packages/squirrel/squirrel/squtils.h b/m_packages/squirrel/squirrel/squtils.h deleted file mode 100644 index f3e819a5..00000000 --- a/m_packages/squirrel/squirrel/squtils.h +++ /dev/null @@ -1,116 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQUTILS_H_ -#define _SQUTILS_H_ - -void *sq_vm_malloc(SQUnsignedInteger size); -void *sq_vm_realloc(void *p,SQUnsignedInteger oldsize,SQUnsignedInteger size); -void sq_vm_free(void *p,SQUnsignedInteger size); - -#define sq_new(__ptr,__type) {__ptr=(__type *)sq_vm_malloc(sizeof(__type));new (__ptr) __type;} -#define sq_delete(__ptr,__type) {__ptr->~__type();sq_vm_free(__ptr,sizeof(__type));} -#define SQ_MALLOC(__size) sq_vm_malloc((__size)); -#define SQ_FREE(__ptr,__size) sq_vm_free((__ptr),(__size)); -#define SQ_REALLOC(__ptr,__oldsize,__size) sq_vm_realloc((__ptr),(__oldsize),(__size)); - -#define sq_aligning(v) (((size_t)(v) + (SQ_ALIGNMENT-1)) & (~(SQ_ALIGNMENT-1))) - -//sqvector mini vector class, supports objects by value -template class sqvector -{ -public: - sqvector() - { - _vals = NULL; - _size = 0; - _allocated = 0; - } - sqvector(const sqvector& v) - { - copy(v); - } - void copy(const sqvector& v) - { - if(_size) { - resize(0); //destroys all previous stuff - } - //resize(v._size); - if(v._size > _allocated) { - _realloc(v._size); - } - for(SQUnsignedInteger i = 0; i < v._size; i++) { - new ((void *)&_vals[i]) T(v._vals[i]); - } - _size = v._size; - } - ~sqvector() - { - if(_allocated) { - for(SQUnsignedInteger i = 0; i < _size; i++) - _vals[i].~T(); - SQ_FREE(_vals, (_allocated * sizeof(T))); - } - } - void reserve(SQUnsignedInteger newsize) { _realloc(newsize); } - void resize(SQUnsignedInteger newsize, const T& fill = T()) - { - if(newsize > _allocated) - _realloc(newsize); - if(newsize > _size) { - while(_size < newsize) { - new ((void *)&_vals[_size]) T(fill); - _size++; - } - } - else{ - for(SQUnsignedInteger i = newsize; i < _size; i++) { - _vals[i].~T(); - } - _size = newsize; - } - } - void shrinktofit() { if(_size > 4) { _realloc(_size); } } - T& top() const { return _vals[_size - 1]; } - inline SQUnsignedInteger size() const { return _size; } - bool empty() const { return (_size <= 0); } - inline T &push_back(const T& val = T()) - { - if(_allocated <= _size) - _realloc(_size * 2); - return *(new ((void *)&_vals[_size++]) T(val)); - } - inline void pop_back() - { - _size--; _vals[_size].~T(); - } - void insert(SQUnsignedInteger idx, const T& val) - { - resize(_size + 1); - for(SQUnsignedInteger i = _size - 1; i > idx; i--) { - _vals[i] = _vals[i - 1]; - } - _vals[idx] = val; - } - void remove(SQUnsignedInteger idx) - { - _vals[idx].~T(); - if(idx < (_size - 1)) { - memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1)); - } - _size--; - } - SQUnsignedInteger capacity() { return _allocated; } - inline T &back() const { return _vals[_size - 1]; } - inline T& operator[](SQUnsignedInteger pos) const{ return _vals[pos]; } - T* _vals; -private: - void _realloc(SQUnsignedInteger newsize) - { - newsize = (newsize > 0)?newsize:4; - _vals = (T*)SQ_REALLOC(_vals, _allocated * sizeof(T), newsize * sizeof(T)); - _allocated = newsize; - } - SQUnsignedInteger _size; - SQUnsignedInteger _allocated; -}; - -#endif //_SQUTILS_H_ diff --git a/m_packages/squirrel/squirrel/sqvm.cpp b/m_packages/squirrel/squirrel/sqvm.cpp deleted file mode 100644 index c70166da..00000000 --- a/m_packages/squirrel/squirrel/sqvm.cpp +++ /dev/null @@ -1,1811 +0,0 @@ -/* - see copyright notice in squirrel.h -*/ -#include "sqpcheader.h" -#include -#include -#include "sqopcodes.h" -#include "sqvm.h" -#include "sqfuncproto.h" -#include "sqclosure.h" -#include "sqstring.h" -#include "sqtable.h" -#include "squserdata.h" -#include "sqarray.h" -#include "sqclass.h" - -#define TOP() (_stack._vals[_top-1]) -#define TARGET _stack._vals[_stackbase+arg0] -#define STK(a) _stack._vals[_stackbase+(a)] - -bool SQVM::BW_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2) -{ - SQInteger res; - if((sq_type(o1)| sq_type(o2)) == OT_INTEGER) - { - SQInteger i1 = _integer(o1), i2 = _integer(o2); - switch(op) { - case BW_AND: res = i1 & i2; break; - case BW_OR: res = i1 | i2; break; - case BW_XOR: res = i1 ^ i2; break; - case BW_SHIFTL: res = i1 << i2; break; - case BW_SHIFTR: res = i1 >> i2; break; - case BW_USHIFTR:res = (SQInteger)(*((SQUnsignedInteger*)&i1) >> i2); break; - default: { Raise_Error(_SC("internal vm error bitwise op failed")); return false; } - } - } - else { Raise_Error(_SC("bitwise op between '%s' and '%s'"),GetTypeName(o1),GetTypeName(o2)); return false;} - trg = res; - return true; -} - -#define _ARITH_(op,trg,o1,o2) \ -{ \ - SQInteger tmask = sq_type(o1)|sq_type(o2); \ - switch(tmask) { \ - case OT_INTEGER: trg = _integer(o1) op _integer(o2);break; \ - case (OT_FLOAT|OT_INTEGER): \ - case (OT_FLOAT): trg = tofloat(o1) op tofloat(o2); break;\ - default: _GUARD(ARITH_OP((#op)[0],trg,o1,o2)); break;\ - } \ -} - -#define _ARITH_NOZERO(op,trg,o1,o2,err) \ -{ \ - SQInteger tmask = sq_type(o1)|sq_type(o2); \ - switch(tmask) { \ - case OT_INTEGER: { SQInteger i2 = _integer(o2); if(i2 == 0) { Raise_Error(err); SQ_THROW(); } trg = _integer(o1) op i2; } break;\ - case (OT_FLOAT|OT_INTEGER): \ - case (OT_FLOAT): trg = tofloat(o1) op tofloat(o2); break;\ - default: _GUARD(ARITH_OP((#op)[0],trg,o1,o2)); break;\ - } \ -} - -bool SQVM::ARITH_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2) -{ - SQInteger tmask = sq_type(o1)| sq_type(o2); - switch(tmask) { - case OT_INTEGER:{ - SQInteger res, i1 = _integer(o1), i2 = _integer(o2); - switch(op) { - case '+': res = i1 + i2; break; - case '-': res = i1 - i2; break; - case '/': if (i2 == 0) { Raise_Error(_SC("division by zero")); return false; } - else if (i2 == -1 && i1 == INT_MIN) { Raise_Error(_SC("integer overflow")); return false; } - res = i1 / i2; - break; - case '*': res = i1 * i2; break; - case '%': if (i2 == 0) { Raise_Error(_SC("modulo by zero")); return false; } - else if (i2 == -1 && i1 == INT_MIN) { res = 0; break; } - res = i1 % i2; - break; - default: res = 0xDEADBEEF; - } - trg = res; } - break; - case (OT_FLOAT|OT_INTEGER): - case (OT_FLOAT):{ - SQFloat res, f1 = tofloat(o1), f2 = tofloat(o2); - switch(op) { - case '+': res = f1 + f2; break; - case '-': res = f1 - f2; break; - case '/': res = f1 / f2; break; - case '*': res = f1 * f2; break; - case '%': res = SQFloat(fmod((double)f1,(double)f2)); break; - default: res = 0x0f; - } - trg = res; } - break; - default: - if(op == '+' && (tmask & _RT_STRING)){ - if(!StringCat(o1, o2, trg)) return false; - } - else if(!ArithMetaMethod(op,o1,o2,trg)) { - return false; - } - } - return true; -} - -SQVM::SQVM(SQSharedState *ss) -{ - _sharedstate=ss; - _suspended = SQFalse; - _suspended_target = -1; - _suspended_root = SQFalse; - _suspended_traps = -1; - _foreignptr = NULL; - _nnativecalls = 0; - _nmetamethodscall = 0; - _lasterror.Null(); - _errorhandler.Null(); - _debughook = false; - _debughook_native = NULL; - _debughook_closure.Null(); - _openouters = NULL; - ci = NULL; - _releasehook = NULL; - INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); -} - -void SQVM::Finalize() -{ - if(_releasehook) { _releasehook(_foreignptr,0); _releasehook = NULL; } - if(_openouters) CloseOuters(&_stack._vals[0]); - _roottable.Null(); - _lasterror.Null(); - _errorhandler.Null(); - _debughook = false; - _debughook_native = NULL; - _debughook_closure.Null(); - temp_reg.Null(); - _callstackdata.resize(0); - SQInteger size=_stack.size(); - for(SQInteger i=0;i_gc_chain,this); -} - -bool SQVM::ArithMetaMethod(SQInteger op,const SQObjectPtr &o1,const SQObjectPtr &o2,SQObjectPtr &dest) -{ - SQMetaMethod mm; - switch(op){ - case _SC('+'): mm=MT_ADD; break; - case _SC('-'): mm=MT_SUB; break; - case _SC('/'): mm=MT_DIV; break; - case _SC('*'): mm=MT_MUL; break; - case _SC('%'): mm=MT_MODULO; break; - default: mm = MT_ADD; assert(0); break; //shutup compiler - } - if(is_delegable(o1) && _delegable(o1)->_delegate) { - - SQObjectPtr closure; - if(_delegable(o1)->GetMetaMethod(this, mm, closure)) { - Push(o1);Push(o2); - return CallMetaMethod(closure,mm,2,dest); - } - } - Raise_Error(_SC("arith op %c on between '%s' and '%s'"),op,GetTypeName(o1),GetTypeName(o2)); - return false; -} - -bool SQVM::NEG_OP(SQObjectPtr &trg,const SQObjectPtr &o) -{ - - switch(sq_type(o)) { - case OT_INTEGER: - trg = -_integer(o); - return true; - case OT_FLOAT: - trg = -_float(o); - return true; - case OT_TABLE: - case OT_USERDATA: - case OT_INSTANCE: - if(_delegable(o)->_delegate) { - SQObjectPtr closure; - if(_delegable(o)->GetMetaMethod(this, MT_UNM, closure)) { - Push(o); - if(!CallMetaMethod(closure, MT_UNM, 1, temp_reg)) return false; - _Swap(trg,temp_reg); - return true; - - } - } - default:break; //shutup compiler - } - Raise_Error(_SC("attempt to negate a %s"), GetTypeName(o)); - return false; -} - -#define _RET_SUCCEED(exp) { result = (exp); return true; } -bool SQVM::ObjCmp(const SQObjectPtr &o1,const SQObjectPtr &o2,SQInteger &result) -{ - SQObjectType t1 = sq_type(o1), t2 = sq_type(o2); - if(t1 == t2) { - if(_rawval(o1) == _rawval(o2))_RET_SUCCEED(0); - SQObjectPtr res; - switch(t1){ - case OT_STRING: - _RET_SUCCEED(scstrcmp(_stringval(o1),_stringval(o2))); - case OT_INTEGER: - _RET_SUCCEED((_integer(o1)<_integer(o2))?-1:1); - case OT_FLOAT: - _RET_SUCCEED((_float(o1)<_float(o2))?-1:1); - case OT_TABLE: - case OT_USERDATA: - case OT_INSTANCE: - if(_delegable(o1)->_delegate) { - SQObjectPtr closure; - if(_delegable(o1)->GetMetaMethod(this, MT_CMP, closure)) { - Push(o1);Push(o2); - if(CallMetaMethod(closure,MT_CMP,2,res)) { - if(sq_type(res) != OT_INTEGER) { - Raise_Error(_SC("_cmp must return an integer")); - return false; - } - _RET_SUCCEED(_integer(res)) - } - return false; - } - } - //continues through (no break needed) - default: - _RET_SUCCEED( _userpointer(o1) < _userpointer(o2)?-1:1 ); - } - assert(0); - //if(type(res)!=OT_INTEGER) { Raise_CompareError(o1,o2); return false; } - // _RET_SUCCEED(_integer(res)); - - } - else{ - if(sq_isnumeric(o1) && sq_isnumeric(o2)){ - if((t1==OT_INTEGER) && (t2==OT_FLOAT)) { - if( _integer(o1)==_float(o2) ) { _RET_SUCCEED(0); } - else if( _integer(o1)<_float(o2) ) { _RET_SUCCEED(-1); } - _RET_SUCCEED(1); - } - else{ - if( _float(o1)==_integer(o2) ) { _RET_SUCCEED(0); } - else if( _float(o1)<_integer(o2) ) { _RET_SUCCEED(-1); } - _RET_SUCCEED(1); - } - } - else if(t1==OT_NULL) {_RET_SUCCEED(-1);} - else if(t2==OT_NULL) {_RET_SUCCEED(1);} - else { Raise_CompareError(o1,o2); return false; } - - } - assert(0); - _RET_SUCCEED(0); //cannot happen -} - -bool SQVM::CMP_OP(CmpOP op, const SQObjectPtr &o1,const SQObjectPtr &o2,SQObjectPtr &res) -{ - SQInteger r; - if(ObjCmp(o1,o2,r)) { - switch(op) { - case CMP_G: res = (r > 0); return true; - case CMP_GE: res = (r >= 0); return true; - case CMP_L: res = (r < 0); return true; - case CMP_LE: res = (r <= 0); return true; - case CMP_3W: res = r; return true; - } - assert(0); - } - return false; -} - -bool SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res) -{ - switch(sq_type(o)) { - case OT_STRING: - res = o; - return true; - case OT_FLOAT: - scsprintf(_sp(sq_rsl(NUMBER_MAX_CHAR+1)),sq_rsl(NUMBER_MAX_CHAR),_SC("%g"),_float(o)); - break; - case OT_INTEGER: - scsprintf(_sp(sq_rsl(NUMBER_MAX_CHAR+1)),sq_rsl(NUMBER_MAX_CHAR),_PRINT_INT_FMT,_integer(o)); - break; - case OT_BOOL: - scsprintf(_sp(sq_rsl(6)),sq_rsl(6),_integer(o)?_SC("true"):_SC("false")); - break; - case OT_NULL: - scsprintf(_sp(sq_rsl(5)),sq_rsl(5),_SC("null")); - break; - case OT_TABLE: - case OT_USERDATA: - case OT_INSTANCE: - if(_delegable(o)->_delegate) { - SQObjectPtr closure; - if(_delegable(o)->GetMetaMethod(this, MT_TOSTRING, closure)) { - Push(o); - if(CallMetaMethod(closure,MT_TOSTRING,1,res)) { - if(sq_type(res) == OT_STRING) - return true; - } - else { - return false; - } - } - } - default: - scsprintf(_sp(sq_rsl((sizeof(void*)*2)+NUMBER_MAX_CHAR)),sq_rsl((sizeof(void*)*2)+NUMBER_MAX_CHAR),_SC("(%s : 0x%p)"),GetTypeName(o),(void*)_rawval(o)); - } - res = SQString::Create(_ss(this),_spval); - return true; -} - - -bool SQVM::StringCat(const SQObjectPtr &str,const SQObjectPtr &obj,SQObjectPtr &dest) -{ - SQObjectPtr a, b; - if(!ToString(str, a)) return false; - if(!ToString(obj, b)) return false; - SQInteger l = _string(a)->_len , ol = _string(b)->_len; - SQChar *s = _sp(sq_rsl(l + ol + 1)); - memcpy(s, _stringval(a), sq_rsl(l)); - memcpy(s + l, _stringval(b), sq_rsl(ol)); - dest = SQString::Create(_ss(this), _spval, l + ol); - return true; -} - -bool SQVM::TypeOf(const SQObjectPtr &obj1,SQObjectPtr &dest) -{ - if(is_delegable(obj1) && _delegable(obj1)->_delegate) { - SQObjectPtr closure; - if(_delegable(obj1)->GetMetaMethod(this, MT_TYPEOF, closure)) { - Push(obj1); - return CallMetaMethod(closure,MT_TYPEOF,1,dest); - } - } - dest = SQString::Create(_ss(this),GetTypeName(obj1)); - return true; -} - -bool SQVM::Init(SQVM *friendvm, SQInteger stacksize) -{ - _stack.resize(stacksize); - _alloccallsstacksize = 4; - _callstackdata.resize(_alloccallsstacksize); - _callsstacksize = 0; - _callsstack = &_callstackdata[0]; - _stackbase = 0; - _top = 0; - if(!friendvm) { - _roottable = SQTable::Create(_ss(this), 0); - sq_base_register(this); - } - else { - _roottable = friendvm->_roottable; - _errorhandler = friendvm->_errorhandler; - _debughook = friendvm->_debughook; - _debughook_native = friendvm->_debughook_native; - _debughook_closure = friendvm->_debughook_closure; - } - - - return true; -} - - -bool SQVM::StartCall(SQClosure *closure,SQInteger target,SQInteger args,SQInteger stackbase,bool tailcall) -{ - SQFunctionProto *func = closure->_function; - - SQInteger paramssize = func->_nparameters; - const SQInteger newtop = stackbase + func->_stacksize; - SQInteger nargs = args; - if(func->_varparams) - { - paramssize--; - if (nargs < paramssize) { - Raise_Error(_SC("wrong number of parameters (%d passed, at least %d required)"), - (int)nargs, (int)paramssize); - return false; - } - - //dumpstack(stackbase); - SQInteger nvargs = nargs - paramssize; - SQArray *arr = SQArray::Create(_ss(this),nvargs); - SQInteger pbase = stackbase+paramssize; - for(SQInteger n = 0; n < nvargs; n++) { - arr->_values[n] = _stack._vals[pbase]; - _stack._vals[pbase].Null(); - pbase++; - - } - _stack._vals[stackbase+paramssize] = arr; - //dumpstack(stackbase); - } - else if (paramssize != nargs) { - SQInteger ndef = func->_ndefaultparams; - SQInteger diff; - if(ndef && nargs < paramssize && (diff = paramssize - nargs) <= ndef) { - for(SQInteger n = ndef - diff; n < ndef; n++) { - _stack._vals[stackbase + (nargs++)] = closure->_defaultparams[n]; - } - } - else { - Raise_Error(_SC("wrong number of parameters (%d passed, %d required)"), - (int)nargs, (int)paramssize); - return false; - } - } - - if(closure->_env) { - _stack._vals[stackbase] = closure->_env->_obj; - } - - if(!EnterFrame(stackbase, newtop, tailcall)) return false; - - ci->_closure = closure; - ci->_literals = func->_literals; - ci->_ip = func->_instructions; - ci->_target = (SQInt32)target; - - if (_debughook) { - CallDebugHook(_SC('c')); - } - - if (closure->_function->_bgenerator) { - SQFunctionProto *f = closure->_function; - SQGenerator *gen = SQGenerator::Create(_ss(this), closure); - if(!gen->Yield(this,f->_stacksize)) - return false; - SQObjectPtr temp; - Return(1, target, temp); - STK(target) = gen; - } - - - return true; -} - -bool SQVM::Return(SQInteger _arg0, SQInteger _arg1, SQObjectPtr &retval) -{ - SQBool _isroot = ci->_root; - SQInteger callerbase = _stackbase - ci->_prevstkbase; - - if (_debughook) { - for(SQInteger i=0; i_ncalls; i++) { - CallDebugHook(_SC('r')); - } - } - - SQObjectPtr *dest; - if (_isroot) { - dest = &(retval); - } else if (ci->_target == -1) { - dest = NULL; - } else { - dest = &_stack._vals[callerbase + ci->_target]; - } - if (dest) { - if(_arg0 != 0xFF) { - *dest = _stack._vals[_stackbase+_arg1]; - } - else { - dest->Null(); - } - //*dest = (_arg0 != 0xFF) ? _stack._vals[_stackbase+_arg1] : _null_; - } - LeaveFrame(); - return _isroot ? true : false; -} - -#define _RET_ON_FAIL(exp) { if(!exp) return false; } - -bool SQVM::PLOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr) -{ - SQObjectPtr trg; - _RET_ON_FAIL(ARITH_OP( op , trg, a, incr)); - target = a; - a = trg; - return true; -} - -bool SQVM::DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjectPtr &key, SQObjectPtr &incr, bool postfix,SQInteger selfidx) -{ - SQObjectPtr tmp, tself = self, tkey = key; - if (!Get(tself, tkey, tmp, 0, selfidx)) { return false; } - _RET_ON_FAIL(ARITH_OP( op , target, tmp, incr)) - if (!Set(tself, tkey, target,selfidx)) { return false; } - if (postfix) target = tmp; - return true; -} - -#define arg0 (_i_._arg0) -#define sarg0 ((SQInteger)*((const signed char *)&_i_._arg0)) -#define arg1 (_i_._arg1) -#define sarg1 (*((const SQInt32 *)&_i_._arg1)) -#define arg2 (_i_._arg2) -#define arg3 (_i_._arg3) -#define sarg3 ((SQInteger)*((const signed char *)&_i_._arg3)) - -SQRESULT SQVM::Suspend() -{ - if (_suspended) - return sq_throwerror(this, _SC("cannot suspend an already suspended vm")); - if (_nnativecalls!=2) - return sq_throwerror(this, _SC("cannot suspend through native calls/metamethods")); - return SQ_SUSPEND_FLAG; -} - - -#define _FINISH(howmuchtojump) {jump = howmuchtojump; return true; } -bool SQVM::FOREACH_OP(SQObjectPtr &o1,SQObjectPtr &o2,SQObjectPtr -&o3,SQObjectPtr &o4,SQInteger SQ_UNUSED_ARG(arg_2),int exitpos,int &jump) -{ - SQInteger nrefidx; - switch(sq_type(o1)) { - case OT_TABLE: - if((nrefidx = _table(o1)->Next(false,o4, o2, o3)) == -1) _FINISH(exitpos); - o4 = (SQInteger)nrefidx; _FINISH(1); - case OT_ARRAY: - if((nrefidx = _array(o1)->Next(o4, o2, o3)) == -1) _FINISH(exitpos); - o4 = (SQInteger) nrefidx; _FINISH(1); - case OT_STRING: - if((nrefidx = _string(o1)->Next(o4, o2, o3)) == -1)_FINISH(exitpos); - o4 = (SQInteger)nrefidx; _FINISH(1); - case OT_CLASS: - if((nrefidx = _class(o1)->Next(o4, o2, o3)) == -1)_FINISH(exitpos); - o4 = (SQInteger)nrefidx; _FINISH(1); - case OT_USERDATA: - case OT_INSTANCE: - if(_delegable(o1)->_delegate) { - SQObjectPtr itr; - SQObjectPtr closure; - if(_delegable(o1)->GetMetaMethod(this, MT_NEXTI, closure)) { - Push(o1); - Push(o4); - if(CallMetaMethod(closure, MT_NEXTI, 2, itr)) { - o4 = o2 = itr; - if(sq_type(itr) == OT_NULL) _FINISH(exitpos); - if(!Get(o1, itr, o3, 0, DONT_FALL_BACK)) { - Raise_Error(_SC("_nexti returned an invalid idx")); // cloud be changed - return false; - } - _FINISH(1); - } - else { - return false; - } - } - Raise_Error(_SC("_nexti failed")); - return false; - } - break; - case OT_GENERATOR: - if(_generator(o1)->_state == SQGenerator::eDead) _FINISH(exitpos); - if(_generator(o1)->_state == SQGenerator::eSuspended) { - SQInteger idx = 0; - if(sq_type(o4) == OT_INTEGER) { - idx = _integer(o4) + 1; - } - o2 = idx; - o4 = idx; - _generator(o1)->Resume(this, o3); - _FINISH(0); - } - default: - Raise_Error(_SC("cannot iterate %s"), GetTypeName(o1)); - } - return false; //cannot be hit(just to avoid warnings) -} - -#define COND_LITERAL (arg3!=0?ci->_literals[arg1]:STK(arg1)) - -#define SQ_THROW() { goto exception_trap; } - -#define _GUARD(exp) { if(!exp) { SQ_THROW();} } - -bool SQVM::CLOSURE_OP(SQObjectPtr &target, SQFunctionProto *func,SQInteger boundtarget) -{ - SQInteger nouters; - SQClosure *closure = SQClosure::Create(_ss(this), func,_table(_roottable)->GetWeakRef(OT_TABLE)); - if((nouters = func->_noutervalues)) { - for(SQInteger i = 0; i_outervalues[i]; - switch(v._type){ - case otLOCAL: - FindOuter(closure->_outervalues[i], &STK(_integer(v._src))); - break; - case otOUTER: - closure->_outervalues[i] = _closure(ci->_closure)->_outervalues[_integer(v._src)]; - break; - } - } - } - SQInteger ndefparams; - if((ndefparams = func->_ndefaultparams)) { - for(SQInteger i = 0; i < ndefparams; i++) { - SQInteger spos = func->_defaultparams[i]; - closure->_defaultparams[i] = _stack._vals[_stackbase + spos]; - } - } - if (boundtarget != 0xFF) { - SQObjectPtr &val = _stack._vals[_stackbase + boundtarget]; - SQObjectType t = sq_type(val); - if (t == OT_TABLE || t == OT_CLASS || t == OT_INSTANCE || t == OT_ARRAY) { - closure->_env = _refcounted(val)->GetWeakRef(t); - __ObjAddRef(closure->_env); - } - else { - Raise_Error(_SC("cannot bind a %s as environment object"), IdType2Name(t)); - closure->Release(); - return false; - } - } - target = closure; - return true; - -} - - -bool SQVM::CLASS_OP(SQObjectPtr &target,SQInteger baseclass,SQInteger attributes) -{ - SQClass *base = NULL; - SQObjectPtr attrs; - if(baseclass != -1) { - if(sq_type(_stack._vals[_stackbase+baseclass]) != OT_CLASS) { Raise_Error(_SC("trying to inherit from a %s"),GetTypeName(_stack._vals[_stackbase+baseclass])); return false; } - base = _class(_stack._vals[_stackbase + baseclass]); - } - if(attributes != MAX_FUNC_STACKSIZE) { - attrs = _stack._vals[_stackbase+attributes]; - } - target = SQClass::Create(_ss(this),base); - if(sq_type(_class(target)->_metamethods[MT_INHERITED]) != OT_NULL) { - int nparams = 2; - SQObjectPtr ret; - Push(target); Push(attrs); - if(!Call(_class(target)->_metamethods[MT_INHERITED],nparams,_top - nparams, ret, false)) { - Pop(nparams); - return false; - } - Pop(nparams); - } - _class(target)->_attributes = attrs; - return true; -} - -bool SQVM::IsEqual(const SQObjectPtr &o1,const SQObjectPtr &o2,bool &res) -{ - SQObjectType t1 = sq_type(o1), t2 = sq_type(o2); - if(t1 == t2) { - if (t1 == OT_FLOAT) { - res = (_float(o1) == _float(o2)); - } - else { - res = (_rawval(o1) == _rawval(o2)); - } - } - else { - if(sq_isnumeric(o1) && sq_isnumeric(o2)) { - res = (tofloat(o1) == tofloat(o2)); - } - else { - res = false; - } - } - return true; -} - -bool SQVM::IsFalse(SQObjectPtr &o) -{ - if(((sq_type(o) & SQOBJECT_CANBEFALSE) - && ( ((sq_type(o) == OT_FLOAT) && (_float(o) == SQFloat(0.0))) )) -#if !defined(SQUSEDOUBLE) || (defined(SQUSEDOUBLE) && defined(_SQ64)) - || (_integer(o) == 0) ) //OT_NULL|OT_INTEGER|OT_BOOL -#else - || (((sq_type(o) != OT_FLOAT) && (_integer(o) == 0))) ) //OT_NULL|OT_INTEGER|OT_BOOL -#endif - { - return true; - } - return false; -} -extern SQInstructionDesc g_InstrDesc[]; -bool SQVM::Execute(SQObjectPtr &closure, SQInteger nargs, SQInteger stackbase,SQObjectPtr &outres, SQBool raiseerror,ExecutionType et) -{ - if ((_nnativecalls + 1) > MAX_NATIVE_CALLS) { Raise_Error(_SC("Native stack overflow")); return false; } - _nnativecalls++; - AutoDec ad(&_nnativecalls); - SQInteger traps = 0; - CallInfo *prevci = ci; - - switch(et) { - case ET_CALL: { - temp_reg = closure; - if(!StartCall(_closure(temp_reg), _top - nargs, nargs, stackbase, false)) { - //call the handler if there are no calls in the stack, if not relies on the previous node - if(ci == NULL) CallErrorHandler(_lasterror); - return false; - } - if(ci == prevci) { - outres = STK(_top-nargs); - return true; - } - ci->_root = SQTrue; - } - break; - case ET_RESUME_GENERATOR: - if(!_generator(closure)->Resume(this, outres)) { - return false; - } - ci->_root = SQTrue; - traps += ci->_etraps; - break; - case ET_RESUME_VM: - case ET_RESUME_THROW_VM: - traps = _suspended_traps; - ci->_root = _suspended_root; - _suspended = SQFalse; - if(et == ET_RESUME_THROW_VM) { SQ_THROW(); } - break; - } - -exception_restore: - // - { - for(;;) - { - const SQInstruction &_i_ = *ci->_ip++; - //dumpstack(_stackbase); - //scprintf("\n[%d] %s %d %d %d %d\n",ci->_ip-_closure(ci->_closure)->_function->_instructions,g_InstrDesc[_i_.op].name,arg0,arg1,arg2,arg3); - switch(_i_.op) - { - case _OP_LINE: if (_debughook) CallDebugHook(_SC('l'),arg1); continue; - case _OP_LOAD: TARGET = ci->_literals[arg1]; continue; - case _OP_LOADINT: -#ifndef _SQ64 - TARGET = (SQInteger)arg1; continue; -#else - TARGET = (SQInteger)((SQInt32)arg1); continue; -#endif - case _OP_LOADFLOAT: TARGET = *((const SQFloat *)&arg1); continue; - case _OP_DLOAD: TARGET = ci->_literals[arg1]; STK(arg2) = ci->_literals[arg3];continue; - case _OP_TAILCALL:{ - SQObjectPtr &t = STK(arg1); - if (sq_type(t) == OT_CLOSURE - && (!_closure(t)->_function->_bgenerator)){ - SQObjectPtr clo = t; - SQInteger last_top = _top; - if(_openouters) CloseOuters(&(_stack._vals[_stackbase])); - for (SQInteger i = 0; i < arg3; i++) STK(i) = STK(arg2 + i); - _GUARD(StartCall(_closure(clo), ci->_target, arg3, _stackbase, true)); - if (last_top >= _top) { - _top = last_top; - } - continue; - } - } - case _OP_CALL: { - SQObjectPtr clo = STK(arg1); - switch (sq_type(clo)) { - case OT_CLOSURE: - _GUARD(StartCall(_closure(clo), sarg0, arg3, _stackbase+arg2, false)); - continue; - case OT_NATIVECLOSURE: { - bool suspend; - bool tailcall; - _GUARD(CallNative(_nativeclosure(clo), arg3, _stackbase+arg2, clo, (SQInt32)sarg0, suspend, tailcall)); - if(suspend){ - _suspended = SQTrue; - _suspended_target = sarg0; - _suspended_root = ci->_root; - _suspended_traps = traps; - outres = clo; - return true; - } - if(sarg0 != -1 && !tailcall) { - STK(arg0) = clo; - } - } - continue; - case OT_CLASS:{ - SQObjectPtr inst; - _GUARD(CreateClassInstance(_class(clo),inst,clo)); - if(sarg0 != -1) { - STK(arg0) = inst; - } - SQInteger stkbase; - switch(sq_type(clo)) { - case OT_CLOSURE: - stkbase = _stackbase+arg2; - _stack._vals[stkbase] = inst; - _GUARD(StartCall(_closure(clo), -1, arg3, stkbase, false)); - break; - case OT_NATIVECLOSURE: - bool dummy; - stkbase = _stackbase+arg2; - _stack._vals[stkbase] = inst; - _GUARD(CallNative(_nativeclosure(clo), arg3, stkbase, clo, -1, dummy, dummy)); - break; - default: break; //shutup GCC 4.x - } - } - break; - case OT_TABLE: - case OT_USERDATA: - case OT_INSTANCE:{ - SQObjectPtr closure; - if(_delegable(clo)->_delegate && _delegable(clo)->GetMetaMethod(this,MT_CALL,closure)) { - Push(clo); - for (SQInteger i = 0; i < arg3; i++) Push(STK(arg2 + i)); - if(!CallMetaMethod(closure, MT_CALL, arg3+1, clo)) SQ_THROW(); - if(sarg0 != -1) { - STK(arg0) = clo; - } - break; - } - - //Raise_Error(_SC("attempt to call '%s'"), GetTypeName(clo)); - //SQ_THROW(); - } - default: - Raise_Error(_SC("attempt to call '%s'"), GetTypeName(clo)); - SQ_THROW(); - } - } - continue; - case _OP_PREPCALL: - case _OP_PREPCALLK: { - SQObjectPtr &key = _i_.op == _OP_PREPCALLK?(ci->_literals)[arg1]:STK(arg1); - SQObjectPtr &o = STK(arg2); - if (!Get(o, key, temp_reg,0,arg2)) { - SQ_THROW(); - } - STK(arg3) = o; - _Swap(TARGET,temp_reg);//TARGET = temp_reg; - } - continue; - case _OP_GETK: - if (!Get(STK(arg2), ci->_literals[arg1], temp_reg, 0,arg2)) { SQ_THROW();} - _Swap(TARGET,temp_reg);//TARGET = temp_reg; - continue; - case _OP_MOVE: TARGET = STK(arg1); continue; - case _OP_NEWSLOT: - _GUARD(NewSlot(STK(arg1), STK(arg2), STK(arg3),false)); - if(arg0 != 0xFF) TARGET = STK(arg3); - continue; - case _OP_DELETE: _GUARD(DeleteSlot(STK(arg1), STK(arg2), TARGET)); continue; - case _OP_SET: - if (!Set(STK(arg1), STK(arg2), STK(arg3),arg1)) { SQ_THROW(); } - if (arg0 != 0xFF) TARGET = STK(arg3); - continue; - case _OP_GET: - if (!Get(STK(arg1), STK(arg2), temp_reg, 0,arg1)) { SQ_THROW(); } - _Swap(TARGET,temp_reg);//TARGET = temp_reg; - continue; - case _OP_EQ:{ - bool res; - if(!IsEqual(STK(arg2),COND_LITERAL,res)) { SQ_THROW(); } - TARGET = res?true:false; - }continue; - case _OP_NE:{ - bool res; - if(!IsEqual(STK(arg2),COND_LITERAL,res)) { SQ_THROW(); } - TARGET = (!res)?true:false; - } continue; - case _OP_ADD: _ARITH_(+,TARGET,STK(arg2),STK(arg1)); continue; - case _OP_SUB: _ARITH_(-,TARGET,STK(arg2),STK(arg1)); continue; - case _OP_MUL: _ARITH_(*,TARGET,STK(arg2),STK(arg1)); continue; - case _OP_DIV: _ARITH_NOZERO(/,TARGET,STK(arg2),STK(arg1),_SC("division by zero")); continue; - case _OP_MOD: ARITH_OP('%',TARGET,STK(arg2),STK(arg1)); continue; - case _OP_BITW: _GUARD(BW_OP( arg3,TARGET,STK(arg2),STK(arg1))); continue; - case _OP_RETURN: - if((ci)->_generator) { - (ci)->_generator->Kill(); - } - if(Return(arg0, arg1, temp_reg)){ - assert(traps==0); - //outres = temp_reg; - _Swap(outres,temp_reg); - return true; - } - continue; - case _OP_LOADNULLS:{ for(SQInt32 n=0; n < arg1; n++) STK(arg0+n).Null(); }continue; - case _OP_LOADROOT: { - SQWeakRef *w = _closure(ci->_closure)->_root; - if(sq_type(w->_obj) != OT_NULL) { - TARGET = w->_obj; - } else { - TARGET = _roottable; //shoud this be like this? or null - } - } - continue; - case _OP_LOADBOOL: TARGET = arg1?true:false; continue; - case _OP_DMOVE: STK(arg0) = STK(arg1); STK(arg2) = STK(arg3); continue; - case _OP_JMP: ci->_ip += (sarg1); continue; - //case _OP_JNZ: if(!IsFalse(STK(arg0))) ci->_ip+=(sarg1); continue; - case _OP_JCMP: - _GUARD(CMP_OP((CmpOP)arg3,STK(arg2),STK(arg0),temp_reg)); - if(IsFalse(temp_reg)) ci->_ip+=(sarg1); - continue; - case _OP_JZ: if(IsFalse(STK(arg0))) ci->_ip+=(sarg1); continue; - case _OP_GETOUTER: { - SQClosure *cur_cls = _closure(ci->_closure); - SQOuter *otr = _outer(cur_cls->_outervalues[arg1]); - TARGET = *(otr->_valptr); - } - continue; - case _OP_SETOUTER: { - SQClosure *cur_cls = _closure(ci->_closure); - SQOuter *otr = _outer(cur_cls->_outervalues[arg1]); - *(otr->_valptr) = STK(arg2); - if(arg0 != 0xFF) { - TARGET = STK(arg2); - } - } - continue; - case _OP_NEWOBJ: - switch(arg3) { - case NOT_TABLE: TARGET = SQTable::Create(_ss(this), arg1); continue; - case NOT_ARRAY: TARGET = SQArray::Create(_ss(this), 0); _array(TARGET)->Reserve(arg1); continue; - case NOT_CLASS: _GUARD(CLASS_OP(TARGET,arg1,arg2)); continue; - default: assert(0); continue; - } - case _OP_APPENDARRAY: - { - SQObject val; - val._unVal.raw = 0; - switch(arg2) { - case AAT_STACK: - val = STK(arg1); break; - case AAT_LITERAL: - val = ci->_literals[arg1]; break; - case AAT_INT: - val._type = OT_INTEGER; -#ifndef _SQ64 - val._unVal.nInteger = (SQInteger)arg1; -#else - val._unVal.nInteger = (SQInteger)((SQInt32)arg1); -#endif - break; - case AAT_FLOAT: - val._type = OT_FLOAT; - val._unVal.fFloat = *((const SQFloat *)&arg1); - break; - case AAT_BOOL: - val._type = OT_BOOL; - val._unVal.nInteger = arg1; - break; - default: val._type = OT_INTEGER; assert(0); break; - - } - _array(STK(arg0))->Append(val); continue; - } - case _OP_COMPARITH: { - SQInteger selfidx = (((SQUnsignedInteger)arg1&0xFFFF0000)>>16); - _GUARD(DerefInc(arg3, TARGET, STK(selfidx), STK(arg2), STK(arg1&0x0000FFFF), false, selfidx)); - } - continue; - case _OP_INC: {SQObjectPtr o(sarg3); _GUARD(DerefInc('+',TARGET, STK(arg1), STK(arg2), o, false, arg1));} continue; - case _OP_INCL: { - SQObjectPtr &a = STK(arg1); - if(sq_type(a) == OT_INTEGER) { - a._unVal.nInteger = _integer(a) + sarg3; - } - else { - SQObjectPtr o(sarg3); //_GUARD(LOCAL_INC('+',TARGET, STK(arg1), o)); - _ARITH_(+,a,a,o); - } - } continue; - case _OP_PINC: {SQObjectPtr o(sarg3); _GUARD(DerefInc('+',TARGET, STK(arg1), STK(arg2), o, true, arg1));} continue; - case _OP_PINCL: { - SQObjectPtr &a = STK(arg1); - if(sq_type(a) == OT_INTEGER) { - TARGET = a; - a._unVal.nInteger = _integer(a) + sarg3; - } - else { - SQObjectPtr o(sarg3); _GUARD(PLOCAL_INC('+',TARGET, STK(arg1), o)); - } - - } continue; - case _OP_CMP: _GUARD(CMP_OP((CmpOP)arg3,STK(arg2),STK(arg1),TARGET)) continue; - case _OP_EXISTS: TARGET = Get(STK(arg1), STK(arg2), temp_reg, GET_FLAG_DO_NOT_RAISE_ERROR | GET_FLAG_RAW, DONT_FALL_BACK) ? true : false; continue; - case _OP_INSTANCEOF: - if(sq_type(STK(arg1)) != OT_CLASS) - {Raise_Error(_SC("cannot apply instanceof between a %s and a %s"),GetTypeName(STK(arg1)),GetTypeName(STK(arg2))); SQ_THROW();} - TARGET = (sq_type(STK(arg2)) == OT_INSTANCE) ? (_instance(STK(arg2))->InstanceOf(_class(STK(arg1)))?true:false) : false; - continue; - case _OP_AND: - if(IsFalse(STK(arg2))) { - TARGET = STK(arg2); - ci->_ip += (sarg1); - } - continue; - case _OP_OR: - if(!IsFalse(STK(arg2))) { - TARGET = STK(arg2); - ci->_ip += (sarg1); - } - continue; - case _OP_NEG: _GUARD(NEG_OP(TARGET,STK(arg1))); continue; - case _OP_NOT: TARGET = IsFalse(STK(arg1)); continue; - case _OP_BWNOT: - if(sq_type(STK(arg1)) == OT_INTEGER) { - SQInteger t = _integer(STK(arg1)); - TARGET = SQInteger(~t); - continue; - } - Raise_Error(_SC("attempt to perform a bitwise op on a %s"), GetTypeName(STK(arg1))); - SQ_THROW(); - case _OP_CLOSURE: { - SQClosure *c = ci->_closure._unVal.pClosure; - SQFunctionProto *fp = c->_function; - if(!CLOSURE_OP(TARGET,fp->_functions[arg1]._unVal.pFunctionProto,arg2)) { SQ_THROW(); } - continue; - } - case _OP_YIELD:{ - if(ci->_generator) { - if(sarg1 != MAX_FUNC_STACKSIZE) temp_reg = STK(arg1); - if (_openouters) CloseOuters(&_stack._vals[_stackbase]); - _GUARD(ci->_generator->Yield(this,arg2)); - traps -= ci->_etraps; - if(sarg1 != MAX_FUNC_STACKSIZE) _Swap(STK(arg1),temp_reg);//STK(arg1) = temp_reg; - } - else { Raise_Error(_SC("trying to yield a '%s',only genenerator can be yielded"), GetTypeName(ci->_generator)); SQ_THROW();} - if(Return(arg0, arg1, temp_reg)){ - assert(traps == 0); - outres = temp_reg; - return true; - } - - } - continue; - case _OP_RESUME: - if(sq_type(STK(arg1)) != OT_GENERATOR){ Raise_Error(_SC("trying to resume a '%s',only genenerator can be resumed"), GetTypeName(STK(arg1))); SQ_THROW();} - _GUARD(_generator(STK(arg1))->Resume(this, TARGET)); - traps += ci->_etraps; - continue; - case _OP_FOREACH:{ int tojump; - _GUARD(FOREACH_OP(STK(arg0),STK(arg2),STK(arg2+1),STK(arg2+2),arg2,sarg1,tojump)); - ci->_ip += tojump; } - continue; - case _OP_POSTFOREACH: - assert(sq_type(STK(arg0)) == OT_GENERATOR); - if(_generator(STK(arg0))->_state == SQGenerator::eDead) - ci->_ip += (sarg1 - 1); - continue; - case _OP_CLONE: _GUARD(Clone(STK(arg1), TARGET)); continue; - case _OP_TYPEOF: _GUARD(TypeOf(STK(arg1), TARGET)) continue; - case _OP_PUSHTRAP:{ - SQInstruction *_iv = _closure(ci->_closure)->_function->_instructions; - _etraps.push_back(SQExceptionTrap(_top,_stackbase, &_iv[(ci->_ip-_iv)+arg1], arg0)); traps++; - ci->_etraps++; - } - continue; - case _OP_POPTRAP: { - for(SQInteger i = 0; i < arg0; i++) { - _etraps.pop_back(); traps--; - ci->_etraps--; - } - } - continue; - case _OP_THROW: Raise_Error(TARGET); SQ_THROW(); continue; - case _OP_NEWSLOTA: - _GUARD(NewSlotA(STK(arg1),STK(arg2),STK(arg3),(arg0&NEW_SLOT_ATTRIBUTES_FLAG) ? STK(arg2-1) : SQObjectPtr(),(arg0&NEW_SLOT_STATIC_FLAG)?true:false,false)); - continue; - case _OP_GETBASE:{ - SQClosure *clo = _closure(ci->_closure); - if(clo->_base) { - TARGET = clo->_base; - } - else { - TARGET.Null(); - } - continue; - } - case _OP_CLOSE: - if(_openouters) CloseOuters(&(STK(arg1))); - continue; - } - - } - } -exception_trap: - { - SQObjectPtr currerror = _lasterror; -// dumpstack(_stackbase); -// SQInteger n = 0; - SQInteger last_top = _top; - - if(_ss(this)->_notifyallexceptions || (!traps && raiseerror)) CallErrorHandler(currerror); - - while( ci ) { - if(ci->_etraps > 0) { - SQExceptionTrap &et = _etraps.top(); - ci->_ip = et._ip; - _top = et._stacksize; - _stackbase = et._stackbase; - _stack._vals[_stackbase + et._extarget] = currerror; - _etraps.pop_back(); traps--; ci->_etraps--; - while(last_top >= _top) _stack._vals[last_top--].Null(); - goto exception_restore; - } - else if (_debughook) { - //notify debugger of a "return" - //even if it really an exception unwinding the stack - for(SQInteger i = 0; i < ci->_ncalls; i++) { - CallDebugHook(_SC('r')); - } - } - if(ci->_generator) ci->_generator->Kill(); - bool mustbreak = ci && ci->_root; - LeaveFrame(); - if(mustbreak) break; - } - - _lasterror = currerror; - return false; - } - assert(0); - return false; -} - -bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor) -{ - inst = theclass->CreateInstance(); - if(!theclass->GetConstructor(constructor)) { - constructor.Null(); - } - return true; -} - -void SQVM::CallErrorHandler(SQObjectPtr &error) -{ - if(sq_type(_errorhandler) != OT_NULL) { - SQObjectPtr out; - Push(_roottable); Push(error); - Call(_errorhandler, 2, _top-2, out,SQFalse); - Pop(2); - } -} - - -void SQVM::CallDebugHook(SQInteger type,SQInteger forcedline) -{ - _debughook = false; - SQFunctionProto *func=_closure(ci->_closure)->_function; - if(_debughook_native) { - const SQChar *src = sq_type(func->_sourcename) == OT_STRING?_stringval(func->_sourcename):NULL; - const SQChar *fname = sq_type(func->_name) == OT_STRING?_stringval(func->_name):NULL; - SQInteger line = forcedline?forcedline:func->GetLine(ci->_ip); - _debughook_native(this,type,src,line,fname); - } - else { - SQObjectPtr temp_reg; - SQInteger nparams=5; - Push(_roottable); Push(type); Push(func->_sourcename); Push(forcedline?forcedline:func->GetLine(ci->_ip)); Push(func->_name); - Call(_debughook_closure,nparams,_top-nparams,temp_reg,SQFalse); - Pop(nparams); - } - _debughook = true; -} - -bool SQVM::CallNative(SQNativeClosure *nclosure, SQInteger nargs, SQInteger newbase, SQObjectPtr &retval, SQInt32 target,bool &suspend, bool &tailcall) -{ - SQInteger nparamscheck = nclosure->_nparamscheck; - SQInteger newtop = newbase + nargs + nclosure->_noutervalues; - - if (_nnativecalls + 1 > MAX_NATIVE_CALLS) { - Raise_Error(_SC("Native stack overflow")); - return false; - } - - if(nparamscheck && (((nparamscheck > 0) && (nparamscheck != nargs)) || - ((nparamscheck < 0) && (nargs < (-nparamscheck))))) - { - Raise_Error(_SC("wrong number of parameters")); - return false; - } - - SQInteger tcs; - SQIntVec &tc = nclosure->_typecheck; - if((tcs = tc.size())) { - for(SQInteger i = 0; i < nargs && i < tcs; i++) { - if((tc._vals[i] != -1) && !(sq_type(_stack._vals[newbase+i]) & tc._vals[i])) { - Raise_ParamTypeError(i,tc._vals[i], sq_type(_stack._vals[newbase+i])); - return false; - } - } - } - - if(!EnterFrame(newbase, newtop, false)) return false; - ci->_closure = nclosure; - ci->_target = target; - - SQInteger outers = nclosure->_noutervalues; - for (SQInteger i = 0; i < outers; i++) { - _stack._vals[newbase+nargs+i] = nclosure->_outervalues[i]; - } - if(nclosure->_env) { - _stack._vals[newbase] = nclosure->_env->_obj; - } - - _nnativecalls++; - SQInteger ret = (nclosure->_function)(this); - _nnativecalls--; - - suspend = false; - tailcall = false; - if (ret == SQ_TAILCALL_FLAG) { - tailcall = true; - return true; - } - else if (ret == SQ_SUSPEND_FLAG) { - suspend = true; - } - else if (ret < 0) { - LeaveFrame(); - Raise_Error(_lasterror); - return false; - } - if(ret) { - retval = _stack._vals[_top-1]; - } - else { - retval.Null(); - } - //retval = ret ? _stack._vals[_top-1] : _null_; - LeaveFrame(); - return true; -} - -bool SQVM::TailCall(SQClosure *closure, SQInteger parambase,SQInteger nparams) -{ - SQInteger last_top = _top; - SQObjectPtr clo = closure; - if (ci->_root) - { - Raise_Error("root calls cannot invoke tailcalls"); - return false; - } - for (SQInteger i = 0; i < nparams; i++) STK(i) = STK(parambase + i); - bool ret = StartCall(closure, ci->_target, nparams, _stackbase, true); - if (last_top >= _top) { - _top = last_top; - } - return ret; -} - -#define FALLBACK_OK 0 -#define FALLBACK_NO_MATCH 1 -#define FALLBACK_ERROR 2 - -bool SQVM::Get(const SQObjectPtr &self, const SQObjectPtr &key, SQObjectPtr &dest, SQUnsignedInteger getflags, SQInteger selfidx) -{ - switch(sq_type(self)){ - case OT_TABLE: - if(_table(self)->Get(key,dest))return true; - break; - case OT_ARRAY: - if (sq_isnumeric(key)) { if (_array(self)->Get(tointeger(key), dest)) { return true; } if ((getflags & GET_FLAG_DO_NOT_RAISE_ERROR) == 0) Raise_IdxError(key); return false; } - break; - case OT_INSTANCE: - if(_instance(self)->Get(key,dest)) return true; - break; - case OT_CLASS: - if(_class(self)->Get(key,dest)) return true; - break; - case OT_STRING: - if(sq_isnumeric(key)){ - SQInteger n = tointeger(key); - SQInteger len = _string(self)->_len; - if (n < 0) { n += len; } - if (n >= 0 && n < len) { - dest = SQInteger(_stringval(self)[n]); - return true; - } - if ((getflags & GET_FLAG_DO_NOT_RAISE_ERROR) == 0) Raise_IdxError(key); - return false; - } - break; - default:break; //shut up compiler - } - if ((getflags & GET_FLAG_RAW) == 0) { - switch(FallBackGet(self,key,dest)) { - case FALLBACK_OK: return true; //okie - case FALLBACK_NO_MATCH: break; //keep falling back - case FALLBACK_ERROR: return false; // the metamethod failed - } - if(InvokeDefaultDelegate(self,key,dest)) { - return true; - } - } -//#ifdef ROOT_FALLBACK - if(selfidx == 0) { - SQWeakRef *w = _closure(ci->_closure)->_root; - if(sq_type(w->_obj) != OT_NULL) - { - if(Get(*((const SQObjectPtr *)&w->_obj),key,dest,0,DONT_FALL_BACK)) return true; - } - - } -//#endif - if ((getflags & GET_FLAG_DO_NOT_RAISE_ERROR) == 0) Raise_IdxError(key); - return false; -} - -bool SQVM::InvokeDefaultDelegate(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr &dest) -{ - SQTable *ddel = NULL; - switch(sq_type(self)) { - case OT_CLASS: ddel = _class_ddel; break; - case OT_TABLE: ddel = _table_ddel; break; - case OT_ARRAY: ddel = _array_ddel; break; - case OT_STRING: ddel = _string_ddel; break; - case OT_INSTANCE: ddel = _instance_ddel; break; - case OT_INTEGER:case OT_FLOAT:case OT_BOOL: ddel = _number_ddel; break; - case OT_GENERATOR: ddel = _generator_ddel; break; - case OT_CLOSURE: case OT_NATIVECLOSURE: ddel = _closure_ddel; break; - case OT_THREAD: ddel = _thread_ddel; break; - case OT_WEAKREF: ddel = _weakref_ddel; break; - default: return false; - } - return ddel->Get(key,dest); -} - - -SQInteger SQVM::FallBackGet(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr &dest) -{ - switch(sq_type(self)){ - case OT_TABLE: - case OT_USERDATA: - //delegation - if(_delegable(self)->_delegate) { - if(Get(SQObjectPtr(_delegable(self)->_delegate),key,dest, GET_FLAG_DO_NOT_RAISE_ERROR,DONT_FALL_BACK)) return FALLBACK_OK; - } - else { - return FALLBACK_NO_MATCH; - } - //go through - case OT_INSTANCE: { - SQObjectPtr closure; - if(_delegable(self)->GetMetaMethod(this, MT_GET, closure)) { - Push(self);Push(key); - _nmetamethodscall++; - AutoDec ad(&_nmetamethodscall); - if(Call(closure, 2, _top - 2, dest, SQFalse)) { - Pop(2); - return FALLBACK_OK; - } - else { - Pop(2); - if(sq_type(_lasterror) != OT_NULL) { //NULL means "clean failure" (not found) - return FALLBACK_ERROR; - } - } - } - } - break; - default: break;//shutup GCC 4.x - } - // no metamethod or no fallback type - return FALLBACK_NO_MATCH; -} - -bool SQVM::Set(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val,SQInteger selfidx) -{ - switch(sq_type(self)){ - case OT_TABLE: - if(_table(self)->Set(key,val)) return true; - break; - case OT_INSTANCE: - if(_instance(self)->Set(key,val)) return true; - break; - case OT_ARRAY: - if(!sq_isnumeric(key)) { Raise_Error(_SC("indexing %s with %s"),GetTypeName(self),GetTypeName(key)); return false; } - if(!_array(self)->Set(tointeger(key),val)) { - Raise_IdxError(key); - return false; - } - return true; - case OT_USERDATA: break; // must fall back - default: - Raise_Error(_SC("trying to set '%s'"),GetTypeName(self)); - return false; - } - - switch(FallBackSet(self,key,val)) { - case FALLBACK_OK: return true; //okie - case FALLBACK_NO_MATCH: break; //keep falling back - case FALLBACK_ERROR: return false; // the metamethod failed - } - if(selfidx == 0) { - if(_table(_roottable)->Set(key,val)) - return true; - } - Raise_IdxError(key); - return false; -} - -SQInteger SQVM::FallBackSet(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val) -{ - switch(sq_type(self)) { - case OT_TABLE: - if(_table(self)->_delegate) { - if(Set(_table(self)->_delegate,key,val,DONT_FALL_BACK)) return FALLBACK_OK; - } - //keps on going - case OT_INSTANCE: - case OT_USERDATA:{ - SQObjectPtr closure; - SQObjectPtr t; - if(_delegable(self)->GetMetaMethod(this, MT_SET, closure)) { - Push(self);Push(key);Push(val); - _nmetamethodscall++; - AutoDec ad(&_nmetamethodscall); - if(Call(closure, 3, _top - 3, t, SQFalse)) { - Pop(3); - return FALLBACK_OK; - } - else { - Pop(3); - if(sq_type(_lasterror) != OT_NULL) { //NULL means "clean failure" (not found) - return FALLBACK_ERROR; - } - } - } - } - break; - default: break;//shutup GCC 4.x - } - // no metamethod or no fallback type - return FALLBACK_NO_MATCH; -} - -bool SQVM::Clone(const SQObjectPtr &self,SQObjectPtr &target) -{ - SQObjectPtr temp_reg; - SQObjectPtr newobj; - switch(sq_type(self)){ - case OT_TABLE: - newobj = _table(self)->Clone(); - goto cloned_mt; - case OT_INSTANCE: { - newobj = _instance(self)->Clone(_ss(this)); -cloned_mt: - SQObjectPtr closure; - if(_delegable(newobj)->_delegate && _delegable(newobj)->GetMetaMethod(this,MT_CLONED,closure)) { - Push(newobj); - Push(self); - if(!CallMetaMethod(closure,MT_CLONED,2,temp_reg)) - return false; - } - } - target = newobj; - return true; - case OT_ARRAY: - target = _array(self)->Clone(); - return true; - default: - Raise_Error(_SC("cloning a %s"), GetTypeName(self)); - return false; - } -} - -bool SQVM::NewSlotA(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val,const SQObjectPtr &attrs,bool bstatic,bool raw) -{ - if(sq_type(self) != OT_CLASS) { - Raise_Error(_SC("object must be a class")); - return false; - } - SQClass *c = _class(self); - if(!raw) { - SQObjectPtr &mm = c->_metamethods[MT_NEWMEMBER]; - if(sq_type(mm) != OT_NULL ) { - Push(self); Push(key); Push(val); - Push(attrs); - Push(bstatic); - return CallMetaMethod(mm,MT_NEWMEMBER,5,temp_reg); - } - } - if(!NewSlot(self, key, val,bstatic)) - return false; - if(sq_type(attrs) != OT_NULL) { - c->SetAttributes(key,attrs); - } - return true; -} - -bool SQVM::NewSlot(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val,bool bstatic) -{ - if(sq_type(key) == OT_NULL) { Raise_Error(_SC("null cannot be used as index")); return false; } - switch(sq_type(self)) { - case OT_TABLE: { - bool rawcall = true; - if(_table(self)->_delegate) { - SQObjectPtr res; - if(!_table(self)->Get(key,res)) { - SQObjectPtr closure; - if(_delegable(self)->_delegate && _delegable(self)->GetMetaMethod(this,MT_NEWSLOT,closure)) { - Push(self);Push(key);Push(val); - if(!CallMetaMethod(closure,MT_NEWSLOT,3,res)) { - return false; - } - rawcall = false; - } - else { - rawcall = true; - } - } - } - if(rawcall) _table(self)->NewSlot(key,val); //cannot fail - - break;} - case OT_INSTANCE: { - SQObjectPtr res; - SQObjectPtr closure; - if(_delegable(self)->_delegate && _delegable(self)->GetMetaMethod(this,MT_NEWSLOT,closure)) { - Push(self);Push(key);Push(val); - if(!CallMetaMethod(closure,MT_NEWSLOT,3,res)) { - return false; - } - break; - } - Raise_Error(_SC("class instances do not support the new slot operator")); - return false; - break;} - case OT_CLASS: - if(!_class(self)->NewSlot(_ss(this),key,val,bstatic)) { - if(_class(self)->_locked) { - Raise_Error(_SC("trying to modify a class that has already been instantiated")); - return false; - } - else { - SQObjectPtr oval = PrintObjVal(key); - Raise_Error(_SC("the property '%s' already exists"),_stringval(oval)); - return false; - } - } - break; - default: - Raise_Error(_SC("indexing %s with %s"),GetTypeName(self),GetTypeName(key)); - return false; - break; - } - return true; -} - - - -bool SQVM::DeleteSlot(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr &res) -{ - switch(sq_type(self)) { - case OT_TABLE: - case OT_INSTANCE: - case OT_USERDATA: { - SQObjectPtr t; - //bool handled = false; - SQObjectPtr closure; - if(_delegable(self)->_delegate && _delegable(self)->GetMetaMethod(this,MT_DELSLOT,closure)) { - Push(self);Push(key); - return CallMetaMethod(closure,MT_DELSLOT,2,res); - } - else { - if(sq_type(self) == OT_TABLE) { - if(_table(self)->Get(key,t)) { - _table(self)->Remove(key); - } - else { - Raise_IdxError((const SQObject &)key); - return false; - } - } - else { - Raise_Error(_SC("cannot delete a slot from %s"),GetTypeName(self)); - return false; - } - } - res = t; - } - break; - default: - Raise_Error(_SC("attempt to delete a slot from a %s"),GetTypeName(self)); - return false; - } - return true; -} - -bool SQVM::Call(SQObjectPtr &closure,SQInteger nparams,SQInteger stackbase,SQObjectPtr &outres,SQBool raiseerror) -{ -#ifdef _DEBUG -SQInteger prevstackbase = _stackbase; -#endif - switch(sq_type(closure)) { - case OT_CLOSURE: - return Execute(closure, nparams, stackbase, outres, raiseerror); - break; - case OT_NATIVECLOSURE:{ - bool dummy; - return CallNative(_nativeclosure(closure), nparams, stackbase, outres, -1, dummy, dummy); - - } - break; - case OT_CLASS: { - SQObjectPtr constr; - SQObjectPtr temp; - CreateClassInstance(_class(closure),outres,constr); - SQObjectType ctype = sq_type(constr); - if (ctype == OT_NATIVECLOSURE || ctype == OT_CLOSURE) { - _stack[stackbase] = outres; - return Call(constr,nparams,stackbase,temp,raiseerror); - } - return true; - } - break; - default: - Raise_Error(_SC("attempt to call '%s'"), GetTypeName(closure)); - return false; - } -#ifdef _DEBUG - if(!_suspended) { - assert(_stackbase == prevstackbase); - } -#endif - return true; -} - -bool SQVM::CallMetaMethod(SQObjectPtr &closure,SQMetaMethod SQ_UNUSED_ARG(mm),SQInteger nparams,SQObjectPtr &outres) -{ - //SQObjectPtr closure; - - _nmetamethodscall++; - if(Call(closure, nparams, _top - nparams, outres, SQFalse)) { - _nmetamethodscall--; - Pop(nparams); - return true; - } - _nmetamethodscall--; - //} - Pop(nparams); - return false; -} - -void SQVM::FindOuter(SQObjectPtr &target, SQObjectPtr *stackindex) -{ - SQOuter **pp = &_openouters; - SQOuter *p; - SQOuter *otr; - - while ((p = *pp) != NULL && p->_valptr >= stackindex) { - if (p->_valptr == stackindex) { - target = SQObjectPtr(p); - return; - } - pp = &p->_next; - } - otr = SQOuter::Create(_ss(this), stackindex); - otr->_next = *pp; - otr->_idx = (stackindex - _stack._vals); - __ObjAddRef(otr); - *pp = otr; - target = SQObjectPtr(otr); -} - -bool SQVM::EnterFrame(SQInteger newbase, SQInteger newtop, bool tailcall) -{ - if( !tailcall ) { - if( _callsstacksize == _alloccallsstacksize ) { - GrowCallStack(); - } - ci = &_callsstack[_callsstacksize++]; - ci->_prevstkbase = (SQInt32)(newbase - _stackbase); - ci->_prevtop = (SQInt32)(_top - _stackbase); - ci->_etraps = 0; - ci->_ncalls = 1; - ci->_generator = NULL; - ci->_root = SQFalse; - } - else { - ci->_ncalls++; - } - - _stackbase = newbase; - _top = newtop; - if(newtop + MIN_STACK_OVERHEAD > (SQInteger)_stack.size()) { - if(_nmetamethodscall) { - Raise_Error(_SC("stack overflow, cannot resize stack while in a metamethod")); - return false; - } - _stack.resize(newtop + (MIN_STACK_OVERHEAD << 2)); - RelocateOuters(); - } - return true; -} - -void SQVM::LeaveFrame() { - SQInteger last_top = _top; - SQInteger last_stackbase = _stackbase; - SQInteger css = --_callsstacksize; - - /* First clean out the call stack frame */ - ci->_closure.Null(); - _stackbase -= ci->_prevstkbase; - _top = _stackbase + ci->_prevtop; - ci = (css) ? &_callsstack[css-1] : NULL; - - if(_openouters) CloseOuters(&(_stack._vals[last_stackbase])); - while (last_top >= _top) { - _stack._vals[last_top--].Null(); - } -} - -void SQVM::RelocateOuters() -{ - SQOuter *p = _openouters; - while (p) { - p->_valptr = _stack._vals + p->_idx; - p = p->_next; - } -} - -void SQVM::CloseOuters(SQObjectPtr *stackindex) { - SQOuter *p; - while ((p = _openouters) != NULL && p->_valptr >= stackindex) { - p->_value = *(p->_valptr); - p->_valptr = &p->_value; - _openouters = p->_next; - __ObjRelease(p); - } -} - -void SQVM::Remove(SQInteger n) { - n = (n >= 0)?n + _stackbase - 1:_top + n; - for(SQInteger i = n; i < _top; i++){ - _stack[i] = _stack[i+1]; - } - _stack[_top].Null(); - _top--; -} - -void SQVM::Pop() { - _stack[--_top].Null(); -} - -void SQVM::Pop(SQInteger n) { - for(SQInteger i = 0; i < n; i++){ - _stack[--_top].Null(); - } -} - -void SQVM::PushNull() { _stack[_top++].Null(); } -void SQVM::Push(const SQObjectPtr &o) { _stack[_top++] = o; } -SQObjectPtr &SQVM::Top() { return _stack[_top-1]; } -SQObjectPtr &SQVM::PopGet() { return _stack[--_top]; } -SQObjectPtr &SQVM::GetUp(SQInteger n) { return _stack[_top+n]; } -SQObjectPtr &SQVM::GetAt(SQInteger n) { return _stack[n]; } - -#ifdef _DEBUG_DUMP -void SQVM::dumpstack(SQInteger stackbase,bool dumpall) -{ - SQInteger size=dumpall?_stack.size():_top; - SQInteger n=0; - scprintf(_SC("\n>>>>stack dump<<<<\n")); - CallInfo &ci=_callsstack[_callsstacksize-1]; - scprintf(_SC("IP: %p\n"),ci._ip); - scprintf(_SC("prev stack base: %d\n"),ci._prevstkbase); - scprintf(_SC("prev top: %d\n"),ci._prevtop); - for(SQInteger i=0;i"));else scprintf(_SC(" ")); - scprintf(_SC("[" _PRINT_INT_FMT "]:"),n); - switch(sq_type(obj)){ - case OT_FLOAT: scprintf(_SC("FLOAT %.3f"),_float(obj));break; - case OT_INTEGER: scprintf(_SC("INTEGER " _PRINT_INT_FMT),_integer(obj));break; - case OT_BOOL: scprintf(_SC("BOOL %s"),_integer(obj)?"true":"false");break; - case OT_STRING: scprintf(_SC("STRING %s"),_stringval(obj));break; - case OT_NULL: scprintf(_SC("NULL")); break; - case OT_TABLE: scprintf(_SC("TABLE %p[%p]"),_table(obj),_table(obj)->_delegate);break; - case OT_ARRAY: scprintf(_SC("ARRAY %p"),_array(obj));break; - case OT_CLOSURE: scprintf(_SC("CLOSURE [%p]"),_closure(obj));break; - case OT_NATIVECLOSURE: scprintf(_SC("NATIVECLOSURE"));break; - case OT_USERDATA: scprintf(_SC("USERDATA %p[%p]"),_userdataval(obj),_userdata(obj)->_delegate);break; - case OT_GENERATOR: scprintf(_SC("GENERATOR %p"),_generator(obj));break; - case OT_THREAD: scprintf(_SC("THREAD [%p]"),_thread(obj));break; - case OT_USERPOINTER: scprintf(_SC("USERPOINTER %p"),_userpointer(obj));break; - case OT_CLASS: scprintf(_SC("CLASS %p"),_class(obj));break; - case OT_INSTANCE: scprintf(_SC("INSTANCE %p"),_instance(obj));break; - case OT_WEAKREF: scprintf(_SC("WEAKREF %p"),_weakref(obj));break; - default: - assert(0); - break; - }; - scprintf(_SC("\n")); - ++n; - } -} - - - -#endif diff --git a/m_packages/squirrel/squirrel/sqvm.h b/m_packages/squirrel/squirrel/sqvm.h deleted file mode 100644 index 50927507..00000000 --- a/m_packages/squirrel/squirrel/sqvm.h +++ /dev/null @@ -1,213 +0,0 @@ -/* see copyright notice in squirrel.h */ -#ifndef _SQVM_H_ -#define _SQVM_H_ - -#include "sqopcodes.h" -#include "sqobject.h" -#define MAX_NATIVE_CALLS 100 -#define MIN_STACK_OVERHEAD 15 - -#define SQ_SUSPEND_FLAG -666 -#define SQ_TAILCALL_FLAG -777 -#define DONT_FALL_BACK 666 -//#define EXISTS_FALL_BACK -1 - -#define GET_FLAG_RAW 0x00000001 -#define GET_FLAG_DO_NOT_RAISE_ERROR 0x00000002 -//base lib -void sq_base_register(HSQUIRRELVM v); - -struct SQExceptionTrap{ - SQExceptionTrap() {} - SQExceptionTrap(SQInteger ss, SQInteger stackbase,SQInstruction *ip, SQInteger ex_target){ _stacksize = ss; _stackbase = stackbase; _ip = ip; _extarget = ex_target;} - SQExceptionTrap(const SQExceptionTrap &et) { (*this) = et; } - SQInteger _stackbase; - SQInteger _stacksize; - SQInstruction *_ip; - SQInteger _extarget; -}; - -#define _INLINE - -typedef sqvector ExceptionsTraps; - -struct SQVM : public CHAINABLE_OBJ -{ - struct CallInfo{ - //CallInfo() { _generator = NULL;} - SQInstruction *_ip; - SQObjectPtr *_literals; - SQObjectPtr _closure; - SQGenerator *_generator; - SQInt32 _etraps; - SQInt32 _prevstkbase; - SQInt32 _prevtop; - SQInt32 _target; - SQInt32 _ncalls; - SQBool _root; - }; - -typedef sqvector CallInfoVec; -public: - void DebugHookProxy(SQInteger type, const SQChar * sourcename, SQInteger line, const SQChar * funcname); - static void _DebugHookProxy(HSQUIRRELVM v, SQInteger type, const SQChar * sourcename, SQInteger line, const SQChar * funcname); - enum ExecutionType { ET_CALL, ET_RESUME_GENERATOR, ET_RESUME_VM,ET_RESUME_THROW_VM }; - SQVM(SQSharedState *ss); - ~SQVM(); - bool Init(SQVM *friendvm, SQInteger stacksize); - bool Execute(SQObjectPtr &func, SQInteger nargs, SQInteger stackbase, SQObjectPtr &outres, SQBool raiseerror, ExecutionType et = ET_CALL); - //starts a native call return when the NATIVE closure returns - bool CallNative(SQNativeClosure *nclosure, SQInteger nargs, SQInteger newbase, SQObjectPtr &retval, SQInt32 target, bool &suspend,bool &tailcall); - bool TailCall(SQClosure *closure, SQInteger firstparam, SQInteger nparams); - //starts a SQUIRREL call in the same "Execution loop" - bool StartCall(SQClosure *closure, SQInteger target, SQInteger nargs, SQInteger stackbase, bool tailcall); - bool CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor); - //call a generic closure pure SQUIRREL or NATIVE - bool Call(SQObjectPtr &closure, SQInteger nparams, SQInteger stackbase, SQObjectPtr &outres,SQBool raiseerror); - SQRESULT Suspend(); - - void CallDebugHook(SQInteger type,SQInteger forcedline=0); - void CallErrorHandler(SQObjectPtr &e); - bool Get(const SQObjectPtr &self, const SQObjectPtr &key, SQObjectPtr &dest, SQUnsignedInteger getflags, SQInteger selfidx); - SQInteger FallBackGet(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr &dest); - bool InvokeDefaultDelegate(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr &dest); - bool Set(const SQObjectPtr &self, const SQObjectPtr &key, const SQObjectPtr &val, SQInteger selfidx); - SQInteger FallBackSet(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val); - bool NewSlot(const SQObjectPtr &self, const SQObjectPtr &key, const SQObjectPtr &val,bool bstatic); - bool NewSlotA(const SQObjectPtr &self,const SQObjectPtr &key,const SQObjectPtr &val,const SQObjectPtr &attrs,bool bstatic,bool raw); - bool DeleteSlot(const SQObjectPtr &self, const SQObjectPtr &key, SQObjectPtr &res); - bool Clone(const SQObjectPtr &self, SQObjectPtr &target); - bool ObjCmp(const SQObjectPtr &o1, const SQObjectPtr &o2,SQInteger &res); - bool StringCat(const SQObjectPtr &str, const SQObjectPtr &obj, SQObjectPtr &dest); - static bool IsEqual(const SQObjectPtr &o1,const SQObjectPtr &o2,bool &res); - bool ToString(const SQObjectPtr &o,SQObjectPtr &res); - SQString *PrintObjVal(const SQObjectPtr &o); - - - void Raise_Error(const SQChar *s, ...); - void Raise_Error(const SQObjectPtr &desc); - void Raise_IdxError(const SQObjectPtr &o); - void Raise_CompareError(const SQObject &o1, const SQObject &o2); - void Raise_ParamTypeError(SQInteger nparam,SQInteger typemask,SQInteger type); - - void FindOuter(SQObjectPtr &target, SQObjectPtr *stackindex); - void RelocateOuters(); - void CloseOuters(SQObjectPtr *stackindex); - - bool TypeOf(const SQObjectPtr &obj1, SQObjectPtr &dest); - bool CallMetaMethod(SQObjectPtr &closure, SQMetaMethod mm, SQInteger nparams, SQObjectPtr &outres); - bool ArithMetaMethod(SQInteger op, const SQObjectPtr &o1, const SQObjectPtr &o2, SQObjectPtr &dest); - bool Return(SQInteger _arg0, SQInteger _arg1, SQObjectPtr &retval); - //new stuff - _INLINE bool ARITH_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2); - _INLINE bool BW_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2); - _INLINE bool NEG_OP(SQObjectPtr &trg,const SQObjectPtr &o1); - _INLINE bool CMP_OP(CmpOP op, const SQObjectPtr &o1,const SQObjectPtr &o2,SQObjectPtr &res); - bool CLOSURE_OP(SQObjectPtr &target, SQFunctionProto *func, SQInteger boundtarget); - bool CLASS_OP(SQObjectPtr &target,SQInteger base,SQInteger attrs); - //return true if the loop is finished - bool FOREACH_OP(SQObjectPtr &o1,SQObjectPtr &o2,SQObjectPtr &o3,SQObjectPtr &o4,SQInteger arg_2,int exitpos,int &jump); - //_INLINE bool LOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr); - _INLINE bool PLOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr); - _INLINE bool DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjectPtr &key, SQObjectPtr &incr, bool postfix,SQInteger arg0); -#ifdef _DEBUG_DUMP - void dumpstack(SQInteger stackbase=-1, bool dumpall = false); -#endif - -#ifndef NO_GARBAGE_COLLECTOR - void Mark(SQCollectable **chain); - SQObjectType GetType() {return OT_THREAD;} -#endif - void Finalize(); - void GrowCallStack() { - SQInteger newsize = _alloccallsstacksize*2; - _callstackdata.resize(newsize); - _callsstack = &_callstackdata[0]; - _alloccallsstacksize = newsize; - } - bool EnterFrame(SQInteger newbase, SQInteger newtop, bool tailcall); - void LeaveFrame(); - void Release(){ sq_delete(this,SQVM); } -//////////////////////////////////////////////////////////////////////////// - //stack functions for the api - void Remove(SQInteger n); - - static bool IsFalse(SQObjectPtr &o); - - void Pop(); - void Pop(SQInteger n); - void Push(const SQObjectPtr &o); - void PushNull(); - SQObjectPtr &Top(); - SQObjectPtr &PopGet(); - SQObjectPtr &GetUp(SQInteger n); - SQObjectPtr &GetAt(SQInteger n); - - SQObjectPtrVec _stack; - - SQInteger _top; - SQInteger _stackbase; - SQOuter *_openouters; - SQObjectPtr _roottable; - SQObjectPtr _lasterror; - SQObjectPtr _errorhandler; - - bool _debughook; - SQDEBUGHOOK _debughook_native; - SQObjectPtr _debughook_closure; - - SQObjectPtr temp_reg; - - - CallInfo* _callsstack; - SQInteger _callsstacksize; - SQInteger _alloccallsstacksize; - sqvector _callstackdata; - - ExceptionsTraps _etraps; - CallInfo *ci; - SQUserPointer _foreignptr; - //VMs sharing the same state - SQSharedState *_sharedstate; - SQInteger _nnativecalls; - SQInteger _nmetamethodscall; - SQRELEASEHOOK _releasehook; - //suspend infos - SQBool _suspended; - SQBool _suspended_root; - SQInteger _suspended_target; - SQInteger _suspended_traps; -}; - -struct AutoDec{ - AutoDec(SQInteger *n) { _n = n; } - ~AutoDec() { (*_n)--; } - SQInteger *_n; -}; - -inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->GetAt(idx+v->_stackbase-1)):(v->GetUp(idx)));} - -#define _ss(_vm_) (_vm_)->_sharedstate - -#ifndef NO_GARBAGE_COLLECTOR -#define _opt_ss(_vm_) (_vm_)->_sharedstate -#else -#define _opt_ss(_vm_) NULL -#endif - -#define PUSH_CALLINFO(v,nci){ \ - SQInteger css = v->_callsstacksize; \ - if(css == v->_alloccallsstacksize) { \ - v->GrowCallStack(); \ - } \ - v->ci = &v->_callsstack[css]; \ - *(v->ci) = nci; \ - v->_callsstacksize++; \ -} - -#define POP_CALLINFO(v){ \ - SQInteger css = --v->_callsstacksize; \ - v->ci->_closure.Null(); \ - v->ci = css?&v->_callsstack[css-1]:NULL; \ -} -#endif //_SQVM_H_ diff --git a/packages.config b/packages.config deleted file mode 100644 index 56146d73..00000000 --- a/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/packages/zlib-msvc-x64.1.2.11.8900/.signature.p7s b/packages/zlib-msvc-x64.1.2.11.8900/.signature.p7s deleted file mode 100644 index 4943e933b2fd3396da903902337ca044be4ad9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9465 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 diff --git a/packages/zlib-msvc-x64.1.2.11.8900/FAQ b/packages/zlib-msvc-x64.1.2.11.8900/FAQ deleted file mode 100644 index 99b7cf92..00000000 --- a/packages/zlib-msvc-x64.1.2.11.8900/FAQ +++ /dev/null @@ -1,368 +0,0 @@ - - Frequently Asked Questions about zlib - - -If your question is not there, please check the zlib home page -http://zlib.net/ which may have more recent information. -The lastest zlib FAQ is at http://zlib.net/zlib_faq.html - - - 1. Is zlib Y2K-compliant? - - Yes. zlib doesn't handle dates. - - 2. Where can I get a Windows DLL version? - - The zlib sources can be compiled without change to produce a DLL. See the - file win32/DLL_FAQ.txt in the zlib distribution. Pointers to the - precompiled DLL are found in the zlib web site at http://zlib.net/ . - - 3. Where can I get a Visual Basic interface to zlib? - - See - * http://marknelson.us/1997/01/01/zlib-engine/ - * win32/DLL_FAQ.txt in the zlib distribution - - 4. compress() returns Z_BUF_ERROR. - - Make sure that before the call of compress(), the length of the compressed - buffer is equal to the available size of the compressed buffer and not - zero. For Visual Basic, check that this parameter is passed by reference - ("as any"), not by value ("as long"). - - 5. deflate() or inflate() returns Z_BUF_ERROR. - - Before making the call, make sure that avail_in and avail_out are not zero. - When setting the parameter flush equal to Z_FINISH, also make sure that - avail_out is big enough to allow processing all pending input. Note that a - Z_BUF_ERROR is not fatal--another call to deflate() or inflate() can be - made with more input or output space. A Z_BUF_ERROR may in fact be - unavoidable depending on how the functions are used, since it is not - possible to tell whether or not there is more output pending when - strm.avail_out returns with zero. See http://zlib.net/zlib_how.html for a - heavily annotated example. - - 6. Where's the zlib documentation (man pages, etc.)? - - It's in zlib.h . Examples of zlib usage are in the files test/example.c - and test/minigzip.c, with more in examples/ . - - 7. Why don't you use GNU autoconf or libtool or ...? - - Because we would like to keep zlib as a very small and simple package. - zlib is rather portable and doesn't need much configuration. - - 8. I found a bug in zlib. - - Most of the time, such problems are due to an incorrect usage of zlib. - Please try to reproduce the problem with a small program and send the - corresponding source to us at zlib@gzip.org . Do not send multi-megabyte - data files without prior agreement. - - 9. Why do I get "undefined reference to gzputc"? - - If "make test" produces something like - - example.o(.text+0x154): undefined reference to `gzputc' - - check that you don't have old files libz.* in /usr/lib, /usr/local/lib or - /usr/X11R6/lib. Remove any old versions, then do "make install". - -10. I need a Delphi interface to zlib. - - See the contrib/delphi directory in the zlib distribution. - -11. Can zlib handle .zip archives? - - Not by itself, no. See the directory contrib/minizip in the zlib - distribution. - -12. Can zlib handle .Z files? - - No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt - the code of uncompress on your own. - -13. How can I make a Unix shared library? - - By default a shared (and a static) library is built for Unix. So: - - make distclean - ./configure - make - -14. How do I install a shared zlib library on Unix? - - After the above, then: - - make install - - However, many flavors of Unix come with a shared zlib already installed. - Before going to the trouble of compiling a shared version of zlib and - trying to install it, you may want to check if it's already there! If you - can #include , it's there. The -lz option will probably link to - it. You can check the version at the top of zlib.h or with the - ZLIB_VERSION symbol defined in zlib.h . - -15. I have a question about OttoPDF. - - We are not the authors of OttoPDF. The real author is on the OttoPDF web - site: Joel Hainley, jhainley@myndkryme.com. - -16. Can zlib decode Flate data in an Adobe PDF file? - - Yes. See http://www.pdflib.com/ . To modify PDF forms, see - http://sourceforge.net/projects/acroformtool/ . - -17. Why am I getting this "register_frame_info not found" error on Solaris? - - After installing zlib 1.1.4 on Solaris 2.6, running applications using zlib - generates an error such as: - - ld.so.1: rpm: fatal: relocation error: file /usr/local/lib/libz.so: - symbol __register_frame_info: referenced symbol not found - - The symbol __register_frame_info is not part of zlib, it is generated by - the C compiler (cc or gcc). You must recompile applications using zlib - which have this problem. This problem is specific to Solaris. See - http://www.sunfreeware.com for Solaris versions of zlib and applications - using zlib. - -18. Why does gzip give an error on a file I make with compress/deflate? - - The compress and deflate functions produce data in the zlib format, which - is different and incompatible with the gzip format. The gz* functions in - zlib on the other hand use the gzip format. Both the zlib and gzip formats - use the same compressed data format internally, but have different headers - and trailers around the compressed data. - -19. Ok, so why are there two different formats? - - The gzip format was designed to retain the directory information about a - single file, such as the name and last modification date. The zlib format - on the other hand was designed for in-memory and communication channel - applications, and has a much more compact header and trailer and uses a - faster integrity check than gzip. - -20. Well that's nice, but how do I make a gzip file in memory? - - You can request that deflate write the gzip format instead of the zlib - format using deflateInit2(). You can also request that inflate decode the - gzip format using inflateInit2(). Read zlib.h for more details. - -21. Is zlib thread-safe? - - Yes. However any library routines that zlib uses and any application- - provided memory allocation routines must also be thread-safe. zlib's gz* - functions use stdio library routines, and most of zlib's functions use the - library memory allocation routines by default. zlib's *Init* functions - allow for the application to provide custom memory allocation routines. - - Of course, you should only operate on any given zlib or gzip stream from a - single thread at a time. - -22. Can I use zlib in my commercial application? - - Yes. Please read the license in zlib.h. - -23. Is zlib under the GNU license? - - No. Please read the license in zlib.h. - -24. The license says that altered source versions must be "plainly marked". So - what exactly do I need to do to meet that requirement? - - You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h. In - particular, the final version number needs to be changed to "f", and an - identification string should be appended to ZLIB_VERSION. Version numbers - x.x.x.f are reserved for modifications to zlib by others than the zlib - maintainers. For example, if the version of the base zlib you are altering - is "1.2.3.4", then in zlib.h you should change ZLIB_VERNUM to 0x123f, and - ZLIB_VERSION to something like "1.2.3.f-zachary-mods-v3". You can also - update the version strings in deflate.c and inftrees.c. - - For altered source distributions, you should also note the origin and - nature of the changes in zlib.h, as well as in ChangeLog and README, along - with the dates of the alterations. The origin should include at least your - name (or your company's name), and an email address to contact for help or - issues with the library. - - Note that distributing a compiled zlib library along with zlib.h and - zconf.h is also a source distribution, and so you should change - ZLIB_VERSION and ZLIB_VERNUM and note the origin and nature of the changes - in zlib.h as you would for a full source distribution. - -25. Will zlib work on a big-endian or little-endian architecture, and can I - exchange compressed data between them? - - Yes and yes. - -26. Will zlib work on a 64-bit machine? - - Yes. It has been tested on 64-bit machines, and has no dependence on any - data types being limited to 32-bits in length. If you have any - difficulties, please provide a complete problem report to zlib@gzip.org - -27. Will zlib decompress data from the PKWare Data Compression Library? - - No. The PKWare DCL uses a completely different compressed data format than - does PKZIP and zlib. However, you can look in zlib's contrib/blast - directory for a possible solution to your problem. - -28. Can I access data randomly in a compressed stream? - - No, not without some preparation. If when compressing you periodically use - Z_FULL_FLUSH, carefully write all the pending data at those points, and - keep an index of those locations, then you can start decompression at those - points. You have to be careful to not use Z_FULL_FLUSH too often, since it - can significantly degrade compression. Alternatively, you can scan a - deflate stream once to generate an index, and then use that index for - random access. See examples/zran.c . - -29. Does zlib work on MVS, OS/390, CICS, etc.? - - It has in the past, but we have not heard of any recent evidence. There - were working ports of zlib 1.1.4 to MVS, but those links no longer work. - If you know of recent, successful applications of zlib on these operating - systems, please let us know. Thanks. - -30. Is there some simpler, easier to read version of inflate I can look at to - understand the deflate format? - - First off, you should read RFC 1951. Second, yes. Look in zlib's - contrib/puff directory. - -31. Does zlib infringe on any patents? - - As far as we know, no. In fact, that was originally the whole point behind - zlib. Look here for some more information: - - http://www.gzip.org/#faq11 - -32. Can zlib work with greater than 4 GB of data? - - Yes. inflate() and deflate() will process any amount of data correctly. - Each call of inflate() or deflate() is limited to input and output chunks - of the maximum value that can be stored in the compiler's "unsigned int" - type, but there is no limit to the number of chunks. Note however that the - strm.total_in and strm_total_out counters may be limited to 4 GB. These - counters are provided as a convenience and are not used internally by - inflate() or deflate(). The application can easily set up its own counters - updated after each call of inflate() or deflate() to count beyond 4 GB. - compress() and uncompress() may be limited to 4 GB, since they operate in a - single call. gzseek() and gztell() may be limited to 4 GB depending on how - zlib is compiled. See the zlibCompileFlags() function in zlib.h. - - The word "may" appears several times above since there is a 4 GB limit only - if the compiler's "long" type is 32 bits. If the compiler's "long" type is - 64 bits, then the limit is 16 exabytes. - -33. Does zlib have any security vulnerabilities? - - The only one that we are aware of is potentially in gzprintf(). If zlib is - compiled to use sprintf() or vsprintf(), then there is no protection - against a buffer overflow of an 8K string space (or other value as set by - gzbuffer()), other than the caller of gzprintf() assuring that the output - will not exceed 8K. On the other hand, if zlib is compiled to use - snprintf() or vsnprintf(), which should normally be the case, then there is - no vulnerability. The ./configure script will display warnings if an - insecure variation of sprintf() will be used by gzprintf(). Also the - zlibCompileFlags() function will return information on what variant of - sprintf() is used by gzprintf(). - - If you don't have snprintf() or vsnprintf() and would like one, you can - find a portable implementation here: - - http://www.ijs.si/software/snprintf/ - - Note that you should be using the most recent version of zlib. Versions - 1.1.3 and before were subject to a double-free vulnerability, and versions - 1.2.1 and 1.2.2 were subject to an access exception when decompressing - invalid compressed data. - -34. Is there a Java version of zlib? - - Probably what you want is to use zlib in Java. zlib is already included - as part of the Java SDK in the java.util.zip package. If you really want - a version of zlib written in the Java language, look on the zlib home - page for links: http://zlib.net/ . - -35. I get this or that compiler or source-code scanner warning when I crank it - up to maximally-pedantic. Can't you guys write proper code? - - Many years ago, we gave up attempting to avoid warnings on every compiler - in the universe. It just got to be a waste of time, and some compilers - were downright silly as well as contradicted each other. So now, we simply - make sure that the code always works. - -36. Valgrind (or some similar memory access checker) says that deflate is - performing a conditional jump that depends on an uninitialized value. - Isn't that a bug? - - No. That is intentional for performance reasons, and the output of deflate - is not affected. This only started showing up recently since zlib 1.2.x - uses malloc() by default for allocations, whereas earlier versions used - calloc(), which zeros out the allocated memory. Even though the code was - correct, versions 1.2.4 and later was changed to not stimulate these - checkers. - -37. Will zlib read the (insert any ancient or arcane format here) compressed - data format? - - Probably not. Look in the comp.compression FAQ for pointers to various - formats and associated software. - -38. How can I encrypt/decrypt zip files with zlib? - - zlib doesn't support encryption. The original PKZIP encryption is very - weak and can be broken with freely available programs. To get strong - encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib - compression. For PKZIP compatible "encryption", look at - http://www.info-zip.org/ - -39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings? - - "gzip" is the gzip format, and "deflate" is the zlib format. They should - probably have called the second one "zlib" instead to avoid confusion with - the raw deflate compressed data format. While the HTTP 1.1 RFC 2616 - correctly points to the zlib specification in RFC 1950 for the "deflate" - transfer encoding, there have been reports of servers and browsers that - incorrectly produce or expect raw deflate data per the deflate - specification in RFC 1951, most notably Microsoft. So even though the - "deflate" transfer encoding using the zlib format would be the more - efficient approach (and in fact exactly what the zlib format was designed - for), using the "gzip" transfer encoding is probably more reliable due to - an unfortunate choice of name on the part of the HTTP 1.1 authors. - - Bottom line: use the gzip format for HTTP 1.1 encoding. - -40. Does zlib support the new "Deflate64" format introduced by PKWare? - - No. PKWare has apparently decided to keep that format proprietary, since - they have not documented it as they have previous compression formats. In - any case, the compression improvements are so modest compared to other more - modern approaches, that it's not worth the effort to implement. - -41. I'm having a problem with the zip functions in zlib, can you help? - - There are no zip functions in zlib. You are probably using minizip by - Giles Vollant, which is found in the contrib directory of zlib. It is not - part of zlib. In fact none of the stuff in contrib is part of zlib. The - files in there are not supported by the zlib authors. You need to contact - the authors of the respective contribution for help. - -42. The match.asm code in contrib is under the GNU General Public License. - Since it's part of zlib, doesn't that mean that all of zlib falls under the - GNU GPL? - - No. The files in contrib are not part of zlib. They were contributed by - other authors and are provided as a convenience to the user within the zlib - distribution. Each item in contrib has its own license. - -43. Is zlib subject to export controls? What is its ECCN? - - zlib is not subject to export controls, and so is classified as EAR99. - -44. Can you please sign these lengthy legal documents and fax them back to us - so that we can use your software in our product? - - No. Go away. Shoo. diff --git a/packages/zlib-msvc-x64.1.2.11.8900/README b/packages/zlib-msvc-x64.1.2.11.8900/README deleted file mode 100644 index 51106de4..00000000 --- a/packages/zlib-msvc-x64.1.2.11.8900/README +++ /dev/null @@ -1,115 +0,0 @@ -ZLIB DATA COMPRESSION LIBRARY - -zlib 1.2.11 is a general purpose data compression library. All the code is -thread safe. The data format used by the zlib library is described by RFCs -(Request for Comments) 1950 to 1952 in the files -http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and -rfc1952 (gzip format). - -All functions of the compression library are documented in the file zlib.h -(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example -of the library is given in the file test/example.c which also tests that -the library is working correctly. Another example is given in the file -test/minigzip.c. The compression library itself is composed of all source -files in the root directory. - -To compile all files and run the test program, follow the instructions given at -the top of Makefile.in. In short "./configure; make test", and if that goes -well, "make install" should work for most flavors of Unix. For Windows, use -one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use -make_vms.com. - -Questions about zlib should be sent to , or to Gilles Vollant - for the Windows DLL version. The zlib home page is -http://zlib.net/ . Before reporting a problem, please check this site to -verify that you have the latest version of zlib; otherwise get the latest -version and check whether the problem still exists or not. - -PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. - -Mark Nelson wrote an article about zlib for the Jan. 1997 -issue of Dr. Dobb's Journal; a copy of the article is available at -http://marknelson.us/1997/01/01/zlib-engine/ . - -The changes made in version 1.2.11 are documented in the file ChangeLog. - -Unsupported third party contributions are provided in directory contrib/ . - -zlib is available in Java using the java.util.zip package, documented at -http://java.sun.com/developer/technicalArticles/Programming/compression/ . - -A Perl interface to zlib written by Paul Marquess is available -at CPAN (Comprehensive Perl Archive Network) sites, including -http://search.cpan.org/~pmqs/IO-Compress-Zlib/ . - -A Python interface to zlib written by A.M. Kuchling is -available in Python 1.5 and later versions, see -http://docs.python.org/library/zlib.html . - -zlib is built into tcl: http://wiki.tcl.tk/4610 . - -An experimental package to read and write files in .zip format, written on top -of zlib by Gilles Vollant , is available in the -contrib/minizip directory of zlib. - - -Notes for some targets: - -- For Windows DLL versions, please see win32/DLL_FAQ.txt - -- For 64-bit Irix, deflate.c must be compiled without any optimization. With - -O, one libpng test fails. The test works in 32 bit mode (with the -n32 - compiler flag). The compiler bug has been reported to SGI. - -- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works - when compiled with cc. - -- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is - necessary to get gzprintf working correctly. This is done by configure. - -- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with - other compilers. Use "make test" to check your compiler. - -- gzdopen is not supported on RISCOS or BEOS. - -- For PalmOs, see http://palmzlib.sourceforge.net/ - - -Acknowledgments: - - The deflate format used by zlib was defined by Phil Katz. The deflate and - zlib specifications were written by L. Peter Deutsch. Thanks to all the - people who reported problems and suggested various improvements in zlib; they - are too numerous to cite here. - -Copyright notice: - - (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -If you use the zlib library in a product, we would appreciate *not* receiving -lengthy legal documents to sign. The sources are provided for free but without -warranty of any kind. The library has been entirely written by Jean-loup -Gailly and Mark Adler; it does not include third-party code. - -If you redistribute modified sources, we would appreciate that you include in -the file ChangeLog history information documenting your changes. Please read -the FAQ for more information on the distribution of modified source versions. diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_debug/zlibd.dll b/packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_debug/zlibd.dll deleted file mode 100644 index d41753de0ff62aad1b66278f83dc895939ccea55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132608 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 diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_release/zlib.dll b/packages/zlib-msvc-x64.1.2.11.8900/build/native/bin_release/zlib.dll deleted file mode 100644 index eadc847b56035c0f740a4289673a8fd415530b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86016 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 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -#ifdef Z_SOLO - typedef unsigned long z_size_t; -#else -# define z_longlong long long -# if defined(NO_SIZE_T) - typedef unsigned NO_SIZE_T z_size_t; -# elif defined(STDC) -# include - typedef size_t z_size_t; -# else - typedef unsigned long z_size_t; -# endif -# undef z_longlong -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus about 7 kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/include/zlib.h b/packages/zlib-msvc-x64.1.2.11.8900/build/native/include/zlib.h deleted file mode 100644 index f09cdaf1..00000000 --- a/packages/zlib-msvc-x64.1.2.11.8900/build/native/include/zlib.h +++ /dev/null @@ -1,1912 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip and raw deflate streams in - memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in the case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte will go here */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text - for deflate, or the decoding state for inflate */ - uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. In that case, zlib is thread-safe. When zalloc and zfree are - Z_NULL on entry to the initialization function, they are set to internal - routines that use the standard library functions malloc() and free(). - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use by the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field for deflate() */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary. Some output may be provided even if - flush is zero. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput - in that case. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed - codes block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this - function must be called again with Z_FINISH and more output space (updated - avail_out) but no more input data, until it returns with Z_STREAM_END or an - error. After deflate has returned Z_STREAM_END, the only possible operations - on the stream are deflateReset or deflateEnd. - - Z_FINISH can be used in the first deflate call after deflateInit if all the - compression is to be done in a single step. In order to complete in one - call, avail_out must be at least the value returned by deflateBound (see - below). Then deflate is guaranteed to return Z_STREAM_END. If not enough - output space is provided, deflate will not return Z_STREAM_END, and it must - be called again as described above. - - deflate() sets strm->adler to the Adler-32 checksum of all input read - so far (that is, total_in bytes). If a gzip stream is being generated, then - strm->adler will be the CRC-32 checksum of the input read so far. (See - deflateInit2 below.) - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is - considered binary. This field is only for information purposes and does not - affect the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL or the state was inadvertently written over - by the application), or Z_BUF_ERROR if no progress is possible (for example - avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and - deflate() can be called again with more input and more output space to - continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. In the current version of inflate, the provided input is not - read or consumed. The allocation of a sliding window will be deferred to - the first call of inflate (if the decompression does not complete on the - first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression. - Actual decompression will be done by inflate(). So next_in, and avail_in, - next_out, and avail_out are unused and unchanged. The current - implementation of inflateInit() does not process any header information -- - that is deferred until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), then next_in and avail_in are updated - accordingly, and processing will resume at this point for the next call of - inflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. If the - caller of inflate() does not provide both available input and available - output space, it is possible that there will be no progress made. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - To assist in this, on return inflate() always sets strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed Adler-32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained unless inflateGetHeader() is used. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - produced so far. The CRC-32 is checked against the gzip trailer, as is the - uncompressed length, modulo 2^32. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value, in which case strm->msg points to a string with a more specific - error), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL, or the state was inadvertently written over - by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR - if no progress was possible or if there was not enough room in the output - buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is to be attempted. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state - was inconsistent. -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - For the current implementation of deflate(), a windowBits value of 8 (a - window size of 256 bytes) is not supported. As a result, a request for 8 - will result in 9 (a 512-byte window). In that case, providing 8 to - inflateInit2() will result in an error when the zlib header with 9 is - checked against the initialization of inflate(). The remedy is to not use 8 - with deflateInit2() with this initialization, or at least in that case use 9 - with inflateInit2(). - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute a check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to the appropriate value, - if the operating system was determined at compile time. If a gzip stream is - being written, strm->adler is a CRC-32 instead of an Adler-32. - - For raw deflate or gzip encoding, a request for a 256-byte window is - rejected as invalid, since only the zlib header provides a means of - transmitting the window size to the decompressor. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the Adler-32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The Adler-32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - Adler-32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by deflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If deflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - deflateGetDictionary() may return a length less than the window size, even - when more than the window size in input has been provided. It may return up - to 258 bytes less in that case, due to how zlib's implementation of deflate - manages the sliding window and lookahead for matches, where matches can be - up to 258 bytes long. If the application needs the last window-size bytes of - input, then that would need to be saved by the application outside of zlib. - - deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, but - does not free and reallocate the internal compression state. The stream - will leave the compression level and any other attributes that may have been - set unchanged. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2(). This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). - - If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does - not have enough output space to complete, then the parameter change will not - take effect. In this case, deflateParams() can be called again with the - same parameters and more output space to try again. - - In order to assure a change in the parameters on the first try, the - deflate stream should be flushed using deflate() with Z_BLOCK or other flush - request until strm.avail_out is not zero, before calling deflateParams(). - Then no more input data should be provided before the deflateParams() call. - If this is done, the old level and strategy will be applied to the data - compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). - - deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream - state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if - there was not enough output space to complete the compression of the - available input data before a change in the strategy or approach. Note that - in the case of a Z_BUF_ERROR, the parameters are not changed. A return - value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be - retried with more output space. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an Adler-32 or a CRC-32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the Adler-32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect Adler-32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. If the window size is changed, then the - memory allocated for the window is freed, and the window will be reallocated - by inflate() if needed. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above, or -65536 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the default - behavior of inflate(), which expects a zlib header and trailer around the - deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero -- buf is ignored in that - case -- and inflateBack() will return a buffer error. inflateBack() will - call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. - out() should return zero on success, or non-zero on failure. If out() - returns non-zero, inflateBack() will return with an error. Neither in() nor - out() are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: ZLIB_DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. compress() is equivalent to compress2() with a level - parameter of Z_DEFAULT_COMPRESSION. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed data. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); -/* - Same as uncompress, except that sourceLen is a pointer, where the - length of the source is *sourceLen. On return, *sourceLen is the number of - source bytes consumed. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. - - gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not - opened for writing, Z_ERRNO if there is an error writing the flushed data, - or Z_MEM_ERROR if there is a memory allocation error. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. If len is too large to fit in an int, - then nothing is read, -1 is returned, and the error state is set to - Z_STREAM_ERROR. -*/ - -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); -/* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. - - gzfread() returns the number of full items read of size size, or zero if - the end of the file was reached and a full item could not be read, or if - there was an error. gzerror() must be consulted if zero is returned in - order to determine if there was an error. If the multiplication of size and - nitems overflows, i.e. the product does not fit in a z_size_t, then nothing - is read, zero is returned, and the error state is set to Z_STREAM_ERROR. - - In the event that the end of file is reached and only a partial item is - available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf - and the end-of-file flag is set. The length of the partial item read is not - provided, but could be inferred from the result of gztell(). This behavior - is the same as the behavior of fread() implementations in common libraries, - but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); -/* - gzfwrite() writes nitems items of size size from buf to file, duplicating - the interface of stdio's fwrite(), with size_t request and return types. If - the library defines size_t, then z_size_t is identical to size_t. If not, - then z_size_t is an unsigned integer type that can contain a pointer. - - gzfwrite() returns the number of full items written of size size, or zero - if there was an error. If the multiplication of size and nitems overflows, - i.e. the product does not fit in a z_size_t, then nothing is written, zero - is returned, and the error state is set to Z_STREAM_ERROR. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or a negative zlib error code in case - of error. The number of uncompressed bytes written is limited to 8191, or - one less than the buffer size given to gzbuffer(). The caller should assure - that this limit is not exceeded. If it is exceeded, then gzprintf() will - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. - This can be determined using zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatenated gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as adler32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as crc32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#ifdef Z_PREFIX_SET -# define z_deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define z_inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#else -# define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#endif - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibd.lib b/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibd.lib deleted file mode 100644 index f0cf7b5d984c300395e3683a5e797e02a47fc552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16334 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 F=6~dyRV)Ai diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibstaticd.lib b/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_debug/zlibstaticd.lib deleted file mode 100644 index 55b2c26abedc3935648168c8237d0cf24df03982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179836 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 Vd*8YMSPfE{LG_?YbEsbazW|AD?|lFO diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlib.lib b/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlib.lib deleted file mode 100644 index 16b46b689bd2683473270d0b32b69202eed9d9fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16228 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 B8S4N5 diff --git a/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlibstatic.lib b/packages/zlib-msvc-x64.1.2.11.8900/build/native/lib_release/zlibstatic.lib deleted file mode 100644 index 42ad756725f24e66fa7e86ebfe1488d223b82b19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179882 zcmeFa34B!5**|_KGa(ZKOjtw<H2*QAh{~7&LQ}8D@sekSL&3#SlUQDUifuB8z~; zA;NeW#cI{Jwbj)+#ZIYY{}9-}gD^+_`gaZXj-b|Nq~w zXFkuI<$j;%?CU+}+~Jc;Ys(f~+;famud>HyO~@WQA!pJ=y?d6h=1k1W;l?>VB}w|3 zBn`Xc`_ZUhND|RSb52ak6OxojcbqLrL=U{%eR|a=Nk1}KrmdI0Gc~S}EZ>%%TrF9C zXzExlSq}I4UX--*38@qP;Zi9{rN8W#k~GT8D=Bc5WMvghE1s4w`wCon8M5q>g!2Uj zQ>RUxl0U83m7OZ+(DuR24fx!hBVy@7mhfom=zP+n^e3KkYlD-KR|YoXCRTkavVw7dk;7uU^~ zmY0<-T2x&Iy`r|fTw1=Ua&7^livUbnR64(oIb6o$EY-7=s4cInOE8X=O6FD8g-Xh* z=aow(i^{9!hZYD+sJ5hZQRVz9sRX8qMfG(HO6FFE>JqK+dLgq{R#k?Wp)OQiTRyL3 zZv06I0bHh*hJ3FpkYDJZ<}WNp##{^WEXV6YrB!7}G75w)QS*bYDO08diu3aeH2k8< zP$&_%%{41ZclNsx5%dnXX!JZN8602(3Kwy7Ej5~PvAk8y@ytiEQtqq1*6HGf>gx^qy;G2-E|w3AORJWt(7f@e zRA>RzjH+9Akoa!y2 z%!$L}1>cMz;71|wd*wuic)&U{Om*c4P`!$RMXvg)g;mu{s`AFGa8!x;W_cfQ`F(|6 zx9ss~Jk-ik+d{1?+T_rJYSDy>9FT-wfI40`v#vaz{spLH>cfO=@s@|&@vcC94o4qL zW7UB&Zfr@SEp7>x*2c5ExVCa}xr(~99FoiaQuoS*goZi$iB28mG_Y_ISLq&!6u?V9RT((140ADhJ+|v(^tD ziVms;)=KP_Oh|Zb?xMb=Y;&(ejthFL&i-qwtoX1t?uqQWu(6 zSzS_73ok25syWW(n&g@!od_Y#UtYGTx~{xr2~4cxA$>_L+I<+fG&0nO%D7es4S8Bq zT3fo9%-6;-oJp-sUYD<+FhA(`O>wEkl?^$%=+aU93a0q|?jrQX^;P9dYfx7SPoo2t z4y>b39PQ*6yLFN+UjbIM?&bZYS00rX<2|s zA{e!XW)(p#E(-WPg;ei5<*%rFy8KlWxfTgFuaep!7%++`odIZIp8O1PEMRXnV( zVvj|tj&&Cn6#D(s+!**3Owk8xY#+q^^zYvqK4 zzLnD)MO!NzW}ptJ!ZActheqh^a>h#RAFhk%Qq!liA#u2UxrB040&@u;MyYjBQVkFz zdJ&#lrSle**Fw0^IL%>b%$?VP-l^l72BtlIC0_Nlz$}bT($m z?>-<&zE>q_{WOcTrqLp;e$pZ>@32UH4qK!rRwhZ8{vk=)|Cc11R7)1ACw}UG4=Dvd z3w|k54=Gi$fyjky^vuR|a!r-&%xq^S;^03!-0hOp@N-D~*GHmXZ}ICTo%q+Ag{`NQ z#{5VXHtr*ZKy{%QaDP=7JHt{K?IP?vW;`xk{U;-S$>2=FPmK@hqUq>j&iGwhloL-i zf1n0O?Mu2nas4)vgdcO{`QuHXzwMy*+fIePZMXexCz;>AoB#jju>9XPW&Bp-f3?DV z$Ep0kcY2!t?N<)e`2DX9{l3S1;@>gRW!0R8`Ic~C_5e`C(} zZ&^nCE(1b!NEshn8b_IIaH=1&>TL-FSTPh+mkpKyEN!3NS3eP8t@%eQZuQ9&Qn~|Pl3@=kp_AYgNw)&EFPEUI0f(7ePW!Y#H z_Ny)}$Ld2}`Bls7LzRn0SI_+^dk13z5b-z>1dDOybteKKy(pxD}yc8v~| zFAZfZu40b(BY8W3c}w6ZJ)P;rbBs6&-+RD(ei9t{^9?X|lqphO$?Jh<{RD;q@n`0* z9qxmGa~kCt%2f(*qYUy~=~*t6^)YVG6nSP~23}BIcxG_=Wd)bcI8*Of6mU#8e4&XJd%>!f!Xiz}C78P!?9-=o(`v@gM_ZA*~&I}#^WTP2C!066)w zvg*v%n5nV}_r%=_PQF<|;!D+W01Z+34h5&!pg{5c!4>791?zVbl7LLq2J~U3LHMUM zwn$F=Q(du0Bk_MKGiBj_Ff&o>bUHJ+@b6?MAO5+N&D1_+Hv6JfNG0E0KE>9&l?vhr zkWG>ukL^`<`C@0$(^Sw{=Io2RQCZApZkx-YZS_T2LE1{yYyxx79zAw+cDBUc-i)rC zcYm495{pS#8g*6Rz4qv=tPNP34IIg_=;kN^CqS>{bgkpL&(pAW}fA7D_f! z{%a1sC1GKcD=M+12$Liwa?um3g_4}qzpAg@sd1gp9g#XlE{eLK8RCqzI$; zi;__DtEcK8Rtw8Dm=1f+zEI=32`;1vqvxW6r1|yeblW=`*JH#2 zMHoF7WxUlwMU2#COA7{ST>H5rD;#<*Dn(idhuK#?uW_LOFhv+W7p1w?LQN~Fv4ifv zQ{&1INlO?#S1-6&EtJM2QB(0vH*g{hxDpz1NZVZ+l|ZY7@{!b-FVB9UGlr_O)k5h{+-=3D$=n2sbSXJO z^_8561*xlrOFDBAV`=uJcN|kKFyzd+mg`*9y-4)D50}GtC6NPOSCC(c^`akKtrjX* zq^`bZYN0AulGX~zgh`SfgiT#$>+ZUHHc>NG?bz>*ji8g78paxtg-87c}Z5HLb zwS6qVdt2YA!&LW$ky&(heA8G-N#)|261Jg?8yE9UW+Gl)ZRzVdCP!>AMQ2ayWMklQ z6UJdAOlnTgc{iTM#=thzN40rNY{IFCPy_xIwXccFWDL9k&okBbSYX*0IH4+%b0Lb= zQ^55QHHlcv#y-=58x2f@D64VYQvH~kdePsh<(WKyqOs5D8a<90k7nRr6j+K9!x`jJ zBiR8=%!o6QcRFhNxm4SsP9)C@%#}u*iM(aNG#YV+@KG~#A25G1;!Nc21LiFw&P3jE zVA80MfQrY%MBcf;j5p#8@+d#13k(y8zpnCQA#h7hB9HRp=fM2Vh%*UaD==+FoFRN9 z?-O8>ML%<*_>KT(j1gy$NBI#1X0{P$629wzS!=|Z$a?^ozZh{Q^4fs;yAfwHH~3m$ z5LBkV$K2os2ylPrxk2Lc%lDZbV4xehDr3;h%j6mIO!+cj!w1y-D1$vY@5st00p(Ml z(k?$k-C5(Cp=5XD%nrM(yyc57%5VlE?u;y7l#Ng1&9f*vk$D*tebGQhRsg0s^tXWi zY7XI{)Y#-`Y=Q2JJe|=5T~@XQVBA5*@SYf?`FxQ@8Lq~rdWW3*cV(;W@V1g`=4Jm3Z=q5AV+$1^dUikP)ay< zTz0q-4Fr|3%ei0ICnG=|L&LG8`sAqhct<~g>eG}!hA-+(vhJ==Qd)fwOdfm8nk^y8FOx5iCwb0?vXUKC z4hEDj1Ij0xMVi|pqdHQQ*8P&7r>q^rt2G3-C})aOL?xW5>NkVyDyUBXxMg#SoQc;$Ix(w89dDd}B^Cr|n^n0V4R!Nilk zS3K!015%{{;|5CuEd8Y32h#SYHl@tzQ4Ao|HC$u=Y#fWMqLCjp<#zn{XQtuyB*`A4 z##!T_ryNI}BR8eP#5qXr3XrPIWS@qIR*A{}{4^F4m7^=!oP$vBsDh!J$;OT#l8yhw zkm%#4g`UeLnK@Jhg))5h9RyePD^RrVYN`9q6kg*ly`KVPSO*rg`z{IZ;E>&p47OgA1B2y zI=`rRYks-?>28f{5#!+tCRUwaG>Fvv8sz=&X&TpR!No8-zo^;P{5t&J8)s`=w+k+Y z(fLKaD_`KEcs+cd_iK&oVZp^PI=@)z#nbSa`47IUaXl@#cnT-x7hf>pl|qu2M{qHWE?!jnw6d|e;>(9;R_!HyR7p_`<-S~&E_i9|j1Q)~T{NjrtYP?#Oz22^IjT2l9ql*{o64+uI z<(K6D?Lv*qFSvNOkyz$w-l3I^Lgnto8kf2d#4tL)Xqc*%jnTK=T&!``3BMRd7cZ>t zCHQruXHkyEwN7v`jLxr9b$%V6b@$^M*RKQ@!|42?y069S$|pKr*SMY#TnwXIhGN}y z7t2tsf{QRo(z~#U_Kr4fckv=xAo!7@jQT3tJq|6t4JCuko^&qQ)L&VZk)?CvD7_oU zWt-siZX7q(1gCf7xEvFl-mOz4#!8)H0jJKO{H0Z_JhqB83k&FK8)mkO^#L{5iOOUZYdxM1 zp(Z*(xlG>VZU*KdP>ERQrgqKj4dY?B-wMq2RNbJcr#4&dBL3Texl7=v3Yg(4(8>Q6 z82b`&~X(=$b8*wJ#djgnejX0C|{tcK9j5rf{Jui@?fgn;{#n*{v$hGxT1UB#F3_Y7c08*wJ` z0>I2N;tcsg@x4}H$X`-j#dj5OH=RV@dEkE-n3s(>lkj~C%r{1yA$%0yp%W$PJP@gP zx|qnD3e06joQb@Uz;KCO$9D~I8%`pR+Q0wqro1h{Z9j>;L6G+jFkcyQCh;9S32hsQ zR6Jb_@ul+T24;>CXCiMEFgF=-26>bp4+FE=h%=G*3NUXQaVGL4jMLIVq~h@~kvAHc z3k^674gdW+nzXH)-|L-)CCO?_?vY}*r>6GonU>ZIsy9?0Co4J5G}PgHN3NLxv3fp6c}Psd$C&`k%V;M53uu zB2iP3NHnEMB$`4c609dws$Z%fs%%xJDvPEZM6|R>L|rHm%_fOxwn#)vbVSre5Yg0( z=!a4iP6{K1fmAPqVm&ATdI5AE=uyxj&45+ z(3zm$g64wW2K58|40I`IKWHrI2~aKQQxF|iz6mrHvMYT?TpubOC51=vvSbP#@6EplP6&K%+tb z4XOei2Au)=HRx*4|9~zAJqua|`UXUsG8;fLs2MaI^czqq=pd*s=vL4rpnafh&>un9 zfIb1yvFr%Q584Sj7xX(&C8!;A8tA`3KLNcCngn_hv)!Kre(|2z@v7 z-Ow|kXF~ry^xs2Y2z?>+4(J`whd>_!{g=>x3H?gwS3-Xi`kT;mq31$>3i?yfuY-Oa z^yAQvLr;O80(~v?wa~rLz0g~sw?aP$`Z>@ag8mTn`OxP>e-HY5&`*VaD)c*{-wFM4 z=$Au(75b~tCqSP7eG~Le(3e180{siF# z(5sI2mN~J*F%p%k3pxFzy)%G z=77>c#h@%u4T!D`@PS5x7JvqUW`QPxmV#^`Hz)%%4>SNY12hg40@2&!FsJ~u6*K~L zAE*rU4-mDs>8undLpHy3U;y-9prN27P(M&l&|pvx&_GZh&>0{Ls4plLbQ*|$r+|8c zP6yE|hW?;5&=61x=v0tVS)qyg#0+?J9a{$)1whqi1rOt(UcT zQXh-PNqvUe4pTotp;7w=N)hS@sO_hhAvAOz0HPs24a=RNk)SLPjrLujV$d8=4QMs! zUQiS00LV-k{U^W4U-FauBfp#=^1}t116mDg0wKYr)!#vY4@HgoF^g0T6UERXEr5yQ zXpw4QqF&D;ZGefwVUYq#v-~6_lM)$lsw9Pv^U22Ej*U$B zE57t~ww`j#1wipgveKizfWY}lik3WT9SI^xh1}LIhgXyJvkFgS9ZBjK2-kyA*;?UA zWe#$L0c3?~;iIXme9V6nAB9h<&+sv)iTv>^JA^l1R6rbg(~gix;ieRN#64gxuTcO& zHuQR`i9MjS<_~DIlAU(Ar2DXSWsonjBEyMYOW_Zko}44H^0BNO^C|E9l-E7VEAB~u zd=!k1o0ot;prp#-Wxk~PB~M=86#L8<4L^-%9%cKHW=p6?g?mzZeUU%bw6EP4ZnF8q zM~AI?7ml|b0H{8fOz)5>n@k^*>6|B>&>&_qgfsS2e6eO?_B9+s&PglYmzC`u$!xQW z9Fcv#=xr`!uTR;12#nyoZB~NSt%QAKjowDVQbBN?!(AUokx=<+;Ka=G7J8+o?!Z!Z zIfhA&jkdlB&7Z>$qIlI8IX1fc#x(n6vVWu5&nElVnmyeYZnw$d_ieuLG3&}dbvR(Q zb|B&2PwKGBv0aK{L+<5AZ8PZ&plodkH}|xJ>6nGW{=-c@o7=6;hpfuJ+#L?@-j3wx zv}9#pbc!vv#j$oIQpMN!p<@lbMpP6kc#ci2RE|@_R4S-+`<3Y<9UGa|rxa3Yjunst zm0>&*ZmcMeQY8RU(RL^t<|R48m^)HYh$GBNVgKQy_Eo2!KzK)5W7Dbu!fVYZ$W{tR z29)hSr69e+9r+Ul6dL*ES~t$(*z^)XC}eov+-_gjE6L^9NRCJL31>KQSj88rlR)~E zzj6O=3I|MM?BTr&^TTsHDoVrdW$wP6N>}6;M%n+aqRS zP5M#7nq(5z06%vl>V+CcRd0-il6g&1uEO?3g*MPB*ahcPR$%{Oc$-tcdh7F)=pdW) za@<5s(q!iLb=*YnEI4i;OuO0BzoEHyGt(v z#%z)oCKogLq7AGeh%~T9L&PZ3P|TWx2A0~92G)YapDp0e?nlk{MH;A;5GRmeTMb)I zQ$?hK%5S8BiZ5$fsUB0OY{Q_JcYHPs!})0{8wN9K$XL63IkmHBTV>@a?~ek?ekzTZ zp`0OiS(n7C@^>hS?P>*fM-&QV$0=%8wrpEpCJu6~sSefXU8f&m4fnvMFNj1mDHFk)Vl4<-_A;;F-Kt-qF zOX`JcQ=8vUX=ov%W8-?14APq!h{}+x-1ISg$Z3l0lqcOpo;hxB+By}emq0emSox^P z%67$p0b@ypm7ajIGki3?{$j^QR;1jDjHq6cF0Zqt$K;X9B`6RZ8>rRxDSkdEkw;=Y zz>6Nn0gP)aTICg^1(-5D0j%=NVdme_I8TEA_Ep2kV-bb~|ApTjz0jx+BuOM3{v^mp zDG;F$f!ZoILSN2zLStiY_=94f!iLGdoNYdAfpz(m{B%#whdyPj9DXSlP~P?_$7JQN zfwH9o0t)(t-`$OIYHP#2_`eA4fTuCGN|u!uD;&d+@#tsIyE!yGww6F{?5r+hrpWDU zA4ctTuX}XT{dmxU!ANA$%}HooW6l2DJu7yEpCg7Owh4RX3_1Kw(n`A=+b%0Fp;J~~ zzOcLS#w3?yc;2NBFT*1LVa|wu_@FG_0+vO>D;x{kqf~q9`#@>Wmi~e{wuR( z-%;hY+~-#ea4TDV$}2u)4{I)CyK~=K`GN4pjg7cv_dH5XjPi=Y{fykg?R#RkPwDIx$Dmjs{L0I|GG zJhHSXsJxi(*fitjq{jWB3u%9|(~a0%;*0jWM2@;F6%mW9JntB`hQy)r?TGCPAGFB( z4y83)QOB?UaNi*oX@9Ian7eD$pMBU^?egWkz|#_&&hG^q8k1s~wmoCdc?ottBO@_W zrrJ6fwVd7>*f4umP5a^|D+(mN1F%WIgsFg;T+`X$86)aY21Yrb<{Sw`CT9edqduiM zdUg7wKe8ra&0_Rqw2yycAbJ+~(7i0e#(Ips(SNR^_Dg9)JO^9@8#P^S$Ht+3V%t59 z`yGw90`4!{?O~}BjM{Ei_yi<#KO$HPXS-X$bj7i0Uq##76{#DjqB=IRxra|FMtjmL z9dih{P+LM!)m7Qer!wkHCOY+F3loiEz}VaGMl>NfT@x%@ceSsk$U8PZI)Wk+jZ&Kl z5K531xXf1(w%I>i*rG*-pmm^4N(`5EPlN^CqpYWK9@>qajx{%uA@gqLptPyUwhuwO zLL^z67PIe=WF2zUuZ8Qbc%S=^3U?~A$=01bSQz=sygR8&L(<)TCWW!%6j|BT+@8|V zOr1+UoQIRMW8*HREf5_VB?}L90g^X2i6!dQUdN_hxj#&fcTUw);nRRzEm72D^(yOG zZpV|=n|V8PFi+O~nuPC=tncfRm6c~UlzAJ;%53pu&3&BJt{XOg6+>4-CucAOWg}82 z%HFS&Y*eq*d~XXVlQU?bIuZq-63_2IMMj12QQg@eP+SSc+_8~)RIqM<1+{}PaH0A` zFmfGr7YzVez1odY7J^);l?29%M#e5*eI<_IaF4Vkk*&LVsZb%b=Y)?IzJkdPvSJmK zuWwkT`(b*4xlKUD<0FV^ant)Sp@9X*ahP6YCfD?tm!S_v@0(8DEtWv2yM2oKQ{@VK z&VIMD->3NO{^(|En|%r*I43<&=EGtD&g!tKp<`1^#b>|wm#wDG#$UF6HMQ?(v2RY2 zm38EXnR*#I*R77|uMxfgnzQ0S=4*5s#*X*}qmL5<#JPgeaW_(v=r6n2qZ~uu`D{`k zdfqb#DCVv+ZcLJ+`IcCVoV!oiB|D0C%8qF*ZpXAQ(TWE~C%KiqxyP?B^p~~f?4%)= zivld?ezl?xHS9h)^DAFjtJ13hUB-aXa@6K7>2}77Zf|NZx`9%!C_3O5Y}n&3%l|4Ez4R+TMi5)CKgSoHd?Vt8q|0p%ohmCk zGj}*Pr8pkjAzRi_%+Y)oCB=4O#JgP%w_ED(MLA1nJ>8YKQGtzsx6mS`C#Puxu;`Ut zSgv^AQvWHQ(wKG&Em5i?F2i%08*QN_O0(x|sU{Fz7xR+YsZeEN+LlY8IEQByW!b4B33Z^I81BlQ+>g3>>j(}f*((kea z%65cz$2>XvH&cm2!FS)36fE1}!D+vBw4lcp>pYEbvb1}KmWJicH!*iC-MJl}=Y7%T zJ#w1-(Q7O~Iey+0ZnAEWQKytPkFp!y4D;mfU70NBwuP$QFr}e5-hL}(WJeZ?+dy~j z?vNdGBj!{QYj}sA43xuP_Pjn7)1bmh4RFr_27O75N_hKtmo@l{WKa}5}C;DCRRifWE9&IW`H$RB% z3-F6vP-A#)=gViPF&0|1C_&L$!T-uxgb^I1G}L(n8L>9m+mBU_ebJcJnD`_W=K z8h?sn<&I84o!l+f&e%vFD|^C;t@H48su0Epw2aV>m`V4c0o)DUCe1{*co8!#iJMs6 zdk7O(wlMD4RGTD+cgCo=W}ya9g`C)Ugof`f4D)GRKZtt3beYx8VA*TDUU*P9S&x{r zlX}3$BLP&@V6@EQ_<3`<*;-M7R9!=X!Cb3FIqX)BAde?dWwqxXcC7i7n$O&Qj_5`p z(C9zxiw=F5X9QCI9$KH?LT@DE100NN%JD>@s{I{Dhn1wyI z3t_nH-LBGg9W{(Ua=LCHKTN{L^EiC0&#F=i0alT}Mp^l`GrrEb%imsoib}_4e3zmM zVBGS)6^QQC@01QlA!`rj8j-%{^S7hEtPB7c}r4c8~J>lQd-TW60nSe}Goxy)O*| zbj)PX($X9c%`SWEAXbL2-f9`#QyLsfl?KnlW}g`;(%^ADq`_kc9)LiJ&Z(%%0|P(m z%uO`e@-sI}Pn*;eTs_D3s3A0+Mp4xi7&sR<5mym&v-Ge^J#e)j=aI0{LsPVn#JRYM zxMni9;mj{=N|-_M*SLDY%(2w2a}$Q7f{SFo1yYrn{44R04wNIxBzqicEtDFn6U!&r zM;V^~naMB3BkjPtDwh(NqbZKuM1Jwul1zHfqbf7G^YIV|*3)`OY5h`~l51>pti?%L z#8IoVL8rwxo}%1DzAa{M!$D~I47axgwUD! zQ3s3`YgI1AS_=m^QLMRKl1V3gRAnZ286H}t({Q!RfN=w)0Y6LsxX*!JdwVw7Yt$s*>A_8u9@jHBOOi$6>4%$;R5)~c|He7Ei8vaW+wjwSNT-Kv zQtx@#>@tIUqHkC+TrSC^lU1rRlY1W? zBKD3Rl4D+qOlWYgnl0r{Zl?Mao;wF0b z7;_um$0qeb+9l89!Be>?>>Nwwg`23na4tfr`3|FaPHCXY{|jtLr-41BfuSB!-x)Z) zyNx!FX`Fh=oRdl-=Op=e@g@}}RkGfXr{K=>B2lg$!{t(ZxLlISX1631ia*!$G{arX zV>M0m7)>ru6Ou`%1yyAxx0T8L-@WjXPMA_&_iy_=Aq&-jQ-bs2)|VoJ8mqYsB^Ox9 zg@|uETdi{$N6rwYVPrVqaCw5uG`Q?VqG}lG>1aEc=28h4+6<<-EP>0qxJ%-V7Zi4@ z>r$*?%AJ}$QXAHFzRtt?Vdc%}4BNv?mp%eW|VVDK@ zCtsicEa$JCF;rfx78-L9_ucO%{k<~=5dr2N`Uh<}Fn(ia4E20g%WC|Sn)-wf8DI=g z8lG4!KVb+-T6pC-k9WpU*|%D#ub~+J>fD?9bjDDO5oSb+LVy2}&D%R;zy^%k56(P$ zIT}A>cpMC~8vmpQ#mZ-N#!$VtTGUZQ@3(rK+ZjWp5BWvnp^ADgTG$!W4^ONXY8@#J z&l^(vS!WEbZdxsB+k48@*zL>0OkcsRq|e+!(NOU!4+~rB`fV5P(b_o}{IFmvvVe2(lbV(<7IUroy8e@M(e5)+Y0PDACI2Kax%7--OUiEFfLZAVHy+N{kFzs zxVs|Zlo<8Y{5}bif7XjXIg7T+b9IyOi(zzroeF?<3&nk{_oiuFwCqHRVRScMP%ozW zwe8$3yJHRUw2UBS}C{~M(5WEonMc> zlC5Z5w+b$X(fO6ZxLA7&lV!!3mup-P2rh=v`E{1gue3ou{-$xU?bmqDFgm}^W?WAE zQ}KE1U!Pq_8}_++QTW9$I=^VvsionaFFjhQaUBp`45RaFB;%s?gjDKBX=l)ef37|i zTnwZ03*AhDU(%|f_iJ1>D$r02qw{MNT&)&0zwW*0i&Bm26v4$XI=^UWrN!$vbyvz7 z*GR#|Fgm}^V_a%}eQ=^9tA;9?k^U+3%mI$&QrOXI@zQcN+7&acsoOHIR9Ps#cX z9g5(pRB$nj&aW|yORdX~PJ9{f4^^%@!No8-zp@w?4>=Yx7Uz!BxYh_RhSB+zt@CT> zA3Nr2Tz3jChSB*&y^Ypxxb}yw8rLI&i(zzr<>>sH*z2vJ#`TQgVi=uYsE|Ne0&%ORc2U@to#a>J?jLt9W zjWxgiGUT6a8rJ|C!a^~O&aa7Z)!O+-Z_b&dag7pO45RaF65~?K#y9r#-)da>f{S5v zezCQbc>OwW^2cv#TvrG#zTT49_U7vR8nbKk{Tf%T;9?k^Uy~V^TEF_e?H!_V-6Xge zMi(zOTaUN%i#)qpHLl+ZE{4(h#pdVi^8%DPKl$W|pK4rN1Q(yfC&nvJ7q4Nzx$6my zYro)P7-{aJlImJ~o%~@;CCCR}1l|XxN#}9|E-p+ZG)%nMfQvVlz0`ulT+V>4gnxz{ zUvrvQE+u>o4&OPcEiG9zw=z^Gar3+c^IZObe;=u25uIf zBb^QLVh?GA9>P`S%Oo3F$8am*~QUjm=1Oc(psC(z4qVU$ z8FiWy7o>CIs0p1>I;TYMw9=gDXM(E$8_K!>8(q2o*%?N69@Nh696zoLd}nu#AKwMO zvpdIM&;`De`&@k6O|*0pGtaB63!(D*7nja2&&NYuMdnp_OmPD|rTHZ=fUESa_9JuoZmgF&<;eL3Un-zAF=j!wgF`9E%b^}Kv@as)*$cpcBbIT17 z_ucQCPyAHh_qw|U8^Qt^cD~1xZk%W5EG7n&%8~4VgInrq*m?ei$J14;|++20X>_(8Jb85dcTu?|s& zaUzU&!RS{!E;`1Mj?)W3Ib|hS)Alz0L$O_L2Vy&DON<>@Drk`b8DiVN96s)-JHxTD zhpg;wJAe%(cI#`7jZ-Xb2Ylh}N!Hio@YZx?E4~6XVuwc=5RsLZ=0kSJ#vN@P?#$P* z+i1UM4GsewX-ThlA8Bzp8Z%ISuv@hGeFTGi9kCS$DZ$xb%86Z&Kzi1t<8W&Gt0>iE z4ZrOOjdbU}QP)=umM^xQg~YDxQl-Lw>t1)}8{G>3dKPIM_!zN6nS6`Vnh*t-W8<_IZ&uCMEoyXsu``2sJ1RteG0C_v8qf}`{6-4b~M~p4Ls2`H>)rOX@ zA^02e0eVaoPJvwV8cEOSEPNmj6UpxA$)q#i{kfmll>~EJ>#k4+WVEltmUz1Je>L*q zNQ*PnQ*QOx^DqtQD2ShF^g7A$5^@}^ItmtFB;jFS@v!5dDiIYq5b>tts517JXMP;W zeAgG55VgGs&m?!|YgEtwDdQASa>Q$oy*T2nVCGRdy4Hd+7x4~~BWP|Svjfac*R!)|t`0?5{Zcw% zwWait&N2DgRod)T9-cFdZfZ;OK5cnmi+|H_jf)oRNHL7=l4Tl6SS{4SlR9rt$}{Rj zl5e6QSHkGO5Jr8s)k57psmJeF^{&Ph;*RXD3_Ta+IA4Avh;7-+SZhO@#?<{nCrlFV zcZpxetAMT%LmBpj_njxURNN$&_B&zSZu~g1x$|*x~5E-5-85kFVOI!ROV&#VwpEyV;hs5BgT+? z;29rt>Mu8TW{dC9=1iI}mLusF<6cq)#+>(I4S?43NSTc})m49vz<(EG&Jk+r3m_YF z8peKED8YZ~gzNmBRQguwKTwwcML7sXMZ|1uN@KrVv;db=D*#0mq^q%MDKLu#j;aa6 zCA*_xSV2W@S%s z21{!fI%QgMak3tQ?g66hC8>CUnT8km4%`9MAFt+y;69`g*sPL+s|gBl7Zp~Wq%iIq z+KRh|u&;`#blh>1`0EQ^`t=jP{*XjJZ0lmbQ_!E$FCBMe?Sces&k|usf&ab1d73mF z_j<`vsnmcwz$}&q3pR0CEjCLJi`~-8l5QDfaayu0F3TJWfanB3^Hojo7@x)(=2u?yDQ#km?ASzOq@;?N+tbPpCmoiRiCcODDnCgZ24vjp zgHK-JMEF&n*7_nGA`?b8o2cDpCDrT%lwfMX2Y_I6`i zD2<)*+xLEBTm6?9@TZ~Fj(E-bM$XO-Th319b+D3_(Ne?>qf9LFxA2=_ch0jU(*SymA8yIF6YJ^Yd(Sv#UvQb_%kXo z54XeJy+SHUvvP*fK21NOZ=ny`&IE2$U{q{l&2yxArt za$p;EnE`+FgwI*HiN-d3i^%YFo0R_fAbc;)2{(<4!osoC@pBXXbFS-QT16E{DE^$r z^4vu7PY2P4MYuw~^sVHR?8Fy9X7Wb}`Ou&!M5Od#;CvJp9&VDE_%V7jx#t3H{Sm(a zzJY?NQ;FX!Mk|B41r1h7{dLB=pK=rZQ`|@q21NskW-eJE#zhXe(U9M;r@34L7b+c^ zOEqjC$6XRsWf5ANV=Zmur%15}xAKZI=({ zosf0j30O-?YRhY?YeOZqrB(CG*^AGL(#l2kwdL_3vQT{c_occ>sGln`II8cW49uF=IC+eXrpuD%U|`Kkvbpev+|S8-?PV#pU5ZhG=Cq?=I;wLaGss= z9Lj9|KAGxfqUvJ)zR-X(o4-GZT6DY4O4;z{ID`gL?u-f`ek&g8zv z)5Q=zYRJz5<{~4`B)(SyGvA0ak=F>!uZ%boc~1e;YQ!1jQGEXi%)g8{6M6kdNYXG6 zsd#)1>s$Tt>>`0-K>WGVJHOkcYEj$`9ICdoxEnYc*529;9PRggq#L-ifZNs$9Id~# zcLPU5q-2Urf-*}Nk~gFqIFdJ^8#r2u4w~S;<2u+45cj>_4buYg=<2yY#gW3veR1(U zJ|EW~bC3JWlHz)>vaGhcuDT-R9C_)v&Z3%7<>Jcal~wbx*tNK(63bc$!yFm{*^5Ex z(g1s%)Gq~XqrC={g=tHZl%9eSh;7JoPSVK+1HOSAZtN{u<(gnSy;0=segrL+=Gz4+_A3 z6#Q10F9r33|M$UvltDXE#y%F$x50mmrR+#vJL+}n{m_#@H-PeCe+T?XK>HOSREX5u z;eP?l%Rv{y{xbYWMYjJGGz#`VL#On-2{aY<&%uvA(0&=mH1VSf}lrT2}XDX@P4evB*aSA$SMQ}2fVWiYP-T@3r*;6Gl{+N(gLVSgHW zAJEO9X|R7K@*i^wdtbyqEb{*v*t7Ax1@bApr69D?slSD80X2YR*x$x;3eQhKXgE@T zCh~t7?2};MFY><<_H$u>0y>2^0`kNDDflTrXM(WSX-~57{I7?7Jf80o`Ckq@8j{pU zpi_D^f;_Ol4}Qx3*&sB8slO2UzY_L~V1Gm8|6a|JT8u3;Qb~{};lJa-F&n zI+Z5{R0#VK@Kby)2c4Rb|4U$>fafoX{GSi|Ik5jXbnn@Kbu0fKYE!e=YL= zdf4+|{~wY6m?7H7!2T?BDo?k7ieUfdB=x@;@+tr4fSkbp2D$`V4RXPL5YH+9XMqO6 zeyhm;rLa$geV@qx1+b5V{g2Qozt(|#uzv!6%KxtF|4xzr^MJ_!{&&y`zXs%ny&e1{ z?<&wx*#Ar9{|eYA!~VL+|3$E$2m6!Idx6%20|0?qTr?8KL9rI~j{r?yEDgV2w|1XOCuK?z3@c#ii zrT2}XDX@PCe#-x=L1)1JE0O=JV80mlw?zI|!9E)HXQ1~1-3*!r``0I_|63uS^1l=` z9Qga7TR;sU8TNnRIfdsZpwnQ#%~1c_ME+Oe`MG%hC+HO32*?lnXW*y&?5h6n7WrQe z%vr$y9y+C0Bgg}L2ly%fXM;|M{g)#DSHgY~>~D(vUkv;Cus;R8Hz*1U!hRh5l>c4T z|5lOzWx$L8{vqgu4}%I|e-HeW|5t*Bz<#I5|Lb7Sh5c2L{|jNygnbkAG>`%+g#8Qf zQ+&Fr|9eFK&j;ol;2(od{;dUhVgCsHl%8t+zenW1TL1qp^1m9GF~C0u-2u78>(r{W&t{>go%A<35XzRCEaMY6?qO0q1So@{ZYCtIaK$(E!6$-||g$rfk7WL%n& zY_ShaZjf9EdU|pa_#41~8u1V6o18-YJx)n3CH^_-$u{D*4oJ=>{;YnV-{hls3XO}qrtzNdh zMUGrPF%YT2>lh2(F*Nz`{vugfX75N+zLXU&E++fbuavmXr=2h!rDz=P5RS~=;f@41 zhmZDitbGfGDG)scO`_zxi@&6imGx*Hu=UNlD|S#0U*Ag#ovOSf!@FY02p>$5+YV=b z(q074@Hf`F0=Amp7^@%Pi_UEFD=)~gzbZ!?n;dI=Kwx3MNqH%@C%hf|+azDi)6{mr zZT%RGwJ*4p;N~3ML+Kfb&mPG84u=m|C8BB-+c)mwv7C;21Z1&|U#F_1`_k2tR- zX|Tw!2&wIJ;ikN##y$Lvv+iQE7+*%7b`@i%F~+#z|BJoNhthL*ga(O#QOx4e`VbXO zjuaIm3zbi)RQwl$8Bi8a#M?8EGQU_0!Hcn(Sv<{O29Gj(Gp?&cqLz$vD_i}F*M;{1 zKA(c3UMu1TzmR@uQ znt8|Cxyah^u`?WNe*#0!P5{vJN_6ezP0(5SrTA|^Sdj<%^1BWl2R(FbOj2IL*3DQ8 zN-kaiH?iVOMR=zOs;sOfvAAXEr3xw}&4;a27I9k~`dHk@BS+SIHxMAkaRQ#}UFx`D zDN+yt3qMB^`qyRg`_43pU5F6)+E@J1wZ(`VlD`HGtK^T~nT`hDA6dH&HXpr53`TDu zGYb10Jf(2>quv^MbAOm}cGB)vC(CEF9A}DhNNG>krUp0bO5~NOGzi&hFv_hgDlp-r z9^Ms>HA|C7Zb^-}I4_O8b)w{JI}r87P^qy`6lHOaVq2%|z*jFE8+S%LPv^dL?bY;_ z*DU?1qcu%`g$u_{SZY^JD1FI;Zly^^CBt1!N7L&@^G&KEbu&LfQ-<%@tkGuY$o=kYolO;wf^pVwjODT)nt!J@R} z?pSgS-#!uFfy%2y7nu=miPgVFg-b1bOorozI}j_MGJA*Ia6Rh@9BUS!>?5n6+knz2 z)ejZLx&1r=RP94yPpCN57X+hg6Dm#swL+~p9>u#ttvIMdPa^MF4bs(|UaIJ3ykGV3 zI^vHOg+%3RwP2Kq-Q*V5+~o5|2Y3+*@|I+cWIN2+;bB%EsS;8ZM7ci!Px562B_;g#HQjCStSuA=_PA3^P(mF|i7uorcyT~;n1=ZP%w$&n=i zdD7(*>r%1fA``8rcOtgz#{Gt83W5wi1$@d0*4@+ja_mITyMM7tMZFc01N6gs5{ znYOj-HUJI4Z1iWST8N{*{iT62kCj=UN|MnYpG5eQ2iKswy@CXJ_+v-oOVHiQ4(zl? z)1$n`Di_}Pqj`|gB4M}0K9tY41K2MT+u<33eGP})Rt#ypbMh72YSC)ZR_mSCeYvk( zyBs?Y%Ae)!9m0=I6v2rUhj<0@VrGyS0gq$j^SGmy)yu@ukYnR+*}4PW#Wp%xfE)hh z5wBn~#a`ZAZistq-JAQ$lAi~Z@`(t;i)C(q zH>Xh`9|yE~BJpG>#V-mRypS-1v^fc7X!1psm5sUl&0GbKn6h4Ta-p_ja z0D5{M+@z<`OJDL^DqefOWAR#GTD-1f#Y^l)LEwjVDqruRf_Dx*N*L+|l{LhJ3Kc~p zwg-g_oh8ayr!t197|PhK=H<(n&#!!eJvQjesm#qt$ndL?;RPbYPwN!wY=rtGIo{fJ zj?Z8@J`Ur}NktQt7Aobu^yY8Fj-*LNGp@z`=AMzFD0-9^bPeV&kV9;~LN#Of32VmB z07drCU;|F=B%0-7o*c1$5E#~8A1X7&_dF^bXhN;<-DOAs?3vIvZQ}lAJo+bnc z&B<}}w;f~9Cyn#u?x;K4uUzi(V8;+f_-ssH|CT#C%hJ(Deu{ehjvn$;*gb?!5=o*2 z(Itm6X3>Sz3+U?Z8uSHpl46c8f<6Ho@wP3+@dSJ$WcJq0j4QzbZS)VR?t!p+kd0lI zhLtzWmOUsKSVw}}QkXEVf{8Ajq2Adh(Uxkg(!jJCrc;?|3>ptE<&C)M7))3VfxO9R ze!1yhm}rh`lYS3V2{SFn=%$>RZh~npGra*5$Ndwg15US#RGR@YEzH8yD0WceZsTv&OT znA6npJg+ZCF0yaNrLL%daZ!umH_g0k(hc|@z)Y6m$7>pCalg2UII)rnH+Bi_JGkx=S1ppF zwt*Cdn`6`CCdwDiMW`l_s?6jU;Gx)A2>H^tlHUa0gQ{@oX7c@T*YZFOH|2pAM{c6H z@NkpNGzP2;N0dzb^;Od-p<)Qck+%2KV?mRg%3?^O(vy6XIsh{3=TW1W_A*+Q-7==E6<)!E< z)Z&&$Y*5-h%tG#fwQ+SH<`u$)UmCc)47V#(mkBq*EHA5|8%Gjc$VmM!SE`(4ssod3 zdfnc*31~W~2c~qg(iy?AFg6vD(ksAyr3^3+z5x>&hk zm$nn~M()UV%jz#;qk^OD)%>vKSLbS6)VGpi7@c1<_Oe=>^bg9r;<2E{^#{0+Vi?_C zO$>z+{OURQk&PNx3*+JY$PvPXO-N~si{eFoSw`;KpmDt_xEMy~7qxg=yqq};AJw=% z5L^tS^9utra8Z0o-S_b8pVJr6xw432%rH8?kckO?)wN9cr^Yo%a50R|FX{-j{2HoU z@|AWK<7mOfFgm|jI>h(8p7r_f-qg6ff{UkBVjA{ke(~`%dbWFi^B0Y)L~t>T&aZyD zc!|42?5xBNz zc;^}4%+srf{S5*!)8vntVWTb(ub0nu$}Exa$aX3zmG8hjIboSeGOyg27xh9OB zi_If&3WKXVQ?5tLDZG&WA`FDlbFuk_h1^NKk^Z-U#?>yk2&3m>vkl8xj0de~xZj5w z*BO*}P=wKQQ95X6l(((+f1z<*DYyuu=VJ4Z_<87>>VM>FT=cPIQiRcSu{jO9E{&e+ z&qKEeF2d-!oN(#t>^03QNjX7!uHkU$>YO*4Sf&WWle0{?kaLn$4IB2ES5;IlWjoEG zm(OFnzw5*%bQ+m-`Bd!I&c{YN3}q@7m4bGk@9&Op`%c6e962(+kJp}JRI5Tj&ur# zj>GJUNi20dx~S^>(M3(iWAY@A-Ak8vzJNj}ay_r4z*Ul!?{*bWEy(w~-LCjado~Kj zF?$Ts^@ruBxdL8Uc6*BoH83B&<0wAe2$wfrjNf&91s<0-==V;+DSH0xC=1 zcs>`@G-12kuecB>cvUi9+6Z%oOq_RafLqN(g1p<@X1@vVU6Fmk5{z z)Qe=qO1gPIJgklboS6x=2)AoUkY~;9PVoS3;LdB51PnW+zOz7t z^Y<8@ukHr!P2iSYj1TvS`C?b;{4j7=t8+@>x0$~$;#m)uB(;G^b(Jo6z@txGlC(CT z!C2R9CJ&<_>6Ze-k>=^*#>4lzfuk9FW`Qb+>t_DatT)sR+}FUp4%{mg0H}C;6DC#U zPSc;y1%~XTx;hzyyDg+%AW|gH>?BYI+(!X3&4@EODY6KdrAC|~d?fDCh}eb z<{cx>AdjX+NmFpB6GSQ=4-czZeV5@aVGL=fmvn5 z8RXIA@or!?8*wJ`UIFH9BhDa?!Y83~O{WePDjp9Ld82{3(1?>@c$mmL8x6yFSBvWz%`JW9W5z+7#_nS^fz zFzbvsgFGsK4+;#0k5pIbw*|QE-H`VVFh`9zlkg41Wamtp@Ib}W#SlJ7Z)#(=GA;2B%29EOMt8U;<11`N7 ze+kO$BreH2w;MQGAik&@I9lc`?goy=#f!Uvqj=of4IC}>KGF@`S-@@U29Dav_HN*4 zi9Pue{3R%}bS8O2x`88k6S{$;h2dZ~aP;C}VK;D8PFI`Yutf5|a=SJy`2ObvHBOMB zL5iQC{LcyM|D2$nj`FY)gf*!DoS-(GpnMkT;sD(OLLd2`6VzxwFmU?M32LN)*$oQ+ zIYG^D&?rOtj6i*P2s)LQFsK0b|D2%y_ne@{Nyc>c9T0YInodnOe6Sh=vVd}sZ4{O< zI`f5>Wl4@T7jWZ57&Bp{4}}C9KXj})0~Y_JAinr80499I!yavTp$XSw9v$XbYoUkO zeVh)ie_@2_4^PgZ3u@tnji!xn!-;k=FZE%|aSd%gUO=0V=LBGy)o_eXzSi66>jEyA zJh-=WP!0|~dhEDdHi+*bq@OJHJaI0_=E;yYSsec;UpCc=? z!bfpfbs;Ks@_t*DUeQGc3fj!g5)9aj#M;vR8r@#+< zD}%l|5_`#QJ?f8b4{x>OdF_ECElHuv<%ZZW1tFa#hgW9t0B4~yz*V_TIs0>V9wL9_ zh{uU@GLKiZdLAF9$h6y@(u$uErH8n`RQWpvU_7GK{zfu_hT{ctWaS{*44%^Ja$(1F zOg`dCw>Z|kNZgK%dt~;FkLH7R>yFKh>G}3A4l2!=E&C2x@#z!W!lq%lI~6HO^yV!!p9s-rpUR$tR*gX z{1nk@J3tXbu!r)DS3V5knTSaSC8WpWK z5Hk6e*fRMVJ7RW^Q^V@eV=pYthK@Ub$UaxX2+rE&TDO58xMw5 zH@cs-oT(dy>h`dy+00qd-x9z=f8eOi%?!SJ)&7`qpM z`!Z!?yvjy**5mODHnBhFc9s$JXHyCNk<->>1P&}anK$_HCF8x_jQ#VqQ7G9E1;~0L z!R(ws4@KnX2W*~96(jkHjYR8KnaUabFXjO)afDmR2=zMJ=La&u zrk;`$yTU>yW5p(8Imp=M%-Aa!Ajac3WB%X@;^wdLKajtRVKBel&L2EXYC;uo#zNTV zLRR1e=F>TQaPZ+bdeqNI?Qgjd@2tP61`EN#4>NM{emLP|m@wPQWU@9*(0|M4JsRKe zC#xoqgNd5IxTnwkYDPr9xTZ0W%qy2NS;Ay}+JQAA>csBPZ+Fffx%Vu%d%AN6UAHo3 z8FL4QC}*raIqP5dwc~N+cFe>$emxuW#RzgZNd&e;0Q7L^9dIDxZpz63t^@?#p{aSgjfl2Grd5AfcIt zc!2qDZQsEtCA;^*6atmBB2Ym(X%8U~hb50nW3OR$JFwtPj?60zie z;9kcQnkNxUZYHlaCV@%Zwv5g3NQ5eh=};xH>@t?%^KQYW2bf`{3eJ#uTpFCqL-d%& zmPR?;$*gQ}MRI&{B^Sy9tnS$M?85soQ^gxb7FQ1rZaD1-C_wX`&YT6Cb8&b&>*ul_ zjR&%V8?gH;+%?b5K`4=EZrR|tvr}e_(h;M^95V7pDfPN5e@9p%RnnN!txEJy& z3I0#3DsVV6zW(ub%%}JkQbYw;kqX#*8$1=A9i}6@7oFiJ+2s zwTwYEE({Ptg;kqff{Z$^vD!B5Qnj633RcXiktyiRXz^Q!eezbU_>EYw>( zlQ&8gCu6JDA5g(hPGZOW9M_W}N+y4|flYwi#876m_^L=z6It~&jK$!NfCpG-nKC6K zKqOf4D$vQkKx2ypIw^%B33L+ML@VtI=cqr$u~l_H!hUPC)~|k)ls}@+A?AgVebkcG za7H+(TwdPX#3(1Neq7-qR73Md{3%by=9FVoisl<>5(qnxLjIG{=14!cy^^s!T(*pH zhg0fh-G+kE1z<9VK2W0ji0B4GLb6Awt>&> zL!6l#tSWSxS>t=7$X>$&31zYiJ6K>tyZm0cyog%TB2i1k>fW1S3{guSX4I0(hZ-hDn$HZt7XKM#(;O zb`zsyU!ZLwv~-7-jBBai%Xe|tM3kNi$W9?9I#?gb`eKf4(xVonTU zMx>jUC!5&8E1U09AxY5BO(%~nuSm{kXc8F$t-c<>NkkGx5K;GNs;3{L4RH#xZ=y!R zSh*t>FtideRU_V@T7|tDq#;>~7Esw1KTtbyBti*;SIT2@94EOqj5lO5vSui|; zo9t|^R$REmD65?FsoYk}oi^{N<<>g=wmR4pMTmk(Ytx(f=@5OReQyDey^(sMJyMgu zBM`&RF>y68T8ngq4|KmDpysUZ*I~S-2(J7CLyv4h`!F`dL--qYb|FdvcH_*BNRuH( z!&YY(LNZ`l2tIK6Ly_ljf4@D_{v>XcVkhj3JhwL**j{RKgF&?g#-EA?wqOsM6&D~p z#MuvXP;^bnRYdN4apw>8PE6BV+n<35W|T$ofxoR70-;z~S@aetzTfPs=8&DP62UpY@n$)DT9%|9b7-M)xFRu%Ez zsG1aHvgsYRF3e1(8SLSz=j#g>rOnqVt;orG9okOa|9zTf|LfbI?f%Gry4^37c31Ov zuax}!r(0e%H3zM;okLcI>`Ltcown)DkJ{Tg(oGjJu|ZJtQ|tyVLj#ZS##b>q!#~x& zGfewJbp=#o15rG^`xsgrL@J8Sh~#cXbdDA0A!0|YI99mg1WeF-&O;1)lHJ+z*}Zmd{x za6wp(@F2-pmF_#}vHSzdpCR5Y$^dcNdfn_9eQ@blcWd{+Qb=?;eYfnfTB$F-_pOxobF4-Pqw81~++#XoSD| z&Q2cu$?;(Diz`E&Ob0i7$gZQGFHU1;VfhkkRgUm5CRBf-*I#;lT|tX4AD%cP<7zt! zMr5s#XPdIxbXaQk=1C{kIbr0>$fLOY@$LNqEB#RhSJ}G>WN!6fjE+a6x#wm_{pa@f zR}YQ&FH|*)%6T*~20J&Ms_&mz#|X2Mv3{w9b(<`!K)=gg|2bFCM9%updC!u_j^#fY zbGBf^wg-L41&+}1dVluPgX@r`qn~ViJ-q&Nxm^!Nw?~?@vaxQ&0+kifCPY ztHCjR2Ee<@r9J``7hDORnBZ4moUH>jMR?qJnz3cFe9wVWxKBWFhng(k6g)yw`kr;E z^Rf(&4|dhrGjaRD_wurQmx59}26a=^?JhMOcPM9y=DDEM+5XukSNDVB#`Rgg4?y8R zsDt>!%eXArZjO?%dQ4$5976@;X%ex)aV&QegQ!~C-o8^0=ug_O2yqocc(=wr^6?nu28punkm$spw1KOZcyh7^$Sq5 zgt`aRg+kpAYPL`hf~pqkQBZS)+6-#0P>+MUNT}_g<_YyQsQE(e0#zf_^Pm<8^%AIs zLj4)kBBAzxS}fF?pe`2b9Z;7D^)9Gdp*{e0flz$(e}??jl^Bmdg}y|d3CZ(~cu~)W z<4X0vMR5+9K zBreY|4wl9>{1t5=NoNfn{39H34;~Z^3O4cQ21FRvj|K4)+CDV2{1*2X31>=JMcCml zW(bsnz&;U)yo39@Nc--%^8p@}H*{^D^hH}Se@crpj!)6baAKk}Ee{y%$mg_D3nKJX zDDVg##t}DjdSL`|eB2c0lcq2qGF36^Q1yiuv;=bkafBOnc0N2F1rPR(`GPr9a)Ny; zbAmagAsmNroQLB)9EWin{s$OU{{W{d-n?!dg>tYNXHuxX;dQ~B@=d|M@lC;;$Zf&C z;oES0503A_@n#%v#_=v3@51pO9Ph#L2RQzqJom+hUqV%|uMeyouyOzi0TRM-9**;H z9L8}N$5lA4!top&&xt3oLAeBWjXTrk#EZArmEri$xO4%%vN)c*Gv2)Z9)uQRbH=-J zN{KgTeJh@vgy(N%i{iPhUTa&Y@nr65)gL-Re2Zr*n?6kpKr>+B3P+xMyBzz_JFV~F zgs&pGB8)&!$%c`8FUS3_i4!IjKL#D50+=j2U=%_=;b+;zv*)O z7ai45=tSHuv@#bRIm~D9*oqb1r+ru4nU3d~>;nk1^tIuo5S=nHJV$zTxwAix_)-`q zYnADQ8YWBP&UrBWN@9Mzs8>U^Q|cK$%PB2H)<)6x$Ndj@Tl{IxdvURFQ)?{pN4a~B>I#mt48K;ZY>Ezk59$g!jNY9M>?NN zY%Sb@`XG!(;qdU7>lX{}C; zrL{V&Vri}J7)wiTq1;GXdYlg6cnp~#%7Lk@)FZ?x9!9SUw}!L%dpIM4K{ZBkMbX;4 z#F`3JC5wG&+yNAQa8bPI*oJw|B(M1AG_|kp9&z@4_F7wxvv13nS&dJ0ZEVlGJka=d z5RH-DT*eS#D@VnhbEG5X6kU;*=%ss8Me+(vA3KsubCOr&Ndq!!c49zV*WaTrBTCnl zFn;+$U#m#2MYlt~I0GS%oN4e>7lqPgQBl2AxwtY-!Y51S_A;Ru*P~FVl-OyQVfn+r zy3^1egQY$8qdoetJy7?^?vo9D*eI|QW*=hQwA$f$`R}oc3ggMep?J|^uU){9b^-HH z?V=~!!I(5v4@IHSS5xdr(=ei$X_}%-@)EO5gG`S*s1Vfe4G2EyH3){pxl+@8 z8?Vd@x>X%dE@M@^9Zcn-0=Sy1y5)MP>h=h? zZaH#l)ySz)BWJc*3D4$ASmjLiUh!C2vi<;{_BRBbtK^}^FY3`SIg&c9O=x;{HD-wN zWF+2#XSY|L5_2LIvF83c*c&>u@>u7oSn|vY{rrLfVDSJ0A#)@CNIZYD9@=qdH*5ws zyp3uQyTJ{ARwNhb-6Ykl8r<+W4~qJ#XAdda2wwejoMB+*WTYUPj7+E~D#;6OaKHpr z7~HU4v`m({c@;D?)TcVFM3}`ZQdbI)~KButJ-3%YW~)S1^yX z>3QTJ=aIh#u|gc*T*`T5#SlG#%W#>+z<{{g;MnB+u4b72MYHn~LB;u?19hSbZuMQBd62ihfq zc8Q=}A|a>5ZI=kzKC9U8>7AR zfU183=xFjsEHU=)MucEK^EthuxnelpnaZlq$CK#3jR(3s*iJyOq$OIss{#8dwB^X_ zJGon88=hr|+t`lwt$2PFDc)7LJ$Ws)MKP}8%|gbVfil1QC-pvQQns_Sx3fL&@1yo9 z$Vv>629jYQD{4x~o!QvGTU}2jm-f!zoSZ#WN0@Hg=?)nQ#97@k7PUA9c5xRD${jq3 zi0XHzseYGl2F%GEFe9v0V9@#l{PDS=cjKB0Uqd&Ubz8h?787`p(ltiu;w32>_gUkrlVX+EBlg-k>m=j0spGJ`IW?fCOw zi8;F}9BhofgUwdjxIe3Y3?A2aY24rCA+}hsWJk1k3mR;5TkxSQFmkuYHf(mb1Y?Nh zy#@PL#IVOZ-hm5590Ur6PPsPC#!F+)78%l*Uu%bBV;Zl=<2u>-N5pw2?rf2Jws_;( zu&-g5GbN8VX81uZ?!?3GRe1=Eip76(Lw79Q--l&hN#@~3E?QJy(9j!j#7tdVP?4-J zbk-IW@8eGMxP#063~N4=sOy1JEJpPc+GaRYaM}IG+ylj52Ft#T2d3cKyEUGxerd|x zhZy(}jXF=1=VHE5uO~UB1<6Y$v<>mEoq)^p;?jahFuE;?3-!`M9MpFWv?fdO`UQqVU5>3KeiYi{Et4ndT;K@ClWqR#U?EQp~8$RDjUbE zgg5M{p1z|#?&a(MW^Z3GaRkD$_VIP)vlb+yVK8VVN1rD}g+M6{L_NhPLONx#bp_5b zBq*K^!IlrUe6Zz%E#E(7i*{=8Xu+gRwm8te@S~;->}U$jvMUO?&}E>`j}M{uzeI0p z2-s!dn6wmxs$oUZ3ZF(I1T3DX^`DQ=jPAbv1>Jo8$K))h)F1ez6E!JmMN#^@!jk~9 z^SdK}ECR`n=_Qi9Ffxe@C8;P%-Xc7I&n&cN4`0tQ-9$>hwAiJtl%gobK81Rt)QoKO zf$oAeQmiY5&2cGu8Y(HGF2)pRQYQU(<0RV!Edl+$e@Z`ff9nwXf2sAWJeYj5-Mum@ zie*vxrcTCJF)35N@5f2BVs;kxsLWa(s8Zp7`4G&cIuNQ26vf(nSa?#KA7hg(v_F%P zVh$9RwW%o9rjjD+8hlL3q<=F`qBgsB@pXN(hv+pDw4@|#D@uZ>R(wp#qv93w=AXHCK6l>~L;Ymx)K*^De1kWlQ z^P(u$fRZ4J7uhCd()}h*vPO~le@Zv?vXxEBr2FqUsd@oXCeN%%g|>6A@=Tqt5Ux`u zy&vEl##2ft?GXl!zX>@@D~h6(PlYEnnBcJr+|9o{QaIM2qF94Uf_izOY*HrOU*IH4 z*}I#sH)h$cti?1N)Tbo-yA=DRvO)cK;bT%J8+>0x_j~Gw9n)H--t`tws}sZ2Jw zPo&pcMz39uN{%(9@=l$Mx@A%(y?ow-)`HVn_maSJHTS7YStG?qgR0LfifzKX7UYI& z$;SwA`zA&^QlWgS2u}*jax1DoC?!SI4>gj1GU*?p^bgJU4aEvKi0cXL_|oi9r;=uS zDT-Gx$_{O$u34Gvgp?g1nN0p!s|wAsDvGtL^in5do|%+M?}?&UT^aPil>x2}Fr%0& zgQ-Roe<$OkYFAOT$X9q#yE6By8O2EOtimxrieeor38LP?$D~ZUdE@8xBcqok_UwBW zlwRum(kOM2woIWaG4osi5~)VM)faD)R4En3ar@rt((UP?n~w-<}Gp+s5tWfFT%X3P!n1+WJQ?w8fgC9#9ZAx9#co%SFINQ|3x%< z-Y85%2OYR^{dYP>n(xZ4>@UMN)9lt>Gdp59Xajy;a&Rb2?2~w;BL<5EFyc9FqHo+-&=J!YX99lSjIr$B>w62X38^u4hk+vn!y5(G z^XpS?SlAKMPcRkuX1emnd+zUu;er(KM+M>Y9eA`HiqmZk5KOtow7jtnSH0<&fr2p; zXyMWIp^g}IQrP0O%yRX8p|M0^bns&E_#h!9B|;yRV;>^%8;x3(~3vB zoOK%0&E;I9IelD?xu^}goS$mU5iSRnC#ko~*{nG|gfn-3ZB1SN7|mmz=he+~kA1Gx zZjI>Wa(JQ2)YIj>s~Fhl#+2PGX8m0bFN2r{xEwkyFnN1KjMAJO!5r=$5n(Om<#}oc z&IOt?2%6cNcpF1=1_~$RJ`#o8?Sb#Ca3Pj`B=YmeA}kdo$x-`1um*2Or*=676d^x9!qn$VjV?f*Urpr{j7CwXW9oA;1*0K#K`Li7 zciz~R${EWYGp1oObfv}?!1~7CDV%}===lRCC>K*O7E&)*9M<7`eN!>xP(M{irgFvu z^9&{yPtSN@M)XhR6e5RhHV5rKXh15a2sQSZ%|Y4MV;b=^7eVTpRLdk4&BFKN)n2uIAf3g0c2nILejcm@2yJe!M=%)tjkNO9{r>+hGXK2K>YM zjnA;!MWZ~a>$Q|%EL-@!Q0I_R6YluwVo&N0EhQMs7H?KOTc2Fd=jA4c_iHJ^ShkL_ zY+cgj7Y9A5C$yAcEL+ElR1UxKd129C=X+9r)KY@6Y#nFWx~*>h`<~R>T1qgMt&m8u zhcIzJ6Wn^M1K)lv6~eK-C(JN%+&xAH-MgcQC)JA!Gm>B|TgQVN@MC~Ty1I1U$9-K} z$7m_RSmioFq%f$ZHr_hxj@Lb@)3lUeEL+km{H#N!pRS+w9v-Bs1K&AXO7)ymQ-axz z0KzL*^k8$bCsnVd1Y_Ac(UqcsvhV)svm;$w*J>%jSmpYLE5%mcbY0aiJgGahlwd4d zBSlJ$AfNAsrCCpVQV(b;!C1CVvTWs#8`$DW?a)$!v22}e*{W|`*xQrZqoo96*~+zS zh5x)g&y(WYvrK}qY@GtGw@=GuYr7Bdr0A^8BpA!qH^KGVtIHkl`aP-Rw3J{hTevjW zQq(&BxzSI1ySo%uRD`o5MDjAe^! zg4bSqPASaxq<*EP1Y_C40-0j#?paGu_oN=zQi8E;an({gz!384V@FT&q+Zrig0XC2 z5lyl6muEj4?@7I{r37QyDikR*_g;49M=Lz30GD4R!C1D6!1e0zzFYE^ds6rojb+v^Q2B^b+AsbyIFe{ zmo&fcNsZT1g0XCsS+=^on!Cu8s?<_~v24XHTm66W-p!uWJS`;{%T~E%>-bydRC-dY zwUl5iTa!h~^o>`)wI$n=x>idG#z>qGT1qgMt!b96qPIqk^rXJj zQi8E;Rf$xH-}tQD`Q+uERR3;ZAqmE^btbr8xt@6I-ith`TrDLS%hp*UW!h`_kFVV4 zNtI|R!C1DYTef;`zhkE-b)J?IjAd(vNO62Iy?k=<^g(WWVe*zF7|Yh#;CtnIZP%a) zo>Y^T5{zZ*9Fa0(Iq&FeF7u>r)>4A8Y@KV_I_><0Nl)rmT1qgMt(hWa>M;MbaFZwX zgq9MFW$Qf4R&(OBlRYVHA1FyMmaX$e%FKsHbouhtfo>gssHFsB*}A~8_1Z6c-Q-DS zbyv0oBjiAE*1-gOpS`!5j>0$7W3LT6!jsynrHHYm=78hfC4GC>2S4n0+`mO|lS>llh4**gtZX(?iCsd?b2dtpl1I}L8sQpDI& z^F_+khP~6^RxL%0Emb2@L-5UH?=<+SmLkTMS^!SKKY}7i_D+MjJrtK1TWTRVo$WNZ zNJ|l8ODz(qf%s;!cN*k#FD7Dasm0)Uw(Ok-cWNnOY^jSy%GkQ+yH~tLgi76ds=vh8 zQkQ_!*-nGwv=lM6RINx2z&F#J%P(K!*;=lph_R)XfD>RyL`mmWe)5VZ^&>4sjLP*c z%^|pp@6R~;_jff+*~M^rO(ME@UIM>J&aGRG9}{J#!?H}w>8qE{Gl0@%%U$qUHEQo^ zk(7fm23A$Kc!|3qV&&XAcPm90h|3S82C266)8=_F#@$wtcB_^xUdmmp#m3o7@yqIx z#YM1yvvs4p4WT)o!kD*c?&77x$C<4X4I+i15aZJkDGWOk9XE2!u!*DHwDv}h zY3FS1cJteUY3FP~=^{2>u~hloEg@5JX-tK5H-bz>rZE-Lt>#o@8q?0C^j$lXij|hh zRGgd1ROA@bT&c)3W?FGlk#2EPb&k!XGmWWqy1ge=XByKkxE`B!(G626%`@f=TORxk z@4!}Qx2!h013Rq}Y_wYqhHYos+UqlAeyBDB&&`{KOy{aBxc$PyrgIh6tx5}<&Q(}< zoLbm)ZpVUQlCxWb@?I~GUOvnnD!s)o-tG(H4JX}$Z%~8wCB4PJkkBMW|+cXo$%G(~+ zwx}f);qv&DvS=h03+s1x0P|kn!M>>S_KqzS3&$#_m6cYMO@kGAt7qa^wVYtLR=n3^ zqbG+;DoRR9r&Uh#Oqd+W8$TJgc*TaY)22?Th*edF4HQ2l%Py_*GLUWI|7~&0oqkLI z-xjw%vnB37zs0SQoD{B%m6yfhC9%{I#CNDNj-PmVQrVO#lgp-YXJGwGoVO8i%79DV zLbvCrF$H5nDd|vq=#DPP8?6Mmhi**v(2WlB-Wtrbhb}Lmt<=dLy1jZ?D4*=1o2Xfp z7`|kwIm3Ia9{_iU#`V}xe7P8Oug~Rg!=|?p93>2C@}h;WW=2gToW)` z`3wVz&k-`|>w`OpuYl>T?|GTcOt`J!uK{L)zI*4rRVLge;C~kwzrN$)4N4|l9ry!) zxmx4+U?LOlc<}E6rd8uQtG~y9+YQXM`mU}syL|j|2QXh~Txa?=1J@1rU)%IOSZDd8 z8yo|NoUQN3JFDji^j!zcvl{2>OWWIv)%$_QfRxnP-dpl=;8*QDdp^wI9mH3p=l&icy(z->JYeG;L~ zD8t{*^t}sR`wv6kK>j9@k~-6OJaDIKtXt1%<>ll0io?`5AGqa*(8v1w_F?M#K5#!d zgg*9{$ANh%9haefKLw_XerniRd8sc1OhGy>gTAwXnVpVHt3T?yOk+Sw>a0CB0e8z` z=zAELXVP&Q^7k$<`_pl0`Q!K)cr5n3#fQnQmkj!%z*ME<()6)?muieC#8+qKT?5>= z4xuju`8$DmJRO%Ie{TTuemX8Kf7I9eIJ}gB57XC`cQP>Nq~p@`v3(O7BMR}=S$Q`C zcf(=myBC;k>9`E#eG`}u(s60|WBc|A`FzLX!}N9Koe+XIKR!$@E=?cHyC8&X6MUFl zT!#GJ6hhnK!{p-9_QLFgb6Z11cq!9fiTnj&SIEPVl6p?l_YLr04Dqa&GU?+(_OC)7 zhEyipFz`>{S4tudm&E_~_dr~@W@X*t|HvMQI!&+l>vjHD0{!imnKx(bf~W-pE|%ZbgpW+%A=TLcrCt@-b}@aX!jMCam()vTWy9a-w?RfQ1GPaXe;tS`y=^%87vYm7{=MUcx)$HVh58=8^M$$#--SXALd_~1 zV}5XyWcivvaa?8jt_7uKK`GgvfO=id-Umu)VP}%qWMLh08F4W*I z*D-8fu5>;?0I~)IYud{`z(L>8Q%Z^9p4i*Cc9AbJ7(w9XFt%0cB0yAq@$3$#6!Fb2 zLv0s-5Nx~*rx=&Tan^xCXfKo(ZJjJ#8=ya2P;2I})MWE@H|?UNYdl=VgD&C7olGni;cSi9tX>i{xs5OqGS z@Ym-wu0{I-t2#0&HMn6mRI}?Qrs*0CZrBIG1)HKyBQ?Z|A4mJIa;6N817~k-N3L`0*>c zV&f4`z{2AMJjI=WgB#aV3oWr<8C@$M)>beHmyYZ>>JS(OJuut3k6GcQ;MV?Ei5bPh z4K__j=P1v8KiKqhOst3&#$j6FpeZz1K86m=6QHUIMEc{S_43QEno?}AbToUgmTF8bga zn=iC<-;0SM{JGmYB#WP9I}zq9zx(q?pRl9 zyiEh8YOWU4iTGssR^VGre(PMS8I-D#@439&K#jvE%lB)S$F)h-jl_*a-6YCPU7XRl zy4KfF*!X$Y%KXOFnEMb;_RKl0kwuX9Ccd7|i>6#oX{}^iWjeizy+V{jUKK*cN33*q z#hpJfeBK!mW4s_D*1uVSEfj;l+R7MAC*?m|?re^K_ECB9*2K`%&V}81q~Qn{ftnz^I5(QCz=DWCl@*Nl`0mJx=IHRSYF9*j zY&i*U zsD&jYym5lRT}?FYr8(HD0kN3407y4cy8whYa#?7e!L>oJ(YWkOJf|0FgGH9SDO{C4 ztRkMF9ipZgilr6C#v6CGv#UVmYw`A$brXj88a}IVTBKeW$QOZC8@f3A85)Wx$xfUW zh2khR6>J6ci$DZd)iNggN%Tuu&D=11Iva9r+pt*jGOzg3nGIcwSI zSq29^+!Z-6)xqTxaa(KKj$w=`j9PsynyjChTssR_oLzO-%@Fsm+O4*Apj0PjqmRUg zw+#|W%iK0#_q%s05^e8qVw2nDFFKgONxc;k~@^j!54+Oz4EVEiS7NL&m}#V^%g)V_V) z1nebxzW+z-C^D}FH!wNQZ+Sq(2XzzjpG~TJ8)s+k2X48#qFik!BD`^)bMDA^V7FPT z$%!YYtx75tEp1)YHDXxB?MknS$*`jqjmto({`?zId~ly70d!6f>Ub;*s)zkfO zJ1R!}li++izRhMJOqvKn#c5DfHjY^&Lq3TCblv*Rabg8XI1b-(9g0>Vzsdd8h-`LZ4 zBOh^C)t`^5X^Nxqc`-DK#S*AsGptRXCPfQ7pBRAW9-9 z;xAJs-FJfT^C(hQYHWbC$;3z~c8C@r#+TBR-tirL~ z6~%T}5=1?Vk4c$yZ^ucm-Hl$hyJz3Cp!8DbJ4UICv}K+FpL$U-|5To-m%rDWlqt{8 z<7B|MtRWFvwg7Q~mMp`YxT8-UbL!~PKD_o?Q@3<(ZK$TMZdu)Fq4_oP3T&u8QCBl} z2?7e$)io?n`08pdZK$bF)XWd*2sZPV)zpWUE=zZz|WNm zs(gb#{rxQ+G0bVe&npVn!sMfFUC|N4Tm<~bnBpo71QpbCxSVyEe6D4 z5{zZ5Ke(RbUH#VafAgdUYAL~3w)nGvntQ30!7V)3z!6$XFqW->maX@`+wi_8HBL(j z#*jcFqm#6hU@Tj_7V^rKTQmI;Pm0@kF$u=9briT>x$^gR#mjf5y%uUI z!C1D2h?HrsqfQvT*pphJr37QyI$ESu-6ELQ7x(Y=q&8?N!C1D2TDIc#?TgSOlAbjhN?fQOiw+tm8guWKp6Shlz(dVS-)N7pxd zQXgt5!C1CVaHXi7w!9D~dV2K<#N_H3D1}+=AzC5B;gH z=SF{mmJ*C*>qL<<{qW)MH*fQ##%d|SShl|5O3_yF^b7ZPb?b1FmJ*C*Yosg1a$UUR zANxEh69z^wmaUUS%JlhubC2HPN!4gug0XC!Y}q=$+t`pNwL(h?#}DZyB_xUMQG5E4Ab3w_j^MMV;fWvc*O&(_r|>o4-8 zhH5FnShjct5%7ojjZed%&rb5Ba+c-aVewHZ3I>%NFk;ydW#31N>7xsh6~rU@Ti<%T}Ml6F>E& z{;s72103Ep2gh8g*>1iOoDKMSWy{oX>vz%R^^o!9>sugVY^f4(0{-q4L7IK(2O?+lZ%%uuddc7ai6hd+0yD2 z_4;m0pT#Z8(q-ljkZ!K}W>EYE%|X@Ny17g0akqk-jOB)&SG%mfrh28pXur6HYgSkW z_$Y-BS9ER`)Ya5za>?9UWL_VLGEJ+y9pf99YE-+%SuE|rX6`gyNV*n%+v%P+$F982 zwhJ)F9)LHc-f1~9etG(qRiDipZjOyFo;j9xD~FGE&!;M%XDP>#ds5x%x~BD^d)l;w z3vd}O#59TvaTzW|-J7}qedra?I?obXh%p{Rl`)0knUI@Z&xAVk>PX!T>+`H6%}@x@ zn5rR#;hB)TXU~K>R0{H`G4*^3Lm|edBT^Wi3Ej0+IiXS?D-}{R79y3SFj6!Nlgd#T zDV&8#;Y_TarUv=+#Im}%3v0p?N5hxwYbFEBV{=-#Wa`w?l8V^WFdmCe9J_1*T`u`x z)N*kgS2}s>EL7g}jk5?y-#q-sPV;3*=Bum1vva-q1 z%JL~j5|%pPCys^V9Gya|6Jg(|G2_RFQqm#)-txy3C;|GtMa1vzL)?hHBr`IeWzJ^^ z`V}?$(8p`Y34DB#nmX}&yCe;l$?t6w^c)1v>7^9<@h6ji*KIg)BQRt6SO$rzGvR&; z{>{LI^)v`a)nfYg}jf>jizU0<)J7T##H`%JVhy zc^%cAk5^JsXZ{UA;EvW<>JwZBeMN_m@_}Mr({hcAmc?;9`f+$NHOhnEL90 zyYdkFSbw)3roOv?`}HC8aoFxWOnq+y_t7ErF@Jse@G&KI*1kspH$r1OYY*06>0#=d z4qWvi^fCLFAEv&WfxGJv`dHqU!_>C}xEBwhkNx?R!_?=;^PxU}&$9Qu9-%BWc5NN#!4{IPiX zaFWId5MP=6thg?Z?|{n-pPHtRzeSwU0T=Fo<9+wphk@g=d)Z;&2)X_+aKnK6^2HMKQ!>uY8$T!S|k=AXLkqKok+&V;^vEo~Qm&Fba5b6ywsZ{^~7b<66PEl7k$ zo^?`)cM?k$uUWiwVW8pwiAz1{3Y@CN70cq6$_P)M}JCi*c4;&0Ojl*SA=4;lG6VGO^e=zKz8z&%ve`-rj6GS--xj{pYm* zSc7@P^B^#IjrJXAfS=n>S@ekWbP{`dE7!H$EqHMjd-Q(gXHNOF3C?zH5uCmWq}Bo_ ztcUrkXhkr#xowD1O+Trxaa5bdw|Z;wA}~BF=I}-7NOfd(XwyIJr18NA8#o} z2(=I2oRG47pW%CqQ2eoVyHI$SQ@cu3fOJnqG;K1 zjeGrxIgJPW4HH%W3T*D+Ng{Q{x08puojK**>crn0*G7GbiH*g+hSM6?R{0Wl8F!dl zOiyIrt#Edrvlqq!n^T4V2c1^jR1CBj+2$w9cP7416YAUe&e)MtTsF&{mm{qxESqz` z_#1r~c??Hk`ek{3L;dg$xHEMqMp3MI8#?N?c;E%Eqxu6y#q6l7huNJ-oG_nBb#^&I zdh#Uc$;i6A1&_vsYZhN-$IIKY=`h~+J{NgVP0PC-)u8pDRD-SuH69;#h$fWlU?~4n zv{cchBZEzE;Ivcjc>w0Y&o0%aurOX!pBLOfP3V@1%WxY0elvBaghyWUIma3Izz&{) z+EEG~eA38}Uy;e3#VD(XvM=1`qxYrw2qcV0LfqM|Dvlmmib@?EUn8mftuV^#v1_#J zp_O<+@!@l|;bs&NqkKgHdd#YIg~v7Iu3P1I8b-K&IQg4fOQU>ToUBI+*cmIT4>t@` zg(XayEs34OZ4`?hPfp1;M!603^i^=ulgd%tWI(BbE%vt7(lGysCiVljDvk%Y0G}*r zX+=%P@e{&hYmE}>T72U{Ja8AEVsOb^IjGWg(~aNz|l^ut>e%YQRkG1UAFFpb8Tex<|v&ToLC$ zy4>|EZcm)gd9`h5Qasx#lJ{+d2GPxB@^mLZnmobT7SDaBBJe>)U_YGca@vka?Q28m zZP+v!lX$t)+SaGFbOu|Nv^XWug##Ag9fz{gF)n0R1S|b?e6oBu;#*ZWn@UYwAA(ZT zT7PJrAUMw%E3RFNo(*nz6{qwJ9d!b{P8e2E+!}GV2dC|HwnVW!(F+inkLT`>CIiZI zm9uVN*M;#1q9P2xVb1WyoZ+iE!|N-EubbhAafX*sf%T~xTgQ7t@ozHC7jc>|kZJxl zGtGam?S#%J_+Od{KHk(GY&r?GYo<%F;JEej6Hscp{|hKpYhm%mrwa?bT6!sm8iNkc;!uX9h#@=x#&SI{`u`ilW>LhOfb4%y!2G}bEX;> zy{X#o5)kJlHHV2Kj8sc7CO%Iv#RYtJ3&$Mad&u%d@U2Gg6ql+2rAFm4m$wSkSbVZ% ze|RO~F3sY+BZCoMZSYf(GUha{j>0jyvB=lZRWj?8hH3qRmR#sjRhI5p7o}sJNS_wL z1u1$FVgVd%fO}nwa<6;kKjU7<>mzn@wOXsPF2?a0!V`Zw=Sh0qoNMwkH6=SGjvqNY zCf**&Y2Tj2$c|(OAIOfkZ!S+pvYjm`lu82e(pT2u1H3N7 z4WDB!r(?J-rVkjqY;Xf33c!~!xPjAhgcqsT@Zqhlj9}Ae$hNAG9%!Fn)7v-}H@BlQ z_+AD#Y{zNs=~as>40QP_&et<5owp*5`~1NTcK{%c=*PlAZxFh$t~2;LZ=@-(6KBSq zso9a@*B<8M??|xhHF$vuEbhF+D~RsSUvg(>w`1_1lZ|N_XPtv`{-k3o0-weGS77?N zA}5-AFwqAyX5xmn?yZw#s;n&jI58r!tsCY{xJ@H(yxfg*+`y3-xn!s1HSg>eTv5NO zy16=@jhv{t^ZTIG?6?KgXneAKujAV+UyRP790(H?rc0HkbgA)}F;}}+KCTjQ34GQZl_M-l=Qp*lI>+gS)eY0z7+xLY!YNnsGm{X$XMIG!xLR0&R!CPhFf2}MzYqg^|0jp_D5)}AhN!0=td zFP%#8S4k;~Qs)RyoL(M>(@O$QFEj9Z9vp<2jC6m{N@lQ2@j;!ECd%wo2~s1oT#CA8 z;iH{iV8;hLKG=~>7jfqB?9fI&J|<-<&qX-txt18cc3zYmAH1pjQzw5;F)5SYML3Dt z#YC0G(?~`)=~8@D%_@o|UMjqF=QjS#ViFe$C8a1zC4`sS?u7=9zcD$>(kO}&YlP>| z>*mW#bob@L(XiW?E_1;2-Oewa*fW(aMNx8{@H#6~nJb|vN_Yz4>k zT22Z6glH0%d?l$UO5P+q|Ipsp(jA`}y?jFpdisWr8T`S(J^gnbxj9F)+?Jw+SEEXc zqNwGEN=vsctk*mo_z+WB zvUR)>!Cy|dN=i|bx<`28ruDe`1=mRMtirLUD=Np8AnGi9OvIw+>u8Vsb;z*#|2Ay6uJv}5+01*y-o7b_%l`Y1k~xK}kSty#4kzm>yr zs%GhYx?e58)5Q*6S32%^y4Mxo^r*vj?vR$<#MNs=`h9_pZdQlsg{A$#>Xt2Ag1yT_ z%i%+Ueai7p6S7%X|G(^{wFz~}&KC1e#KcW1)d7q39`Li*qaA(6UU|#*j+m~3VLuPx zbNkvJ2RdT93FcmWQ{(s}{~PmSx~=Yl;W!O~DqXbcA007l{eYkSgH}(z{ufOhF<2>p z;Rs@WCXZh5U`Gr~6Y$@TZ(9A{yx@Y47_2Jq0 zGcBr1#gL8|2L7s&R(0T9(1Ek414pu_xwM|aC98Ist_|f}1v1|<%sSv;Mx%2w_Px7SR z0EbC1maU_}^=!rOd;K*}>K`KG^9jbXHAJLB{Kn@u`!u7L2Tk{@2 zwwot)q?QtlWs9?p_u{$#oIe(LQjA~1BpA!qG2nW(&b;)FnVuAbM=}YqNN05**Z?7Oh06Mc~WO;DZyB_Lar1Dac1)Ney-M1g0XB3bER1GZwxx-peMCl zO9{rZb-YM%Rb}G%@?7!OX(_>2woU-nt3&SK=t*6tr37Qy8ZJ_tVVGujyEtXH$lJA) zU@TiBfc0!0`S#ljJjcZQw3J{hTPKQ?DHq$zbJKiWO9{rZ^$p7w+sl)BUP}qavNckq zID(kY{_XCqo_oPxwUl5iTU@oga{X!db2oTWA89GUShh|UDN`=CSHN{k>Y^4c39e)B zT%K#$`tbgBqdcj8T1qgMty4tGv=?_1_uO2Jqnlu?a(&aXb@$~L-{wi>Yg>Y`Y@I4n z<~m}@D_8gOoS90rlwd4dqbys6@1EA%lbWHW1Y_Ca%I1w_)}iM{W*prFW7!&Q*}C!l zjkkGH#?ehMmMyMqs+B>cIYE9)=TI<~EndHPePe3Z(~rkf7Aipcu9gyvWvc*ZJzGWh zAHZgYM(QptB^b*VAJTcY=#1-0{YFa(#PqlEtfh#tr6z(C@N(?Ym`$; zondQ#Atn4TcnQg+G%nWX*C>||*F8f{xDFud$UUjDD~75dl% z$UT>LULAU;?aooH4pj?@n@;Na6o%J^T0~`$ji?xUC#V06XH7{wTso<|JUVT16uXz1 zXK3)PSvp@i>+msJx-U*?)wGK8*c9%;*1;D?kHk#AI3;D_c9r^a&8%9Ovw;Qtkv3O;#2>a4u8aPAyn?mYyK&GjfSt%rfz4a}bp zf#XA*w}AQR5V*5|`x2OGd=`S#S$RV^HxHObjq9wu>u>_U!}^ZUS0`NSGu7V(;Ey#| zFrb+-;n-g`9R}`v;97wjHi(*1%8~X?JG!WEti}isU!A>k9|P`8jpbF9;4ia8j`wpRx&3^>$j)&2_ykM@W=c9PL;WoV zW_3C)gTC(pb4NNZO&{xTi^hPI)LHvJ3ET^Z(8uZVqr=qK4qPujMMHAyB`tr{cap{k z5MQ0;Z!B<;L+E3BR0C6=j>}Mg+yn2{bX;2gsP7SAcBbPp=z9;C1L?R7`Uc?{VJ<#Q zZoOpCR}ReC>9{m~Y~Ol~5rz2btp3&lcl9CkaXz@~F!lWgxGjg!$M&T!U~1|tfAkmp z>=63c9s{`OrlijF(XVi<#=7;KR)5q-zruy-xD4&l1k82mxD5J!1x!miE`z?;fq5?- zm!^;H(F@m0N8`ifmLr3{f5yj;{(FbgcO5Xsf6uj>=5s{;BU+czsQX_Uj{Wqp4!Cd! z-z5G>vh6T%TyLN6fXnHikNJC{1Foa*6n`i+`{aR?#D0ZK*MG(5XdM)k{2M+;@J0H! zU5--sv3e2tNp~WEbI}3W?52FV^C!N9*}w71+Ak8_^eg(UWy@I$cq6b^I_u^j;3G}{z!-?DB(A09Mr4&c=? ztvOk?9G(Dpm#|?_Ygw(@K1epsLU?+-1ejOdQbC1IOJv<;en0jm3Huv9=Idy(*TAvV z*IX6go8=?T{zif4^jmJ+;wbbEb1E+u@|A3@b0l~Z@X7LBg>ODY%JRK{@3(|{4c~i( z;&+}IIAAzUpd=PbwJV0>obgAE+|Y`|-wH&9XY0DSwJBfBQ_2tKxD zWp?8`dCAh5ZMBV?UufK4xpIE|rr-k`czNn`u3?GrLf}*FueX-Un}%&M5ZuC~Z2|}m zmbQGgXHHvgYw0Xu91nu>ZAXFNIBCN>gtK^oidQz3-$L+#ss4ETHsq@5bR=Iex*Hn;J>ski$p@}kz8dxwp_*MD z{Z0NPyq|+oW9U2`8q3#DYL#PKq@lHPAdlb~ULTv^$TPV*#Lv|9< z?;9tJ8oI}mtE-Z$qu4YEPMpg*w_cNzogFZg6hw^5y_ z0>^RTu}R%pO!RbXFn|hjA~RS?4T`p__Fe8Q)DPcgB=m7zNt{c!f>PW}?`ctUk z;$rq}Y6waNq92L}Pj!oP=HT_8bFE8cum4>31ba1#Jk#;28yq$cHtYn|7oHmp+r%-W zXFRZa4n|k*>Ku-fy!=m-mo8Eo8ZL#Wj=$j&bfuhlVCSlfoB+05^kY$oW7DkMU0$Js z8=gWQvC=Gu6JoNyDp|jXqdIL4sb4Oe0Xn5Q$@*Her5#Li6zSY!62liGO3TVq+ z&ejgydyiB0|?iP(}@r95|nY@-_sUe)c(> z2Mc)>-CR3-6`VeBP5ll^h1w7|KsW`bZlUy|wS^LPdBf#YoQ_O|)pV{L20^|DkR|W5 zvwvs#{6}{69eGiodqrzlD; z6kh5(>0H`PngT-EQWPbY2+!ZM3%9zF{N)%p{&GfE5{jZkz3@`E(=ZY|t8l$tiszIB zsWb60DU)to^T8hLk;&*~89n=+1*MldQ%jji@0GyVJ`W*qOsWK-N~tK8qe*z_Z@w=! zBKSL15X_sRDCG!GNqJiiT?DR4(?BR&ilWqY!jl@E-%Wrlv9qSSAM=jSFn^LzRF z&*}B=FLgE^Lhm13 zy|ixXqBFg!E~t|~=$Vu$zt7=hz&E1aH(|m2(?-lcBW>Rs-)SM7Bc_*NqWESP`tP2;$2wxzn*)B%&dkN&Tkpv2h&e(qoJEMaV@>Scju<|^g!h5Q zeEZnyP)AJgFfbgi0Y5F$R_XZDF7K$PuV7e*EY~f)UpS>B=19SW@J&4@1dn*WBc`8V z)&aoL(*5kKF?AE2+BfT7B)QJ5pOtwc?2t>X08 zoMj6Z=#6B08xFFJD9=dBe}ojTz)VtQPhC9}=OP2ZU&Xn!1LukkoNrqkRf=&kJsQsx zmO^p*rIbQ(1_*~LZq|B?_loEDL4OVL1i_mwYReqg@58M!<-q}842)rw*b{6Y3XXT% zhk`v^`B3l&(l9Vpg#bSJ-%1Y^B}Iv8B< z9n?Pi-g?}V`i;oAo);-UY8@p~oZp!E-nIAk?-Pn?JTFpy;u?Z8o~>xpbwBc?UeHp4 zvEHpcTBO)#nD{QV=QZ%AV#-=)zfX>v{S;e|d>k0$NqwTF1Y_AcMx>0bOCD@F#(N{T zD{7rdFjgI68BVd4JNl8!JSll>kMn}DY#k?3GADz|yYY!}p47?OmS8MfA(7(f;1$E2 z$KG(GC&hhmnL_xWHd5Ma7&(4fk3hA)^6nF!)LB|eFqW<3MatNE>5aeK<4G;hQi8E; zogh-C4(Zo$q}vbIXeq&1wuW1_&bep>;v;ihG9|T?U@TiBa8~sw;<%}f=h^fu}Q}ckcA0?$%O*v21#9f6ZLa*_@I^&jAd)2D@9w|e)`Pyp45|CN-&nK zlSIn&jq7iD_7+d-Wi2Hb%ht)3t?OStFX&0NX(_>2ws4VzIyAPzm+qW^0(15{zZ*RFN|M@Egm&f0Sp-_-hEpvNcMiOh4qj z;dwU2v@O9{wzzJ1b5!!JWEW3rrj`k$d*pGR zM+tv)VG@jGi>sDbuB$J+8o$+OCzb7|YgamaT^M_b>CLzS2^Hv1}EKl$m=^DZ2Jg zo>Y*Hfg~8q)&y|9auu(d@R}zT(o%x4Y@IGr#?~dj-Swa+HCjsv#XP#L;feE+4{#Mn|{kun;4ebW6EPwFRHiWple zB2ssv)bgHUF>WE$v7ExKhujK*YdjR(J38%N;2pdE1?mRRbwALD?rD8*=bksm zF2F5~3-LIfmx9NWYtG?xRPcBT#|=e1p2FEY*QneVx(3yeds5#Jx~I*t3()stF2Edn z*)<$5vxcKE+}Ff#6eg9UFa;ejsT?;mUYjXJ8Cnq@8|wDi&9OOlwZNr=w}u`-AA11l zBHnp*=#>~-FyTI5pBFchRD|sHl8Q)Scr{|_kgZ=*b;!;&sX9EyzqdEcnCO(!Ddpu; zqv46eODEM^?i=G{B~zzNoiuqW&P6L1%*Qq_z|6&(yMB=4Tm*QbE zrlPX4tgJLLIm~TjtW)En<&&#o<Xi4L!SiDi&OYKHgv#XkaWu|Mfjx7(!O4 z${T%GK|K0zywNAVVgL3!eR%qgA1$+*BVU>LkHHPB0X`p)Mv_jP3_ln%>G|UegwOK+A|++Q@lC2zac}Sjui24!DW3_q z5B&bTLQhGVa4k3=z%}_cUY8>w8yWRo3%k33sV){+r*>I{>wsy|xX$!#!-+ot^BrCR zBeB0`%3lKfM>K{wrcAhg&^HR##U;F^Me5A%oj6ee%m-nCby|*Yz#Sh!Uno&Hj=oHG z6R4L-z&spPxX#Kk8>ipU7=_HNuO27EF@sQlGuiC{yY~V2Xqm$Bl06gd4rIJ{96zW| zQ8po{0g!?XCdk zs&rfieYXK~e>yIMzGs1XH652h-xt9Af5g2BT#ecP2Yzq&YOk9;ghmaKD3Ow-t6SZO zB1^KgZ%U;_vLtTN^-R`5V`gXugJCQYQBv8m49Su#S;iPKWXaZ`|L1eg^W58WgNb4+|`SXA+7MqVGl4AR6kBhL>oF`Bq$047)yry#gM#j4UpBYfr{MGlxqO9BY z@&*HDoF=Xrc?p0?)5K}W!~FOGFgrDI&B!|gn5&vN4SAR!^(+SCf$nqV4;RZD!iDa0 z@x}b;1(>0lxMspP1u&7CIF0aOd=~>|ttPG+dHVrVqKRupUJZ-Ec%b`Se4hfY;S2IG zzNRo)*BdT$s&r{4d?NreK@+DDK9rXPm@G|PGxB}`Or9oALmsAI1z_%I;+m275it6b zF&0hYp&`!{o>>9LMHAPIylH@$u8Gr-hw;q<%nzElX5<|P%t=k0hCGb#eZbUf;+m1y zY6{d}xX`Kctr>ZPSqw#fzPxw=&hHEIFut<@vs4q;O!&3|X1^w`nebHt=AI_58F~1j zj3Hd;J{MnXk9x5f0)(H>)sKFF8~O!#m>*OArMwux&HjQsEPrbOvr7}#OnlD)=9(r> zBmFQxUIRuS2SDId>C%imE5P*E#A(RG_>KikuqLh4)+H|E0WnfXn(9@_zZ3^2z{r{tNQZ9{l|;<%vU}9>Im~bMeLU(uc(mApCqT z{e}W=#24gY{zm>wdGi35^#ysDAHV!dd1Zh*uOSbnlK;Pdmk=68_AUQEc$Z+#iZZwB z)2|Qg>*X33pPCRA5t(Fe=j1fNrk}0dK=Tn{L9sS5amn%K9=cvOqDkiEG062}REii{a&LQ4J_0gRZ$4u71( zmAP;yx%f_09iD1SzrckL24#wpf27VO_*GaW*|Je!3P`T2^s?EXwx1hL73Kxl3t~6Ma&3O=W@xSg%D?E$G4!>y4-q42K<-8 zceP`6MOUQGS0%&CoJ*N!5|8H+_j0Lod16<1XQVGxd=N`A<-q6$2iaxdPW#ShB$)%@ zKR!yGT|K7uoc`oo8dR@6h3)kX+g z7hDC8*Ok;u3%nTgctboIPXiBlc`^2$Od7D!16JLba8sF6gcYPjgq2(7{Ukd%Gtu0W z8ExXm9LFSuSRMBix|_&_9_DVsa5J}_z|b?o3ckx_Jm3RM4|6zSYOtI!aDFNeS&hjc z@pua7-}=CDv-rs$^MOc_Ga|WgHhh^V>KO^2M2m!xWGAN!fG zXal$t!e@Vgk09BxR=*x{!rh;4f!PJgqB;7RFVkRA2@^p3J!VF$~GeQs+}C*4Afa@SP&C!U<0- zhH?-wcm}3!Bb>sDGBE^%Q!YYH@Xe)4zOWD_GDHQO^ruu{>M#mJ;Ib}vekXCiASzcf zc+0Ftq|<6spcA!~Oya34v8W+F(d6@
XlarQ4G~fW?jM_{3>&H zmEp099wTK^>x<486FX;CCc`JcP*WyD1xlI#kx|Ts*pHGrSER_{hiQP*(%uq8Ywn@G zb3>C#<;h&cOoGrs_2Oz4L_%1I=|@6L(oOp2cBc}>9W7q6Ujm39Tw;M0R9T#;6AMNF z6-cNRDykSL?DmTVmQdvA(+MgnLq&~++@(*IKv51GF{i^BC>$)&O=C2LQv=x5F?h-oif_CrxIp!1hCOU^PO+WlFI;{Sj1C#D>f8 zyJ*EjAi)|oD$q}Iplmqo4R6d)6d@~|m7S<9l^iU2tdGB?4|SxX6M+4O zVBMIjk^`j(-UDxK8O1Y@)mZLCWHKbMQpvYvJxM}4E4G2alzECm%nMOMBAlm4Ad;?v zMv@5s2Py3v-!xH`;xP)MqA~f$+BKk6NKFx|&DV!!po|{Gin(fnIVZhzr?G_G&^$%I z#{skmK#Vb%k^|7TG);O)V>tDf^Wh~fB+qJ0OMdcT!Zb3N6g2W~cuwCqI3JH8RuWDk z*M+?Upqf4w!3nZ#p>VT54c37x4synxmKADPjZcH`lkWten%TCb(vnIphgoWpeHVrceZCWk_1`I!#wFKC7;s4B} zF;L^EMFZm_=9x68eGG&4hatvD$>aj9RD1)!Y>mTxAf`AoXcrR4X;?m~bqSchp;D*> zti5Kf-`f@`R*J$sz#~jDh3F)Aq?t`k-Vp3k&(dKPFp6Bj5mSBvvd@XynZl!>at!GdBy)mBs52zHxTSz=DXik@t~y8o}Xw22`lg_9xaWnIeb zL#xW{z{1~nUPy8s)?O(|)WXA6Z5%ZtGTH%gbH0=^8naoNJwgli*ocIt#|sRc;it`3 zxy)kZJehK2{3r`(1P+QvkhTc(wMp|tEGedCWAZvq5wW7qPf6ia7OsGYY^qB#1DmyD zu*C@WZR}5TIr^De>NFdyPiGK;)`vAbV1nT2Z0L-T<5{IsrBecqIT59jj9)=D*Fd}a zG@ky{I4hxl{$JSUj}F6At^SltO+B^B5|Bl$vJOy| zkS3Z|*#;7dTID-HQLAhS=8anAMxdyTZLPAq$5ghsO67-#8&F)H$`;qD{6sA{n~j6$ zakzz*jJXFps=%5@Nk#?qa^#9sTWCa1P|^{|!$>ldtmK(DVCaQ6P6m?9%|I|C;ppC( zNtW5ttBSWnQcUEBh3Nt?iCX4z$)>Ud!-enGL#QR0vjHnryl){{5{vAL1tuWY4@kuV zT{xUot{4XQa=51qIFNo118E0>Fcl=jQOqqIA;oYsN=^_b6=ezxlo($Z>>kVQU(1vs zE>4M7IMk#gU#Aq)WKXPCa{H1~t}a+KRcuZvy2&<*2C=jNR0v>Le_kr_E)i8)SGZ=2 zEm1q%ms^)Qmo0$t$a`^eYdDK{2u3Ek2k=TVtRaWEK%t6HL#BA!OOh!D7&B5{de?Aa zElz__!>%>onpwRQ6e}9E=9w!RwCC#-xWMh>c0d=D03|I*$6tx8EQ)wf67&NCWM{%Kz>Lv zpTM1BuC9|L6Tb%2U|>UdQY`GMmJN3d?@kx)yckzo8Nf$DYoCeDBZf)}b0lgc&Y1jn zcM6gVZ}pPJd0LO#aJd5qfoshZ_p5xYl_zEch(ifgdP4a0A*SG=8QBaUQZAY;bDoTg zt^Cb3DdRG@V`ch1lQ-AE$Gqd|^t)PG7vTZinc$r+xkE~to1xo-La5)TW-uOVET}heiIE3Bea)sFn=vu$9~?-XzHi!Upp? zBO%mc%sxIx2g*Uv5FV%a!AY?Bl&=Zn?Zp)(Wuhabt{W{pZrEvb@q(HTr>)Pk^pj*h zpe4W-l}R!#!W|UY*`_k(F&^ZP-j=uS&6Ft1I9Hf}Wg|03unnnAbyzX&>%wg?*Th~!usNxNe-ah8)?GUB&>*7wLC_FhkYd!{r_wpT|p2wM_ruu;eaQ( z9Zb?nGTs2WaIP+CJ~JM{jXZ=wTLt^B;zTpo6=(~=U^Vfyz+ra? zlHmZ#vAu=10$Wbk-kBu}x=FKTmLI&JmG!~yvWpi?2>X$CUDcdJ^d*@~KqTbIC)t5n z!OI`;fU!f9386qTY69bo#@0VwJ>L*=(X_c}#k{JViXqW~w#v3PnNoETmm=XLwv}b{k?L&J?HkGLR(A5w+ zW<+mPu^vc8tuSdm)YBvbX#u2^pf(GByqFQT(t=h%je@-_Q#}=_Ca|fd8@wWe5VrAT zJYfsy(@7ngjH)FEgz{`pp|r6iqa^tSAZ!uQUe#*ypGy^~g9S-nfiSJdofL<0UO`ZR z9}v(m$Ruth_-3m_F-I;*?yi_KTas)ph16osls+<+GG(O?4W*)r(%KG+5*^V+QJECB zdW4qR^q4f;Rr?rj7iu~Iha|YAE+*76D0_0n92}3}K4L&(TFyq2Nr1G3P12+B#;Kho zGZ+YF^uJ3>2V}z0j13SH6D?_hIgB33F20hMB8kZe6G=;`&L+dnB`sae;ocVRZQ8I@2BS36rO_8!(6_kVdh2YD_qew-+~eNTFrc3XyIJDqy6`$eiOv7X z!+n4iW`*V1%5aUl864-o^Jp!R!fF11v9|8nAG9J)eOo*g@k({3?_?ZBR_PgYaySd!j-Go_=L4z4z=)IMp zeS`OS7aw|Ni{0hQCHRs+o-G~$`{2v7mlR<@luKOTYe=}m8GN|&qj#I3)WTgn+`%l2 zayiauV-o|}#Lqjfr7gfc^dH}()>NIfI8qM;Jz_zxLbE&BN?hD z;`>(IZCM91P}*1lO*9lhpGcKoqc235_ysoO=fn3SJsT+Mj`k&ou&)3?kV9`-B7--n zu!%I5^?+ll1Y+-9$S&5N%v&$!42j4lj0l}$z+NnnSf{g*lJ7DR!M?%qlX~4raub@s~-n#rn?2B<|PH7Mj5s3s9iO`pB4L@Os!&1l!DB z^knG36}Q;cQg+4ZIE{FaDCL6eK)A#L7vBl$V+!O?!X@P>M}lz9%O%Z+(M z%Ku2n^K?f$NhY2@t0=NW3k@Te{%{8=k!%99oTLX6Ae|c5hPmH@t$CUb+jf zE9FX4Y4#|cQ!cu_AVglucw1$>+znoR$dq!(C}|@MtE9}SOLvqWN$}pxV_w0IUw{2o z={;Lfs`cjX#Yf6@>A)w2`8;ZD!H^+0)c+=CjP(g*F`!UeraXwR+@+WPf`?+6@+h%u z80;oStpe^$m?iiq+b|RK2$bHYUQQ`KNulr?m^2N3Ba{5FGWas(%H7xx2b&{PZpGfz zNsqy>gSmLPhWVi;g|i-LRs6_guNP!RATQfbd651$K%v)Wi?Wrj=EMk6n?tMA+_Ygl z-r%%h1Q43jh8opcHErmOOwe}PLK!cnW&DNWBNS0ncz{c7mf&vIq;>Vm9sq$9IPbtL zNj76gOY#s{r*IkuJ)Vs0q^_rv?7VK$a77^&2|<$6VXRnO_geAxV{%8f1zausqOLJY5>W#_e&lZC6Uq)J^lFMx!SbO7O%VGP>~gc8QQAZ^B72ohVsu2K>U*jXgG0){OoDPZ|P zXcn-~%}XnZ1UMK4I<#^p^7bpSEuCP7w1cJ*hMSoG(;#TjEnrq-h{+`WQ4?UbZh&<$ z-XEC@;g{|(XTlrH!!1q#2{k!fPhkSkZ1Er^SzAV`Gjrk62kSS`aiP%{B8TK%{qA?R#<8e|rmDv6ZDRKYj8s#KYbH(2d(8@Yd*DmZL87L2DoE zub*P3Ofi%zQ_P_#Lk_u`!)R2QXq8!#N(ZFO$li)~TFEW4r2`*JGEW!a4Dewz^%A!- z7!N32b?qw=pvTUIJl1JCDRNes=t5FR&IDN5SK_jzkx3%p@@s^5X|9oRA&KTPmYdMD}kaT={rD;gG(&HVP6oT%z&bmP<=!KXG{^# z<|^$}ll~FuRC8th2tqJd(J1`eT*cu3|COtdp0snto|*99rJDk8AD2c@%+dozDx567tDBPv<-zL;c$Q(H?-+TlFHZFlMq1+ozCeo5*;43?zgvok} zckp^AA8zS-A9%^Njle^3hC0U552vZk3Dg*7VBv%%Qox~`<7WRvri||GoG43>yJfyk zhIwN3b?xj~_;Q_F4Mtw8 z!;s#~q6A;AH+i!@5-JeXS(&npT-sPBRUB(f{tW^rQxdJG$P0eR4goKaiU?@1=$Zu~ zc{@yB&eAnAuuMt0gY@u~JFwPbAIgs|tZc4=dMSJ0dQl&la)B;R7MjD!QoXTh4+L9o zMNWYr1+W<}72p)8q4oD8P(g5s1@@4^bp6aV6@_gi90UZfOq0CepChc_f$ z>7<)HP|C>3oP>G|bEruhSqg0=c}JRTELF_zt(C0fsq}%m!ZnB>J(5ZfqSF1nV335( z=@?HKAVHs*&K{|yYqr2tx&krtiGzy(FV0B#HXHzH&zvh-_w|LhmmuRG_N|*rjB2 z`B*u-E`ct)lVr}plJdzSGN@tv#TWl!^_YyA1#6;Ha7}aytciY2*F@tAGB@TVDVDI( zn_EIA6V5V|^#q2VDg0GrPLZ&T;|a{J+LvHS^1((O5(-icyA09*IBW!$_}*3SP%TYp zX3-din_bF4SB|OIzkP0fLL{zFIFaq9^>~RBSvHddOE9r&!=gHE=#`72VU$Z&uW(B_ z;CQ!xu|lCg_8uV{1+~3_>J0=f?I(a550_YQ2YzX91eW}>W8x)1(Wl=7MdwSetNfm- z{9Jrt=scb~MKbGo?FH)+kqi3EGjJmg*0*S@h-UYf@R=dqH<5BR4O?zrV)Ph;4q`i)$j;t zPa)nch8xKNIjk0jcR?4E=XfqG#ZZ73oZVLfK4aCShngI$ChgQ@cQx5bO~Ts)PFM?1 z=hB2tQtQ&}EYt$;^kCI~80AkjrX>@rw(`4%kc0^19#AevneL|1PaS}iPP zm%%caAaJ6d4CbBEHNJ+(01EDqYp;aCxa$x1wDD@-LpIG~07?EUYN}3vGCQK4n+dm<% zg-I^~K4h>a>!@MXq;(gr91qVrG_7tx7A{1W4&%=#33ykJKRHjWsu+tG6$PAc}? zhux)~PH0Mdnx)P})YGSVc7N{LCr{u$dR zgASLEoApJyZrcskXt$EWQI@zs8`o>Y!fmO239Q10dpGDB#JOerYkk^V13p8MTlVDt zrMuQhKUX0wFS8m$DLSKgCrS|G5`cvyOUPFS@Oo6_6bVy^URX65oKb;1bH0!m%8)m` zB9a5n=M#Hae`L-Vpc!+13!iSVAJN#;|Ei=x1?Q^G2daab+f+@AG5i^363G(<-)zpy26Wz@{ukq!<1+CVjs?nc`joP zVYf||orRUd&AB?;wb46UYz+sv!S@TjMWblr;U@98$27Q04wwn0&Kt1Xmmn&As^!M4 z#iHuw+yHE+<@)TW>ha7Wp>}?{+#AP)g7DUP%&00z_OW_{cM1do`ZqKK*i_men zP?EV7?mTf8MNy_DIWS!4*;pcV6eLdtT8pK}04-u^D5Ar~EbRnz3zoJ4TAQW60$PWq z+XAf%vUS<}7NekrT;~RhIv18;x$z9C7?r*7BP4|LrL-&V%xEw8LdXJIe0TUxWiWhK^nR9};$)*F69u3-x0O1>DRb=GAQ$K+!fBdQpaad6 z(J!>%fLJncZ(_ovFaUc2pC7_oK&Bc$Qp#*hZp96H)rC~fw6s2@MDTeug0`?^ov9-R z0_w39BZp}eVX_G`627H@uUM{)JaRer_$9+F0^J&3FkspWG9kro74szyad7} zCg;u3q0BtEr_&Rp7|NJ2N%l8jDlQVgo*bQRh$fE?5y9$>0W0YVRkC?p( z0{=tcq9vJ97_*JUPpH>Ipf|ilyf{$gLu-IQfK`%np+HbhN+Boq4Imyvbp=D~#R8|x z27>;_Az$uesMXwUF!B_&Pztpi zA%65gKYX7AjUo9JV0mP57)#25v7{V`!p4?!&B;Cn57n{c~bYe7fW0qqSNt*b>Z-zmK#c8TrLnldb}WwX*&3z!>1I7;h+@8lyam4g)5CXN1tOX zD23ct;DVU8fUO4Z!_Xi}n}E~FFWqlbEtOJOKB;_^y{1XN(&v2n_|5}U5`6z_`6zqy z7v$e%<-Est1%BFFo;ldQ6;YOLb(=O+l3-@2}kjp9c!J^pGa4rG}np2d*)Ow+a#1Gs7dY3PT%0y-Qr0!ngr5?W zAL|lL6O_HRNlrB)M>`QB*c?2g1e4#q_6Wz6L56Wsd)X zTwhi$lov=7L6QOVM)~Q&PYtTg6!g+`LHV=3pkorN144^BH01MBgvwW^JIbE_1^EH0 zw1Hr$^7C_PL&J?SaSwOSQN4VgFd|p;sBEqsLCzSsXepx<$pspkCN`eqz^4?4ai$bW zUBZE=*Kl!;KF1JI3b|+UV#>+oV<_4X(9r~qGI8pJbIr+3AxI&Hxj%(+vXN^NTr`%H z!jRzdCa8tvXlXcJdYq1+4U7ojcm$A*YgXe$`G}(C#?Y<4`yZY8*bLM<3#UOi_x*QbZ{%uapzzLo`*6KF1WK6zW(` zb>PAWkdKZF6+WdnOkYZ&J}MjK;<*Z(YfknW8gmOnfdw4N-5%;ftNw<9R{e~h8Q#&a z&@G`ODm-<8b10vt0;Mnv_^t_3zl))u3rJ`mYA9&mAEfnb{jB93Nrh1f?Tz4>44i8X z1eHQ5l=2gm(#ufLE6GsM4Z_nJq#5_qf2Mm!yFy$-tt#%A&$-D!P$`r`DcDwGSo8&5 zU_9F{Nl#!Ls*5un&$w|OPD65T3J_ERrBK3eR08&=LZP*Tas(}2JaS-*!MUkGP)v+es zqFo7q1g8PTxd0%j6iT6#qeO~JNZgG0K2f2YL*QdmXzWD-m+-Klq&~K`uy0N}^=W$c z2MQGl`*MO+|NDf71t&*X`l1IWn@G4q^{gq;q<|0{9zCpf{KLL514Y7T@QapxQo9mo zHPVbF5d&OFVY8DgXT+i>Y7hyrJY!iOva@jn{gxe{^}!!-Vu3ltv?&)BIgt>{FLDV> zLOZFsh9C>L7N2loZ$%`;@``oFEALNuGl?mL4%8B-O}LPp2$v6BBwjr2I_N9JSqyWa zPI(wCrgEBw5c3Q|$cp#N^X~mA1_S^GM?4sx@^uUdMuw(xFfB#GI`~EBo1}O0Qw+4G zfH?-g$Zhr^7X)j{!E_P{u`NPfvc5GiywJoDOCrRc5k8sr(z_X5#zYSGE-~jORUIw* zRE~sTlHeDene5@!PcbI&L?pz18|o^~xa0IG2FsdAh~p#-b8C-wC7)ti5e&9Gm`|^U zAGrA`hS(w@&U9dy-?(-e_9+IfxJZb#7Tx+glJTEn+QJi&Fp(f&kL9gNM?S^0BN((r zSOR854YU0e1Mgx$4q80S-J{><-uV=RZ3!GO&W1VFxY7GlOb3EN>jf~ugC~2SImOg$ zT7K~Th)Bp;m$hjtfBzH%l?O1n_zTx1yHqGpnsTrPi-cTzy=hWsHc#1|7vU+s!Zc^C z1om^#>8pHZQ4iRTki#&nkAcc3m-W$8`RrtUTB>{wu|CEspHr+)Tb0ix)<;+6bBFbj zsC>8@Wuo$V&tlpTpCH^6(w-Y7V3Z8KZ6D=+E;keMY zP#=y9EgK($Hj4Q42ZA`XkQBptpc-RcN>;p6&D9bO890LB>9PP{^>MX)UENqN zg5l}1BwVEJ18TD4`2w{r+$aMb!SHl_4Zfe#C1be=hNr7L;o@`+oRbNk&tkiUjvF5n z3{O`Ncq$SS>k8Cg3x^n}xwtuhg5l}1B3zuV?{(h}Q*))TAtV@{uAYR;9Dm`OK03}% z&6UM+5e!dPFT%y?Iy3gkUurJ=@&Fyd@N`*&FFg(#bv-*!d{fQE9h*!rJYBsB7pLpH zv1M)5T;w||cup`pT{bE%Ajomh@b(5ta20F_35KT&dzb3^_4~kQ{%Wp2ST2I$>FP_k z&@!OAxovB>`XKICEEmD>bU`PeiLTojjsK{*a3?r)1jEy12fiYqIsU?>z4c^kHCG>& zi(q)Vu+37(E4AmW8EP&smWyC`y6g!TSC@58q}!;urn6iG!_$RUP_4^KxoVY~D~shK z7@jV)!RoSMAG>Y1nu|N`m|%Fi9C*5>e_U*?<~q*mA{d@7wC*Ay_QlZI*S1(>peh^p zST2I$>B81V9j_;Alb@=&8d)xa;pxH_Ky5b|&u6h}u1?tX1V=DDU4y_^tt+)M_;)pz z6U#*~JY6`rQm3JCUbl&Au8Axc!SHkq=IJ^gcXqLwE1BgY7@jU1QPB_rA+RgDucfC- z!__Po!SHkqRdHd0UC(s(Rda1+xd?`*3%ce_(y;U^w+?Eq!z>rU@N~KGbX94sNmX-Q zV7Ul}r%Ot>Oz{^kudS~}sk!d6Tm-|@HJos9HmY>oJaYOCh5V7Ul}r^}6Sp^d_LImE?0Qgb=7Tm-|@<<8Sp*?9DUnrjrx zMKC;F9x5&%1nFH`JZ-5e8^J6W!SHm+Ra_Xt`i*<;tGQBGE`s6d@+4fGjmq7;^O2g1 zVYvu~r)vaH*JO`zd(~V&v0Mbh(>0QCacO9p{MS@9*FlzxV0gN`c)EfzdURKF{mya` z3{Tf6l`bFzv%i0E*I1Q?f3REx!_zgIr>lL=u<2^9cPtmd@N~g2vPu1N-DDA}<}%hs z{Q?2O@O1frui8fWFs%lvxxQw(2!^L?4B_JP>-0~HAE~(pvs?tj(>0c-%i+v}L252v zmWyC`x_k*2mtRFeZp+kM(^)Qp;prO3)0Lg{rk9#)As~%HS96_Yxd?`*%a5n)dcfJ4YOY%>7s2p! zO(I-e8vc_Ic}dMx&vFqAPZybQ7jpK{d->e{YA)!^5=SsRU6WP15b$Q~iF+ohG7rNe z;s}PPYYOp>O$EH$q&I?dEEmD>bcF&!onM8ykDGAa zW4Q>1rz?zbarJ9VSQ)&}<8-}Yxd?`*E1ak6(U`(LYA$0okqCyTD}r!wW#iY(VWZSs zU$a~U!_yVX({scRZPZ+Y zSuTR%=}O}1>iPIdrkZO4%SA9eUCD%tOGE72sJY@i(q)V zQV18D!~!F&4>e}0G{oI)(Gd(!*KF|Rr=gnbAj?HCJYA`T3)2wY64#J=Q zbj<;*T33&cslIA1ZUrpC@N~^3T$qOF#Lv&Y$3uard&cS_7@n?q08r~{uq^&d&84GH zxe11+Yd+yJ!(X^Ac5RGQb9H992!^LCjc{>wIpAgaC^gprmWyC`x)u;Ft{hfRH@T?h z8pU!E3{O`&Pgh^9+B7v+7|TU4JY5S37sd;n^u7B9c+XC61oK%gg5l{}1PFB+t}i?J zTFteJlc=bV0gMRc)E%W^_B;MKC;FOL@9h6mGtt<{H3q5e!ckL%6uQ zoYZ~&@=hvUBUmni;pzH@r|X-)M*XVhn#^($3{O`!;o{21w-((UJF0X=vs?tj)3uDJ zYum&P$JAU4SuTPR%n1lfNSKj`-3a2e$nRPfgEv}&pW!YbCM-50DKa1=E;LLK5E_-3 zL`n7?8{DwRnh7|c#H6@{uu#=)cu-=J>LxKJE=3R$7aJZGk(>~e6cra6kQ5Xg6UG7D zVpWX3VM(&65QGFJq;k(an)Aey)i}V|Fnn{v2E`{RA!tS-cQ-CMR;6cnT(Vk|Pgrbd zRBQx?^GS%Bp#nlECCOI)OAQ;}NMK`^V zN=hWRK`~Jgv4o=O#Uc}9qC&$0B7+hm1>tZaTtG@xY$zldm$nJ&qzZ^k4i6VlE%9s& zV&Y;W!XSrc1SN$;3M`Xjk=>GI7Fd!Ff%-NiGAJt6(pK$3pEvQKh<=)gCLR>gUlY;9 zgCZO>5luWO!bua+#DgO2>@*=weOOGBu+iw)HSysm2o^Senh+m8h+ho(aE)g)1om7Y zHJ;MYeC{db9q=D{KlhaKsuHwWy`Ou^k1W4>@guA8j4D-?6^*AFB}wBcDpQpUO_3U&6sbz{rbrD>esrky;>U;e z(})lcsfrN~t4d!UR@0Xs0M=siL%?}z1cCF`$ZO7OduqGV` zHb_l0cRQb}ts`6dsuaWU8e~MRSvC3Z~>s9_5fg$}!ji69J z4It@bY5=L91`s<_8aU#m0VDk^4IK4jf&4xgi`4LBp{n&rEJ}UP0yKJXG;R2v0Rf&f zf+E6(2PK9H`u4Z$Z{Eb&4X_<(*KeS`lVcN4Anj~z9UL6se?L2WJMt({KXh>`LHM)F zle+byZ-BAS-*lZW-uH#;J{=n1Ep_@PfK#v4MNb^R;ORt7or}O^c%OvOpd_5`<(xT; z2S362xHMfIh)^8QZL|;wcEg2E2$#8uPoO3a=Wq@Irt}Lq9KoLjOvM*)7eUc=!0h-M z7{FoFo71Z;f>lz0IblU$pADZ8JiY*!n_s|TJRSh%sV1(;NEbCB?k$VKdvu>W^IOmp zRwBcN4uVT@8uD-~+Y2y5HF2ciAt!Y>V>1OXk(xLSd6;jD0kc*U*NnXVfGN?$H6yPE zFi%+=mV?j5_bp(=P?phg@r9!PznmeS4kCsNge_5&Y|s=B&v8@c#6$&82~LiR3AKSi z6}?5j#3UHThV%)IN|-V>EG7&p!-&L z*b-8^X-(*cepxq+Hy7MY?NWQ?PF8j0I%}^3dPnB%P1CU{_-ke7qbov94t9QFzGu38 z=AoB0(&CKym#=qxeE-&rG5MG4Pi0<61RUFN)-~W}x@qH7%TXXn= zWXq9)4Fy_Ox>+p(@~RC_TGkruT{17OZ%eO8za5=}N{85lA6Oy1IZJ!y4PlXaWlk@X zD|O1uy)(P!AJE=%|L8{h%LNaAKCLsm|2u(X**3kkra8uU3yr2Puo*H#cU?^AO5v1{ z2lZp3ql1HD%&ysnWsVjEzj(4nJ7(?{VW-l1-9;0ROJ1F<-V^3id$84`f?{S~)}i;e zJKqZSw7K5)<-AMZgn3>5$1f;v)cG;_gOUVAo9@{bUY2gTJ)&yOwIMT(U)=mp{nbm; zYolD>SI72u&x-i1q9E{kqK#PgXJ?UpfS3NSr{@{n8a%Uw&#zLg9wsIR#f!}iPk)^s zIdNZRoVniR@IxE#2c0*5S2Hc=bal^eITd^MZ>u`he#pK_3yt>oah`JI;BPU9OUxAo zPY&!my58{K0nz%(y-7|US03$7sr<2R_ZwnGyPJuv3_||Ma1Q-;==2#z+x(}`F}PrS z|HnqX)jf6z^!IMinJ-%{c~-eecS+<6VV93(+EG&{2EREQ5tcsFA*RD$+R?GII$i#F z$NG}ef6jH2b0cm=#N9sh?phvd zc3JP8>)7dl;rGibR~Z#w`SW1i&3RwlzF}~=^3vkr_bxwwyYE(Htm1mt-`f>0oZS7; z>$@p?;!->gnm+K?&5EBcX*}bs9X`cC*s^g$*z%}d!EY}$MhCfFh-o+bo__ArN~5ZA z3i0T&eIloz?h#wxvfmQiAW@|GPEhgo3T4cIi@coSjn?38#I&7ahHRXX>OibhLVbaSRjQxNA z*)n6zA8j{&WA2`}H7I3!@h^8DKL4xY*+^fc~g?H*RSz2)I5*zQblV;;?2$#0~ z)}_!mTk+81m$GWdqedrk9lh!czgoU^t^WD7*{$^i=cdT*s@$01hS)Q{cT>hqEj-*d zCU?`-VcA*hjMuL8$*HPox&7R!%7(jtuRh!GYD!gbLgxpm(KY$wTsCHSPx5PJ+^&N~ zTgml!N6YV}7DKj1e+YZv|6tzNdS@qwI#!I{v}>jC-o~Y-U!B`(ANZlD*Y3NPzdfxO zw%uA}BkMmYmTp5yk_FRL*QbnQ8%Js9y743Bj+q!LJj>1`gdrr60 z4f%RmXLp%+Ppu0uj;VM5eOUF3Z;Z>5TwD3S)UuF1DvggRO_!!z^QdxIr~SZY*@=9? zmW+%}MIDz)XHG8kkIZ?P;#yrD+6nxyS1$D%G&DJwM9C+wq=_gjIOc!p;uk6%qOYQXLictFU575`nFFm z_q%r;YQl4MPAmu+_i$Xdu$QC$e3_@UxomrxDS_TP<{zp98HRDmFM!$z01z1x-+8H+T8{g*$2wwbAMDy3p3oOT8MOF96KH#*48f5*w|`# zj(3D;`?$1{hSc#3&jx#SJ>j@;TD?Wik6VrR-CWxiCf&#V>2K%#{=4Ads%yTf=i7VV z^_-B_;Iqc2YVKvTbHS~bX4{M{T-$%;!@{l=)w$Y#zf7C`Hk|-(271hYqa< zZP(GWm_E)@*E(!i%loNY*KUy)Ef4Rsa&wPfOOMK;@dxm(oc zeZ^LzVTz^Q)ACjhJ7ifA|F-SfC};Nv!{?-Yn4BLScC+3;?ZiMm->0)2;J&%Wy09Y8KOzW?pimu>FGQ!JFA^HFI$}1&bvjynAXP2VPm|j znd^-1){Qp|eb-UXcl9-0eVYyXLp-J!#Bb_u=5hLd=PoHfckS6Zu**(^zMZ}gdeX7% z_72lm`B5FpUkqr~nDeIfFWvXHT$sYUhcGP z)oJHLZw&?wekvPgkg<5^*g++O!+f-c__d$r5I6safey#64-jrQ?VoXUqTRkLYiu7y zU+Q;D*wTK*pV5|Emv8_2qg`E()01twdyNXVnA;<_Tet5Xn74gt`IXiF*}b~f9JY23 zeBX1X{!puWvza!>X6@^}zWi06-+mt0wc?2b#<5Fv(My;=X^MGa_*i!MKMccX)|gX z9OG(NG{nX%&X1n_cgl3Fv38LI9A8H1F4!GBtnG}D@Ez7cV@hiSFIW8%_Q#RX(8Ho` z;n`7lBFxWL$=m(MT5 zrIw3ivVOly6a6GEy&iZD@B9tyq#XHtT!fbW_@PC~6ZNhhobXM_Ti?Q82aUbgW}eTL zwBj)jo$mSH_BEfp_(}Mry-POx^K9S)XA7e__Z>%cualVHe>!2q&wmHi2R^xfukXW4Sx;)0I_!9S zWJ=VdX9cZ4oT|L|enZT%ghAt0xXTe9c(-{<_m2LvIwlnpwka+;_Y3t5>)F z969jjHN)tty728+4_vFeyfDw^ig>6(WvOSbJEb#~*4<&aaS%b&M2IGv;;JLfuM@$Vfkm0Ykn zq;=k9?e3K+?`N#&Gu(Pr2dmoEKMeh4?T&Gw>s~zSw&q0oop0ZsD%yDAx3mpwTRZ;n zQ)Ob z#mTI!(DjO=#(s+)?CFwz@%qh$E49<{;DdON_-=+PA>& zhn0u+FRdw3+%Y?HeVYH#C;fAZvHpie6csS#dcQv1o!@HWy5Qygp4AMz84&&TA;+p8 z>#X*lSn91iKlIL#IN=guRl(7#BW_)r{=z=x_MHhPA$}VtcJOJi-SV)_Mw5n_Z+8wa zFPVG$x2>llTy+zYyT_gXJ$}J&YucK&wE5@Y=3yHuOqcX{c%kF)<%vJF*D&Dkb@!f4%3QMU&mk9=EDqa$XV5Kw@8uVUS=py7 zHo5=kj}*VLM%SLWL>?XU_NTYj&yH_gC+}t3&EI?ChI_B$JQu9ieRXR7R+lTLCGTg9 zuGl!h`k+Pj3DdP3a~JgL(ZS=x;d$m#tyRnGP2N0|ZyVy*=6khd z7iP7QY&)~_uFitujKE{smGQaL4z@RYFsWdB{ovbey)yqQyLcx(Ey}p>*}2j3lw&_j zjLx2l+?&|*lsL#Mx1jn}PMmB-KRF6Z(RxT|LoUGfkc~h35S;sv$ z7A~lYa9TOL(z?ED>}t`Q?#|&W)+@4x^}up+%NmYrm4t9{=6$DmYSN&lG#-1CyRi zyZGn$J!w83S33ON81t2Lu%7#p>wneuD_^v1S^VV^q?ED5P^pLTu#nw5UtJj&2JY7G# z&n|gMiSR?^mT>8GvuSJJq&oHTUblAR)ECb!{%p}9dQ@Oq)vIL}ga3MbpeA7KGQF~a zwfS?Z-35_FUlmn6vb&wNd_stA(7UVM#2cosKk~~Fool7SqYknAfAiJTZM%MSLg&Vw z=eM+6JojMI-BXg^t4&sIE8f}5y=4bSi&dd-Ur1$F(Ql?fd2@ zH-li~XB~8+ynZSk^Zno(4m~mke79-Q8(Phr`b|o^yZz7iaoE1Y zb7@Pr2g5|>3l)X4R^Iue_3J5FaLU;IeB6Gz%)ncf~!-z zAB)|moHg(2(=*58u6CZJzxSuR_q()txiEFx$f~Hbt@Dgic1-!H?2yyRG-3M3?LYka zU0X{7hg^r)F=orQwhLceHuL(>-ZgQ(Jr7;__Sr(Q-kJvmd*^x@ZR*lzZzuWCN>`gn zvHu)5Vz8Gvj!N`04e_ zYeTjS*busAlkttLeyKMLHs85Y+htv4b(Y=%FYC0u^N##gV576*Xy=uk51NEd-(&vb z<)NAKjACg`$Lp8p&$xB}asB1|F^Wr>r&`D4ObCtMR`MbE-JGRir~hsvoZ=m#9aG&P z84{AMYxK%F*1X&+%4FJ=KQ{!rGu z;9H$$^H+VZfLliMPW!Z&Ik<eH?pR{jC`#$@P79Kn@#ku5g%x_N$ z6z1!X?mHklaL+JlZ{_+&S3I14tW4Q0zR|sH;>~u7KSB&zeH-eWVKig<&^gonx7|0s zV6a-R@kf2Zt{(GsHtc;SSuIlcG<@_!4s#Zhee$25aTd2Hd_0ykC!{m zQeLvYV{(0tf5fd3=iVK<9k;Bw?p^zX#jb&SmR-4eb<@M2F0M{tic`-9?fa%E zT+#9CxXRqIk@p!N8Z}^w(E68?84%9zrQ}z zeRABMl)I(}JyNoC{U0<+rpJeCJD+JOG?=nHY(wMQ;9XHc(T$hd#awX9)xS5p%Bb?` zXt83PlW1Sr)`;#w6@l&Ect&}Q8XB8&W7oy$BdV|Z-*mZc5I*pl^Rw+myL@X3H=OXu zyRg7Ezp?hnkr!rX4wo(U-M8A-a{s1Z4p%s|_`OPd^|+deJuRvuj_wPe)8}~5h=Qq+ zowRzzS%16Vpm^Xh!(~7Dx47NOMyn3j_6Rz3vXl062wr4u<9jSL=7e~DO1;|z|E-I? zrE5=>S1;AQSXSuSQ1@`@ANAE|cjkK==I=@ywLxLCY)OvUg%M?~#`soSn9Qz^zZ6s_ zUDan-)%bz=589aJm_%Zk5_)hH~lpU4ZFI(65tGWU&-*C?^b4xGj6*(ygWHoC+|u8xS93QVYY?6UcUL+uIzx)Y-REao!tKI zHx~V4oRNL_>+LnEgY)Vf6JMq_PJbvbmY(P|->;_E;Ag4cEoy_)WM$qqOKyxaJNa$f zrNV6ELYH4G9x9GHR+l;Eo-q2Vu-;35?bhY3v)7)Va!#Py zrremeS=qy`u3T%puBIx-=hV6FE&smTQ2DCi?CONzswvT_4?4Sy%deT_ow2c~36*(ijSCK;2Yt_xc#)8P&snPbxG1=B0lt*GEzdtC0@a27cO)>(KW}Se%e0ctv~+ScJ0kS#|b*U_qOw|3J(76e5&s?&%563 zeHzjx%&oFn6MW9>vQ75V*8SHOj_q3baHV!`b;Y!_mw$VNmHieYUm2V1o7;C#D~E>` zdOF*6Eyqo7IV{Y2?bg)$%Zub&Hm~dyeq?E{9xu)o-FaM*{Zq+@n&9dObrx-k?jAAP zTJgU7QpK=gEA!IgD=ZI1oo)Me_yc$6$sbbY+zgA(Kau8N|I}A+;2XK)tOC7Vdw*)R z@!8U0=j>Noe!$h(0%6(ofufAdv0CoMlXUd9-PAr?_E?-fFRz7nyG-NOV+te}otGP} z%e-nhzV5DG$9JK+*H-)LZ?MrfnBpD(MZ*m%2?(P1INut-vwuAlKwE1Xj(XL?Goc43>k8&L4e#dEf?<(ih ztCkHiczbA=?CId4i!%%cmkb&^M9U}4VOo2?fj`WT8*u%YLx0olLc57aGi=vf+1Kw< z^dtM0!dsTnf3Em?`|_g+ytx0!s}B6yTnx7;3c%^!T%?JLWdZF|k$Z)JVBrfbjl zf$mmA^=I15G^_8uZ`QFsugcf=9r*Ka@$0ioX8Qg0Cb7$;T?sesze`#Dwb`sO-quO& zpC=?=`Q9x}d2{xHkq5lz8|k*2cOm$z)bymyvxj$CJx82-X70%|A7YC7?3s}!TN3Bk zP!rp*qBc5zam@6Tzb8l9jn#^J={O*G_X6FJ8EuCJS?>rBtSucA_Dj{}(9k1)gm)7i zj<^$*Ew4Ij?%DRI_9K0}jvlcxIn}!+f^ zEwU_?{@zdKBJoQc?)jjXEAvg~anB=t#@lN}OiV5sI^p0|J>Rz_-;5pfYoX7)HuuI9 zr(N;C=k##0x$o^s;ZGL(ZC>f@FDr}X?sG%e1}Kj62%Gwu%Plz!*U%!Bv#UU>RP z;+E{~LX;v(-BpBL1uMk@Hn8$PXC@Wc-S_l+|M%wma&zw7-<+8_Gk0=0%$zgs z$>%#kkCLZ5KU`wmq%vf_aBx&iz%o);<~ybaNMt-%#*7= z=H;hTcdyG=5^?1-DT}A7f35`#k7=cix*z_kP*U{Q2hF{6E|VJh~lZRCp^X z;Kgq*3eW!D_2-D($p^T3d$RcjkLS+Jw{1QC+Jw)hS9fmelvdPbdAfzCICa#>8}iM) zKFA6p_obMXZO-yLk$64s+U|_ZrD>T>&8lw*^+In(&-TtqDQKOobH3~P6I(pj&HlJ> zgT0r-#&SE$Er_FazOb>?bF?rB}iCucnm zUp^OkGxq13#YVsIPW3z`=1o4yOdE0WcDorDT8R9UhrQK3zka9FrMs(7|JtTRa^;5! zMVGg_Jj3@t`O@@hKN(~&&CZ;79yd9Dl-u1Z=MF*sf9$&Le*W5NyB9y|4_ZCv*OIBX z!2r|x4xIb2$|5(Rbxv8QeIapPC(~?>>M!Y+xySiLAB(jaV-0&wKlAe{ zR<7e<_rUn4{zfauRNe3WD1Ozn=v8@t_9!`>6F2CGg?u}Yiif7rLq{)s;Q6f3xOT{u z8CCYRdqwfPul~@kTbKI@qXw-I&v~2vMt|e)o`-*&{V~Pj``x(%rR~qz@7`i@ty7m3 zdoFzHXQ?BwS!Vh=ZbPD|tY$~^(Y@OzdW?4ZX5HD?y)^~R7v#)5dOeYMd4*o7u6$zD zggtZfAGc|B?sZb~7~dB6dgY})SsA!Iyku#XqltW>C@9OAw=d+>jPyy|^v-vZ_xK9u zY<=^wpl;psfWga07P(oOobTj!wuz_Rfs-%N+8D*`k0?Iby8HCoE9~Gq-}H`25AQlCz{zAd-5-8KRu376bH!5??>`m-@-dyaUNH=*C)7VIwX!ft3r3adP zjFz<$cXmASW?+Bkb_-suPB7cD)&BA#oA^85EP94?3?)mw;#;zTz771v>7kGG<1XMots^bUQTqk zH0v9Fa6$XRw1BXQOW3CKbB=$$9+J6Z)Pd@DFD$n7`*f^(l8@Ph8w>oN>t-H&U=&uivV+Hzr%t3$TgYVi?{$77$1k_ejzCF>WA9rxB;Tt4Pg z^@u)OXGQ9M`&*w$!ZarPr{!)*Ik#2_+=JyE$1htD`^(kq&u@WusX3*4PZ_>y-uB^u z#KjTjS%J5YEHwG~eCpnD?B!|QcP4!fw{5ZQk?S7Urfb^_362hEdALu}ywvaJ-2HA- z!FjO(H=^oP^5f0>jm1l?PC2yo&hI1o5Im-9dGTBMkm>6W-8h+K9cq-lB;fp{O?R8< zR{Jn15O_F@12N&sVJRR^<*eYF%krC&LUOophX(|>EOLu`Bj~Lt;;9APK~!PLVu|=y zMX^z~xJSj0$rUn1LM9W#jIU)N2OR;j(z&+y-)2U}vku1+u|`o4Jhv`IB&oGo_7cK) zdNEwCNNQxu&xi1Kymg7-w~TKllE}DuWnnM9VmEQI7(@Z#iX&=~T$T-m)Uidpm?$o0 zi==C8@td$Qsn4Z3SCd1QMg%ZmMq+{~gH&iW$28zyXwOZ-+f;UFdkC~GjUr9JC^}|> zw=(Pr#1~273i8UsUVvo8dGAB#D=Jji_XX`IHCkhhT-(2^jkod}h{WW>&k{gDdu9z8 zClUWf8OVtxinxjcDK`Y#9X?#vHMq4V6vS7T_67C)653wKM~6 z{9JKes;o?3h{3-YqgDJ2v80k6RxFl$u;E3zz~&|r%tXu-i)58eL_zWrUrwR2(*nLB zhy%FD${<2nE+O=JXEUIgLMAF6+QNcI7D9eh9BxYz^0}*^S{dB0!nx|h_u@jF5CP0$ z%79Y;9tZue=3w;I93V8{SN5X0mJooQhWr%r_y1(xFkhe! zu8@%_=Zr=z3igW18m&bvDQAaW@LO3N+JR>+gciXZ_LB}}lX={55|`BEF*1KSu5i#` z=z`W_X#iPtu@p(kA}GflVHC)QxIr{(1k6&%RVKt!52utubUTtqyw>CE0!di{pHdv| zjiVIqexoH2wU`zFO8Fe*tUzLEJNTdnc$$=awK3`%C|~4>dk>X~KG!be01r7VOG_P= z9=kmS!lHpSwk1z63->uH6aHqsP`f4+`zVe%^G@)Y(g;DL&QwzQPHa*Mweg^iJ0RDuXbpN(IXg?A`Wum z#tu6gVz3qt8%GQIH0^#Nv>^uPDTi$gSH!$tS^yg|k<#4fii7KKj=23ra!M$`8r zdZSf%gY?I9!RTEOb1<2ZEA>4~b8wt7sXbvTwoSq;u_2O$tp^lB{AZ%9S**T_9P~y@ z`JiVInv^-Jd-h35pLbxxBQmxpuGJ+vwS49rq=&(HC4(6HSkS3XNaN=|J8pMn`s$DE)**qyJ~6;Jso zm@Br(f#kQAb$y9W-FHCzrwWw+-3y^NRr5Y`g;4k@vQjKdbq#Z=MB#9S-A=< zHk05Q;rIMsIAY8Cs7^pAVUoL^-K3~4S9Q>`%pB57G z^;^tE4E$+08Un}9fS{~%Ek=KGAIR+sKb^CAc7%=I215Bu|iw-SYKN^$;~x#jeCA# z(s})^;UoLnm6?$7CnKjBcJ_tDpPoqS3)o@-&*wJb%2Yu?LkMN=&H%H@^Kk7Yh&3TF z0+4)W3wXjBCe2s6(>5I1A!f$fh?yWeF%!~F%sjy8js9{Uc+d_$ToMcsS4uAH09^4` z2L7~yEB-2gD)|LsVK&*OKw%V%LPGx~(FkpO5xEFrb^i^~h@tING(&-+qDcgbiY5~% zDjLx4^JHZv9GR@bQdVxnNtMWqIWjrh%8+F>wI$1Hcng-5OLLah%jQ+hN@zq3TvL>Z z{?6cwNhy7xTEYin5&R7YTy2!e90;ndQVKaxz17LV*}=()^`BE(aS_!{nra#@9n>j4 zb}!dlJh7oFhfg?c><&`vT)(^D5QD1>hm8v-rtG6DK2ePF6hF;ZDqP4%or94WaAm+8 z4oita^#c=C5|OgR3nUCjphKumP%Xx5@Ma&&ZMcztaSMCWY^{_ zj!L<6QSc!cEyaW?(L}`q3_812m%>*S6TxUHTsYtywq{*ww=U@54imv>)kPI;WnD?; z59g^%O{ay3LvB#GG?spMQM4Q zz_X^HMJSaE<)|q&8`XV1fV1+rqME&jhrhR{e>Yd}{sa5>^%^+X)5*id*~7)j$-`D4 z@PzY$?tIiHl<6P!59e+QJnA0?ME~%Hk;A_;F*SBRa9KUQg7p{r$B}xt#`F&yI1JeA zO=l%hY8yL$hd4jLD1BHX>&9^SGWi2;>Ob(i3AkVd21t?`<97=%J@JjuNR8<;*gi9y z@fzu`^chRQDg9L<>#xu&BB8kOi}eacc!951D_CH=F2|nZNkm{N#Ro^xSa0aB)qAtP;X<%fy^~p)|It4$YA7c_Jni zY-k=LPHtdoHRM6;YzSp67jiOucqdW?P$YRClor&KB;#C>Rq*Un1=96AR$X0S3KrnV z(YU2A;K&8=gp(qOc!${no>yM)`*m!VG^Q=q#@ z*PF`ZU^oSntUy+7$~%`SmejJtoWPpJ$)gydG!n}Qd0wgBQm%e)EGLbj{4!*vrh=v! zj7*O9EH1==mqU5e5HVVJtyH#I-dP>Ajd3!B9N=HZ4tqwMC8X^leFgq9K}{)iH7J!Q zfM4tq;G7}{6aC2+(9lS85CqtcMaea1w@$fu=)z)gO^L64kvOl?ms2E`RT_x{<%28g z>U=pV7sdis!ypf~IUP<0Tp>g~CzDb-DvG0`xGJiNiqch4dMZj^MH#3lLlxCjMH#6m zV-;nhqIf`o3DT5E1%g%cRt^WtI*|ntLtrY(n3JKH2`Cww1+xSV0GB% zhTaJ|*99;kg-tWT>Mz#}l7=hfkdxiE9G(ORXHqph}LWm)pYR31JnNM=t~r%8PG+ouPJpp zb?6$U2~VxTp(z&=8sq5ikt5Ae=yaN - - - - HAS_zlib;%(PreprocessorDefinitions) - $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories) - - - $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories) - - - $(MSBuildThisFileDirectory)../..//build/native/lib_release/zlibstatic.lib;%(AdditionalDependencies) - - - - - HAS_zlib;%(PreprocessorDefinitions) - $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories) - - - $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories) - - - $(MSBuildThisFileDirectory)../..//build/native/lib_debug/zlibstaticd.lib;%(AdditionalDependencies) - - - - - diff --git a/packages/zlib-msvc-x64.1.2.11.8900/zlib-msvc-x64.1.2.11.8900.nupkg b/packages/zlib-msvc-x64.1.2.11.8900/zlib-msvc-x64.1.2.11.8900.nupkg deleted file mode 100644 index b9157d692ae4d0c1592e0ac313a8fba2fbc0d710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290717 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
bB^{f!?Ss% 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 Xcr?J9l?@~>1cWZE3=Ga$EI=LrsK?V=

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 diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqclass.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqclass.obj deleted file mode 100644 index 881a332bf6721e2391cf8a83808f5e5e685edaba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51445 zcmchA2Y3`!7xrv6gisTtg&rU(s9*>n0aSKL0<(}n=n;_+NPy51lh70?M#?%w!QK_i zhh0?cg%WA1@se8{LTNKbMKV9EfoL%KFsXhGw*xOx#yl+W+o*0OTO3s z$+>Le&WW0KGD_ppIlrV}LfNbW@lDhIK;@Do^PBvv9j|rHFBm^_QqnN<%G;>4J>UE$ zK0R7|-_B(PbIOvY&oHlSc4^v|z&&=MkkrOUVtn>EftzE(w7RI(?4W54aZmv*BrYEE zR={*R4O|ak`d5SN41Gg@Ss-x~mQemRg#313{u5H4-QJ_XtpVndj;Ns2z!6FxwRaaV z`z0=1d&$4Uz%;oC6%^G!+pZf5E&`_0#R3<}ZZ0rWB`%WPnZP_IapCNq2Xn7UjIiu% zukGJzT-*j+@g)MK+O=`_;_`LCH0&gBvG}m#XX7#FWmhkYr6; zjDt$Jek0tyzeCR|j=*$G5x5w9g!8Wen0qBIoPVdF?>S(eBu7!) zIBb3Dys;UWT@n|rf5+g$7r>-m#_F`15%kRm=4Odg_1Si*%kBVXqr`=4$95?A6qr@1 z!frTyG#@+z%xfWWc3yo7+y;pe8l7>maTU0DcTW=`KJEC~xUIO9)JxNT!a*gHf5(A| z>KzJa>l=&9btOh1L;FYhG37LI#ixmzbsD(KVRs&IuS=}jUb`K%1a3SHeQkj|bQ-vn zXsmBA-qQmDiaLJh2qDgt2e*4Lzu=&v`lsTa@@U#CIH*Lzt@CKwb{te9;Xd(b+Cdyt zBH@mBFc0CN5(($>YFa%U!8kk4ji8_@Fcu*%D()J@Lt&&c(sFa^P;2SU13o z3(yx2`E$U$BXQJ@aQb!v^JO*qXuUl}7##-+wZju1@97+1m;9+MF@&QM3P<~kdO^6* z?QINPTZs+VUW#9z)6_Q*xKXE}Z{}(0TLfH1HTtMOo&n}9iHp=9JAm0&jXs*k{sbn< zhYE_&7u+8)xYh)imJ%1P->82tkQmZOB~-s9L4GlCgC#anJ0<{AByr*TtrqlE0CShb zg=N3xHXs=nLJy4*>J1#D(kMn$Y*G#GuM0R9q5qcLhqFgH|#qyAVaG2|bWaP7DUxMvl8q4RV-F#nafNbUF$nBNtBq1#b23+o^b zD&hK#+R;H`7>HA-cF?%IGzb^E9X)_clh|Oo5^=bUWq( zv$z@@_1nD?L;g_-)s95SR{^&{(HFXZKLO^T#6@aH6)>@b$)XvT(CugmOowW46qm~- zh85xzsvXqcj38X-c4Pr}mBfZ?M@#6N4b1Hl7pZ?&1M_k<`luZ{f!V9*3munVfcdK$ z9F5=l**G~$sJKu&8UxowVk5O91DGKa7cMT;jv`>@DEfliLHn2Gz}zNr;np|W4?G|- zsB#I_jznBp1>6RSjns}$fH^2}k=juOOzaS0Q|Jrbj+Vf*lelp0p!~Z;VuZ%fc}nYB zH{f)Mjns}Yz)Y67NbOhx%&m&P;C9fu{1`CLSA(Pe-6%1U+L4Hh+krcx=t~ZH-%|xl zouNWoq;_-!CPm`H^#{%4{eT%-4UY0}qQnTxq5FgSZCVg6bUVs`TPU&N+Ck&(AzkFwaO_xV$3V zD-we$mr!|?h%0Xaw@+dtwc}S{PDxz2xKKNqjl_C{gG#vhfc(1*n9C(DTsvqS^^+LV zMvsU7=a8wjyeI?Gf-cN`kavb8wE^}g7bJf2jG%{s{rO5iKG7Z z#0TS2A^#JYE;*>6P&`B7NZ)K=R!dwYecu4n;wsV>SzjJ7DaQ+c)12Er7TqOT~1;%|f2q+R4Ra}sNl=rU#^IkPLipz(<{3dZ$oCEwz1TKDzrX}N`63M?_zzkAx zLH@ObjvQdhB+jxMB7V04^Qy!}iu3!x{Bj!l>Ry9(;GkmJ4QOv`TpI+;G>MDU-dVuh ztl~np_YPpzNStLiM0-C3<~NCp)ZQ4poVi z`LYt2S0pYP-|hKI&HFEbapeMl5~&@Hf$1r6Ry#t(WfU;i2jV77o?3cYH(>K#6KXl{B&-x2+DGc!hJWQNoh2u-|O6FdXm7beEcShdy!U;nQrWNFs7QlFVMnCU}%;A~7zP;K_FP$}^xTGvV znl)@B+7KWdoS8nzo0T!FT_SbPF&t}flxVI76p((s#$@G9Dx8qpKW}=$nBtP6DfoFQ zr)YX^ao&Wfd6NoC$CO?>v#_M3VA`1RGYhBX+h0w2ZfRLwS>c4v`GqB8q}u>Zn3h*s z+PP@_6s?zbc>~vYP5Ve|s9mW2ej^_D%g?OB2_;3PMH9;sI}GiZIJg+0D7>z4#-zlw zqUptj(+Wy7-9IKNUiVK+O3?jfNr}2YGbwhIcerZmT@%G_)$0h%;@@U zravzhN4#D^`z3H)_~yZ(|t~Gl7lZf{6(+Go#Qip(J%fru8l{FYjYDh1n1ID>P8*i zXmqjeZ)l`neA1tGGVaX-ElQ*Hs=l#auGZ7b3u9d~V|2q+l^v^>SH|n*zqn>r>PG)m zy~-2oGX^CK8^)d^ZQh{0g!wh2>w2H@iEeCVL8gB~vhL4K)~nJG*hvXE5;Ofp9efoP z%RthN<8sH@4`;n54Gz1Mihl{JnsMP`ThbxMyn<8k6LuIiq79TjtUk_yIa3FH6=d`j68uJ`vYuA)L^R%$SpY9a+>UM)$|Z zy?IdPj$Xb#-dBFuHFH0b9HVBoZsrSr8ah&8a5CgbgV`8~MIH3eX^=x{fWRRG#^#Q# z>;jwjaOd|yO@xYGF^SHn4bA{4GmI@0 zB&C- zpk&Asa3uQtGt6%A8J|iAjLkF}WjA0nV!9KfF}Jb@LM1vQ12xeZLr@c)k%yY-jIUAq zf7=;bTki_UOqQoD=X<*rT3g0JL{@+?#<6(?vbA+BO3G_S_Wt9sQIU-{-lz4!ds zk~O+9GG5>Cbq(F9F9JzXOs44!y*4k&L*v~$wsJWX-i!koIZR9xpIgJyWq4zC^ko*Pk(QrRs~1&riVuo3p}jBUfU#(9apWbpKQ_7Q?KcyJ>BflaARP z$7ILukhwCAa-~e^61ufM^ z`Tt8Ab3|8oj&E_5)q8U*4GlT7>TsJ!B=RV?@;n4cfK^6A_+=nuzdX z)I?_AV%6?KO+@`^)Ry4D>P_>Ih{|5%9{Y2=lDrv*>$?VaFKnUS{(k>q&#m+`Br* zTBg7B?8lm!A)BaACMz-EeJJK^YaC+Y*5$-a5fvk`FKQxV)}kizWFu-KPu@pO#BM)o z)%9fpFlW{W2)}thgS{W$#w2E9jx!2%-MAL>$J`FOap&u-w_+=Oly8jD-S6ug4n}j+ zGqF$frzd&3?$iA_STS?VU5d{igAD;@zKmF(f2;>b0uF2v=3|p^>oTY^Hwh49A2Bx7 zS21WD_7m7ME@p!p4n*tj4L*Or9NNO@RsCX(-FnXl>Dv7E#`YE1i)3$!7E8B(j4M{J z+Nf9f;`QF_@4N$8>HsIF=OBJWqhGR)SsQmS9?W9DoA!q4#;Gi$ zf40vUnXS7&OE=EbjRCP)MrJDJxdE}*MWy(Vb&v zl5JBGz*$TYGy#Z-;cnE#_INdFVtd>U5x4p+8)B>9{>^(84DH~_ z8g2U1SVa3r-SE?1(SAljo0}I%#DgMm&HqF1S)|XOkZJruiLV>E9_*f-b8?vdkC7Hn z`{^xd@z6}0q=ZoFt2T>`^lW|J<8hAJo-tYP zd2Ot@WyFRN;|)(v0B9C+Q^{LO>`byL&5&zlxckMrGZ|ywgByll;m*rAu(PPRIS~~r zSsoWsao-c%)rnXRbgZUcW4~_vp!a-;r{OET#y`4|k!>_WXfkWYZi%i*A427K znH5McOrher*iGxpCg=t(=}7fvrE%xuah|4cI8Z}(r+JQG8Nwx}EGOMSUkt|Lm5t|= zqhbwDyuYScnZiAld)aj)DrFxsJ`vVqk$K2?nbdVf-DprXGL9 z*zHi6vYtO)*F0KmIu|Q?qURgcvAcbJW?~C5F0-sB*j_Au`J_&Zv2M1b4vyj`4P_zuX_zwCu+}ARsU2~ zmDNs9yScyjonH3ppe8$JlOu1S&M!b$h`MOzY z_M)#vrr;rhdz2^Ls4aFZ{jj9s;j9s3?^ooVSzP%*Yy@~Ri(BlWD&P5gUUU7>4(2fL zB_lBiZ`v1kQ%hi>&~|?2CG6LShY?mNJXuxNLa)$~0tb--JIs9_Dc;7^ z%ltDx$};Aox4zQ-*X&6*e(^5)4%FDPXkS(TSiO8fs#Z3@yXZ;^&rD1egJOkhW6!%J z0$ulK?4b_NSp0JtR`DV{da30zu*~nE$Idim@)C?sfEL}ragSRZi)6%;RUMD;<{+FN zxXp?e-r&*7@aP85D#erXEg45CZ$(d?gp-H;GY`bQd5E7^rjdbh2>aoLEg9?4q8jjK zEA*}BFboz0dBus0_1q>r9m?2h-AHF`HJ|?&qb9SS-XG2G=zTYuLg!we8JBT1%h>Fr z0ng8a%t!M6{yBK|DHz69gcjXAI7hEqkH@X!{9SbaRhWTI|F(GJ$$dOT#DWQ71HF7I zB7~H{(zG2BT5+T|yn5X+k@U|ou-4+S1-AA6WLp(a>-E(oFN{v=U<#)UUZ($slRjfC zG+uMqYoO270O}OLX6F__ta|-*y_x{ZhgAOl^k7*qtN?mM0Cf?-MTfYj)v* zwfJ~ha12jmtT8({>va(!(-0T6xTKz3)wo@wi z1QjHNSSc}$#N9;k zpd~LA$#Ni}^b$wH_QT4DY#xZgh!Kxx*@h+`J`JFS??^iHoCMDz*mcF0#ZsnwVvnG+ zJh8NF8lFT`7an5y8*y$V(uIOu-_U%T$A`Updp0<^s<-h42HoRZI6DV*Z5aKJN6$8#2X zn9X=`L;8{2sWeHwI;&h;9Zk?+enKVKSx%*VH=H<)h&$ zJbA*4z25J<4&c1)pvn909#CWq$~h6;)6&q>p#gPMgL3b>oo^S>;8tRfI|viBw6qc*Hia3ePj?S%;T5fvEdD99dpH+UrJ5Xh-HI zp+R+*BiHAJJ@w$JGcq!t^q@Bz$ z@j|3*65nol_QW;t9NyyDgMi~EZO(x$p2M-*v|_A8C9MJq0z8`s3ka`-(sHnaD!S(*IK zPizw6u=T?envs|zhsc&vgN%OhelG|kv2h*ZY$)AJRBgcf)>vQf4@=%UG95n&P@3;E zj_Vr^)!_Rg^FCKM+UV!}5^R&sFTslN5)8{T$22+gGt~Z8I9;`)wc6ccwAv{##ngIw zzhoBLN4hb~;s@=x7K?KYWTRVa7VXla`{JuCbmdzdZvHRY4H!e0E~Jwzv>_1MM2$Fg z7&(p*sA=^7?cG|`<(exdN{dN}qPbm5qmwM(<5TDmHPX?PNs-!d*kXwqv07EjqKQw~ z5;bDAXI3+ZcM$T=DcG&2|ICgp1WG2K#py?U2yLQ9+B!0FvWdbsErmrjQ0vaMsQPpj zyA*9H4k*y0(zOO{>uPQDuYVh)zjJzZFRK8fo2~yUEi4dkSHy22%i#ByONcm zqS3EBGRqNEgioSIKG8jGN`IOGJ+I8vb`pf9tSv`@X^vKiAG1`^IOdR+J8owJ)RArP)ZdPfu|f4HS)1PyAin;hB1aT(4#!F{Dg{V zv8a)@EJjW?A^4_^WD&LaDy{|gLd;05WmLA-pk-~XWw!*a<*vp@8y;xzQQZ1^#dXKk z;Wm)E1RSCds5i#5Dw5N$+c3+|s0fcljXa`X2NTc-1(rvXxz@TiDe$Cv^Z`^^m_p}A z_&koDgKF>6=^E+}Z9~*2{P_sISJTGPJ2kByyFlUi3NwUH8%RuB+X-(F4u5*3`$Zx&LhW(ZN^)8;%<>y5!Z}eR{SPrxac(t>XmCHxHR0Si%efV-#&#}dPES~P< z^u`E!X$w$=(Gr4>d>D~yy@Lz^9KdcfYBs3RpBy2O5oetgF)Cs7eD ziW<524|}0RswR^uQnk4j9d@Mb6$;l!)rg9glV{K{kr*IFjf~b~y$zbiYE99crf5#n zp;+vT94vzl|%1mN>e9HKd*Mw%NkQfUr74i>|t4cEdq=X0U(`KZ6bwnjn# z6g9Hhj@3466st8t8aF~3H$oaWO0lOgwKbg?52Chvi$ERTJwL)~^(?ZdEv#f1@s1D{9o9euC+^l^W|{ z{2z-UYQ)H7Mzb@Th;o?2iXFr2A4|Kak@lgCoXk+12z@n+Xn2j~THr(!ePdM5s56`y zCs_{BuQ@YI6)GY?qDBtoF|vaRA@mf>q3NL=+8DK5uGCnehhxR=R!d7riL_GBvizZ0 z&MK%2e<%=Qu`LevXRhVXJmC+|KMPTp_dziWwIxwcxHVUVPW#j{il|$5MUCRHfK^Aj z!;P|7qDHL6%yOs>s_p~=uYe$@RCVztYcbb?pr;}D!_szFfHs=%h2BJ~M!kCWwm|0c zn`QHUe0R1Wvdv_m?_mb3Im6S(mep5S2TerJaE+`!&$UFHpW_;}^jWUqbk^k?%jQPt z5G{R+Yh?3Xt|j994%f&gE%+{tTDqQVIGu6XXj$D3uCV$Z*U0KNt|j8Ug==JWE7x%1 zEdqVwQ7jE<%|oYvvI_d$e4qR{*8(nUo%?u43>%V;|3oz@Z~U|ZkB0$%V3F{$h`odO zLZfeWNKGc%{CtQ}G?hQiwOG_%wV0;%NWMSEXo|xci)U)5PvLu7(X?s!KUrbD2h}R% z{mUVBnGoSCd2Rb@UW?@G8v;lFr$wf-1u~t*CTn$>}A+_K(!T+s$f z1kr}mZM*0cYP;wZYCBEISS;9PZb`k%Ie6DKI{5NPPj~$S?}S*{h1k!#{6+;5&P{qcU2)*YIz&5x<^@N*l6 z{kQGsqm!P!;D_Alor`+@=hdG-`Ka=$DS`fVTGf9=%Z}Tx|Jc{D{p49czNi;m@y~{C z>7CX+arLRo2fa4-uJNP0?!IK&O7r@xmH&IKWXkFzJx4FUWOw@c7kuhZ{Neh&O<$`h z8fo|vhu)rj?8L*l?QZ?1xYNv!FTG>Ih8v?BtlXCM^sNhL7{%w^S+d*I)BCRu8@0!~ z?ppfK1)J}3cRjvw!JSi2Jkj-V;P-^y$3~p$``Uc-`p~kKf5z2Woby!MZTT`OqU$66RrK!L1!S;uqsJX1G`Te>_|Ec`ugl|F5j4?@>yFcFVi|RHr zdP&18Hf-;HRqFxQ?z$p-=$Ju|UYf42JM`J(dkcQqzOVP_Yks_Z_mQOoI*l5cT2y}j zlw;a2#Y+SEf#0_cTa~&sGkrssey*jx@0jrU;!|aLLqEKvU)|ihAHJ)+{Sfzxi)#M; zLd@{lO}>8TnS1MRa{GSzeuTTtV0V80>SlRQ^m=5$+j+zKPCR+inEq@+VfNg6cKtAW z?vNK=dbsu_Z5I4CCBf9+B075Go!Q%K2kI}{)UW^lZvH85`ulHZ`DZqM^+V5fjh7Fe z{gJ8vt?%P5`@H_3eGljCIQjG+b?!Z|ZTrziH`PiQ*rlZBM>h`YYvRgVWUl=CeB;QQ z&(9d(KN@p|iMzS)gY)N1UHfMs?(mOw+WfTHf7FcEPc^pGzu@{#_inlVpE>I)`@X!f z@PXOi4{19507cKbHIv0t>&)$Pa6|=*P*+1 z$ChN&uQ)p3^1P%T53i{jQPh5CkIJi$ec8fw_{d}vH+J}@d+I*%{lqISD4f{qrTe-C z#;wFN=0&8)Yk&!!2VAGvRH*@oAfy*To&LC z@`3+zZO)Ll&AcDKBenKd?eBhe^@(-2E*wASjw!wC?l^Kq+<(U&9Qt$A@%)27wD>J= z=%tyS#NGF`FK!r}bMNlfuf=>5Uvt8ak3O#Le{52hzdrY$+B>MA)3QlNJN*98AKMx% zeDCVZQbzuBpwr2R56$}dPXFYaZvSQbg=QSgc)fXGbo^!a^vXBmnz!klTYvdrQAe{q zChnIvZasO&gPXdHZ8@&T!VV9#{Q2(NS9V=^`~eg9*cazNm(c6`cQ#*q;a$z%-t*9$ zx^F$(qT-LwYb5z^>(px9=)m#%;EG#zy!z6}{Y}@*YO{3BqE9|vblnraSslI)_kHJG zhaNr@{Y+xh3wK>G>4x_XFKvHq)-ByH_xAeoRHK%kZF{fX*bjbvIj{cKLw`N@+Pu~+ z-amiz=+BcreEQ@4{kOd||MlJ4l^b@Xbzc+R{L7C1Cq|#z@?g84dVRIj`_0G^!GBqYv1c|)te+eJ^V)#ChfH&~*9aX#D?Sm&R*p`C}@ zMQ?sF~ zDndJbrWV`n+El;wd$kzt#L&x6+nW?Mfp6${QbljKBwCXb&yM1!c*p1zS!AW12Ch8_vYe>7Twa7}H$A zxUc{3v%wgI47N-?>qdU}XE3HEV<><$LhgC9?xA1|y=J%d)IXFwD;U$7G2(p;?k-Z> zS2!_qa8=XVForUg`fF|G{>iN!c_{ilkumg>1~eMi*Du=b>UICIn59~PAE7(?&Vry8<*e}{UYzaL`JH*F)T3UZ@(pYEP1qQT@a=e$*2~HZWH&#uXd0;MbKm1!FEzFprJt`%N&W6JsvNncB6v@ZCFu{h^+6 zyC~XJiZ5#2Js5K-uDD%o8G-xA|J-s!(D-Wp^W}JxNLHQmY8S>hW0>rS zp@?&ef;q8d>cU`5R|T`=y=N{7#?a`q=lOOSTZ@A+XsQDfTF+$)CQy&)(;keWA3fkW zADH@TaNARZ^z?AFUFhk_7_-0H|8L{A;5cKbkk8UqyZg7G5rO&Bn=ylMCV$p`Tl0xv z3|Voz)=A6_mwk&xkI>Hkx`Hvz{<=KK=PMaQKLJ2q-1W@=u%Oxgh(7HTr02>YJs!r; zyK(X&dDik%LJz)ZNGe$pSvP*Mt0~Y-3H5;}ro?LsEXaulr*yRERvEImV};rnXE$BeW+Td%nRCE4veV&9VF>U8&xi* zb^2c!s-!4L@?enU{UFKTQgWWJNeTH==%Nwel09L6?2(vG7OMtrCQ#~Hk}IX8mL(~clE#)~sg(4#B#%qU z1(sx^l#o9nKEFxHC6=T;ZF5mNTaqDC($SJUA|)*?$=gyQTDk#z7i)2z_DD=Gi}gP# zX>Caw(n83^^sr-)Bu7flw^%c!EXfWjNwp;PX<k0S<;PmT~ui2AoS4w ziOPjISYj&H$O|DcJ#24EEbC-I=rMgxG$q~5meTG*wH0qlx|`NLrXioPR3L3yIj%qN1Ju!BywC;(Zi-J1R4ZF`Dxa;Pu5-!J__Ndd*Uo&1yp7 zL}85Pw3P;_cy2?pYxJe{RyDC~^_DEgD7Mm>MbRc(gQvdyyUn^usnxD`C5tgiyL4um z?W(`&ywx`A2gzcLV#{Z-P~rY+ZrN%`Lk)#7imd^Vs{LiNdPx>z6k7u=7HOs2XkpnJ zCs~Y9Y-L(3iX-KQ%~~v3j8SZ5F^if_x$(iI9$DvEww{tK#wfN1G0TkMqo1YBw^`dI zi!q9=!OWu3O19o^|JL_5>nF)#jKa!h7Hvl;qo%Yu`J2s(r-=}SF$!x4q~e(sUB6-3 ziQrv z9Bzd*iX_(fI<;-;8#b#%vKXU8BZpaLZsZsL{gcglRk9eP*t&{Y&OB^j<>8-_#Tdob zXvNmv7j`7utj3LS5rr{|t*aq*yUfT_9@?yA$zqJc8pAAS9@?xylEoN>bq%xRc2@gf z-HGNlt3X~pnn$zqHWjTy``qmj~Y{4SgItYk4p zu~o#ZM4YLY`;Iqywzq73AX$u2Y!x%hwDn2$TZ?SgQORPAV(VIFIU{eg&ZF%l3S$&j z38W(D$;0BJ14nIE56NPT!YXA}ZJepBe?m8G)_BQcjKV4d*6pGOkga3AmiG})LGeXf zDp`zCqA?R!?NM3KZOK@hwNA1aqu83oEN3)q)^W*VjKZ32*&+}7P02iAvy$mH3xzQX zYYwD#M!oW6T9VBwmMq37thvle#F=cJT7Tbp;#~>8XirNPW0YuIhpTopuK4+%$8FZv zlEoOs*7eMCM#E+`qpbl7V-(grNFBNHN8Xh-YnWs)Mq%B+EV4yqV*HNLHtTlDVvNF? z53C(S+Bw*)4DFIkLHShoUe?;M_Jaxg8yipF1(#TX?TE0|?Q z<8b9wi)>blL|jB+jACmgr0O2qX7x@aj`%H3>R7%FQn#xP&fH(S4t`{_#wJ3H!WhNY z?T`vvbbalBHKT3T(nOMp-zBWtx&ut0~h8QW(4C0UG7qH!Oy%-o^$4@fu}o{F&Dtzkj8USoidkkfDDpNdE(sS=7^B#F z6jD3#vxfAn)!54UQIf?N#nxlYGHvBuo0@L3W=R%f6kCroi=yGeK~Dm0)*X_?7=`r& zv)njSX}+VPwat1(vKXVV{sXL?yAIk z7^B#FMzOWC!JOJQYo%l{MzQs*WeXK;^`gN)Utq=XHOXR(V(U4@R-F}BZnaroN)}@j zThBAg%=w)?H^p_dY(-r__Qn6T!>DxJ(Z2wx9mD?}eAZ*Lu97UqD7MxxD-q`?9NMG5 zWVW5|15h4l)v5^<(z(2l5=6^$8^#TX?TuQJOVDW_WR zIcBqNlPtz4wq9eF84X(XY}PB1#TbS4I+Dno}7?rh& zS*bWvFN$LFw@DUZRMuul!r9s{S%gtpTbLEv)~}L97?rg(f-Uz&A{vA-S>lgJZetcL zlQeepH^2Ty)bK@X0u~j*faUm8m+wR3cD2Kq^7+~&|9RYIb(Ji_sJ6BZ6kci!m-ODB`SF#ABvOZvz*{*R7|He=@S*4Oi7`0s=S}gMLz2hx@ zuvxcB7GYFdJD6p*>xP==_qAEiN)};M)<+i0^vh;#lq|xitewm<+tq*8=e=y!9?2q% z+OA#9YL7FutIaDF7uu}jl0_KR)^28*?RrRi8eukljk_2ZQ3#{5K88fh31mwYla(Y{ zgi%?aKq7wXm3sNYg7X*Iwt7kyVbpeg%B)13$=2V`wBKv9vLuTzs;$o;5qHqUQuAXCW>LGMafo8t8YNkTQCZ(YVrNv*S6jy0wx&oHVN}+47ArU!OC*ahD(g@L z)&r777_c0F82Ec;(VqrZ%UUq{^vTWiT;nmlaC;PLdQfV0a= zJf0zzP8bU*?-nHYW_U*=d%XCw$H^Wt=*`a`UX(UDuW*KE*bwD+S`6c8!?O`xJmO6F zp#{^6W)<`+DVlx;BnpP2Ta8B0B{dx3FZVAf%PJ_#!!fxiAO1Ujp9opV9YlT)8!|G> z;~9leIIxHSU2z1>?6d$KcAo`YP<;${QSs21Kd0~9LHL8taCO+^ypn?aVff3;$Q8ATK1C z?29g@4293?r4TkLd?}njg9>I3n^sgk1H)D8GpJxrAaX!h?P7FO>d>F6&MKHbzCcNO zG?uT(fgt)?i7SajnsWw{8jr`yJ==4K8Z&1UJwYMwBH}%)pv+rVR#G^AW?4ZgVy5T` zB5?!|+%urqVa_a?FjcjXLwzOxp0|C4TE|!VVQ!mNcpde!bj!Mwl~>}>#bQKC#7`M) z)MapZ_}tNjI1w?mmK9jP#KZE{%*bIwtZS@) zLQ(NtPoJdHYiD5+EGqF}z_2YdJ47zzAoe4>aC-LXQZ1SlmlTvzu&M=P^${Jbnnj@c z2FfK=~T3j!N!5>9{F zpq@895EBgA<>>q{*X)2|J{G_I$Qq;O3~gO8M?@E~BJs57AhFaM*p3U7Phq00Oc73s zTm`Ig@3P`IV7#kJmRHN_o@i z+&(#%S4&}Jl%g!movflN9L7?FQ1F~?Zp%Z(J2XIzcxVgB2`#9#XF_%a;7n*{On8fRcJrVaqH|GUx)I{;-Bcgyk|WS&BHFk8 zNkQ=pfpLT_#8uO+bDaRK>F3-P*-buoU4a2Qca3&9&s~=p{4?JBSbUSuut06FeXRF7K;@N62L+QM8ciwne!3qyBRfN5Hvvfp2 z*fEU&3JhBWs2!OIAk*_Re8y+a)MrYw+jyqTz=oeG-;TzaGR+X3*&UVD<7Y~aa8B**$i~)W9w~V+D4foiWvn(`i0U zH+$!F;dWF`mk}6@)8*MQI9-O>^mBeeU(Dh|gV@8T@eXR?L`& zy>5ppEF>@jVS#qT!a^*6akF)LkM@)&bJo0a`tNK4_>T6TtqVc%I9o-Ic%7{ZGoFrV z{wzboPj1b0`M1=W?w!6*@)euu$e9z*rh`qRXWz4?hO_BXlWPX+tb#9;oO>ra^_ULP zBLsV}ny)*pE((3s(GQ^kj!=aLnC9(U1=R_9t!g?E5i@~)dM7D4$??MgVKr5U61uva zmaghhW&<6!6k+}96B%Tx!hPGn_~O=#?!T04T5wMPw zjDRxTw{uQ;bsIV@gCVy2krV|^Ns+L&`;kzl`w`#7S_7*Zl--DGfPw9(25vW{8lc%4 z$M66{{aFDsjU!@AMRM!nP!TdG6(c4B?^=44;b(zz3ujC$@^~)m>!F`|>7o9>qAgW^ zl*kr4ULM#&el+h?X%7k~NV+XWL%VqKBFgK@@ZyI)9BNa^t)a<*e`3rd=#K;m>a z;1Ucut(&&kK0hKeC8l*2I&HJSVcGFrwd=S5^+A~;d)}7YMr@g7Cs5=x6?hHS9BF1Y Mh??kp14r`z3q@*)>i_@% diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqcompiler.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqcompiler.obj deleted file mode 100644 index aee913f057f653082b16899633d4050081cf8fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120503 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 z zD=Ad-mK7{5EFX=Vo2fbSi)(RV{t_rE3iB(=i+w9{^GT7LUs}4PxKN3$Tvk=QtRR-} z4hGzJ)b5hT@;i(zSLc_N@q1z|BZ|usD(F6G%ZR`by^FnT1MqZh4 z9*i-E7F?@^^*_Ezqi9JCgC(QUVK5e)qcE5>QW^$hS`VOSj60@$qnz#{YguifRwJMK zLZfb_HJFk3){wzjZ4GavtTm+8q}K1V>dguTYBVhrba3-R;TTN}1+6u+)jRy!2xuLc zzc{aWS!`k~KNE1urv{|Wkf6fq=+Lc(1PyF{i;ph^Hoaw#2rym**fLD4@vXvywS>^D zwF)zJNo%pm?r0fi>WY?OqNTDMT80U0V?t|bt1zuYu~41*i4(0;TL%W1Jmn)Q0Txe< z(+sxs^n|{kvVQc|amKv36w#S?9NlM~MrWfgz6I_|zq_mVIl`9K%+ZAR98IBay zo0j2mGHfALmNSAjd9+!gn@n;!vNJsy>1nAV^n9u=rOh(h_-MmX@YhQEYP2NFk(BIB z!Fwxi_GCC=8iQH4Om{aSISp;_N`hgNQ?yivA*#$QuQv;6V#`J3m+diygET@D;p*fJ zM`}vCOLb>^n9HUa!ZdEb;c1-LospT6k?b=3Ft%Jbm*jLLJ2R8KX=*?$0>jy$4I5?i zi*?=@Z+ddJ$C;hQmPHQr$}C4#W=2|ac9O8kZCOE<%54uUB*vcPe`g z>iaB5hC3xYEju${bQuGMC3a?X;3|&p4jQ?8B<56TIH^^lYam z$q3%6OE7>`XQnqLB_)-CJmWcL9@b3ZfVky8J)jBR)O1gZ$0On~63OvY=&%e&w#V)C zCZ~&mX5`R_#Q-A~Z)$34MuuB-H-}M8iD3KumDA2a2Jk$NjHEP|+mmd$OmMQ;0waMY;CV~Q&+gOhKh zoU_dy4RDsjlbw>3lA(&83W|pt!_nsJ*`J_hsA(x_X=1b+`4b~dhtZPkak^Yyf#ck8 zd$^6lj}E3aIVIVX?s8^w%(;{s-grs!&?b{MZoMKmknBp%PEYrwdxOX+I+@K_lAR8h zD>KELku2imgmPc-OyIEjD<{ubMX{c{oUSBiTB?}H93nSuIXN{boIM^}Q^!yZTjb?| zF@`@edh}K$I~}Rn_(e#O^O@%^8{^#ZhQG4YMPynym>TPH@wZr4I`8Akl{|{$ao`0v*CePY$N)XLosHy3o{@)+pT7ZEE|Ehk}YF4Eg}ELXp?On zZ?plcLPknbvQxU?;mEmR63=+!r$!`OH+hQwF&uatnW@Q{Y3@|9>~J3%wmBchLdOoc zncQ*4co2beU_mnmL(1#PPR>e|$4N#DcnTXiV~MkF#1PN|t}<V!Z{f3`bICk~1UI zC6+WJJ3Q8Tgd1MCX(C!fDZX=SgvjkQ4(5{Gj&xUw%cDAzcrF@k;E}{O1%-0Yqn4vE zn#7QR*6{a$WjV{CCV7*c*?8GP?> zqcF>;j3LPx2*?*Fo}=QvVTnx`J>bf6qasT800L)IWnE(I) diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqmem.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqmem.obj deleted file mode 100644 index 41f196bcc180500a4e184d2962fa4ca77dd4621d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1298 zcmah|O=#3W6rOaqN(*X>D5yPzrQ#o?Tabc_#bh_xHki02*{)R<#%waXrcE|!l3lDQ z$R50S(Q7ZB6ufv5J@qDd5v3RLEM5c;B300X)S1ns-7X7#FnRBN?|btmZ{}GK4}gD5 zGxbv`0FHrJI4eMA)JD_=zp;^K5|8T9F~C`<)@n@ZNn`^XfBSem7|U}Jx)V*h&4hOl z8?T1|*uaYjNnytpZVlqS!<-NM@J4a|XUzH1&oghYgfkaOiLPYv_dDfK2mqYSvg}k* zkQKS8%DO6)3-h@QENEq@mqob*WxWKi%c2DJ1*sqxWl7U#vzY-Ys$PHO%lpPqC z%aSIPOBxiV{Nfx`q>7{r+(~OSBiluaT?>q0ZB`YbxYjgW+tiSQj1b}CqEr+Xm9iq| za~U^mn|=`Wp{icN|Ii1P6!Ds%N_vJ(;|~19>m^=3V8%&9in*$4G;9;j87`{&fwzp` zK`-P&-!NB<1`4a;YRe7+xcJF}LwKcofx}%u zezZwR2e5yni$zm!Cth^6j(;jV`F7!}I>MiL`ex+)y`e<^c{bnqv0nLz$z9=1T#>V_ ztko z6hp>_?D#y(tjAU_hur6WoZ&8qj0@Q(|LfJs*uoBO;;xW0#a&CV7@0_1tYhRnMbdz! zh)9v)9mJwYs*7+vLrLx?#gMVwEBCPrq3!yx9w02dlL92Tw3GNBP-hTy diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqobject.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqobject.obj deleted file mode 100644 index 68eab63ed62ad38a93da8f8482f066823c68574b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89158 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 fd&__7Kr-6$-pWblT@w`hkPHyXi)0c(0YMau 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 - - - - - - \ No newline at end of file diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.log b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.log deleted file mode 100644 index fc4ba593..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.log +++ /dev/null @@ -1,14 +0,0 @@ - sqapi.cpp - sqbaselib.cpp - sqclass.cpp - sqcompiler.cpp - sqdebug.cpp - sqfuncstate.cpp - sqlexer.cpp - sqmem.cpp - sqobject.cpp - sqstate.cpp - sqtable.cpp - sqvm.cpp - 正在生成代码... - squirrel_static.vcxproj -> F:\Magic_Game\project\Magic_Game\m_packages\squirrel\build\lib\Release\squirrel_static.lib diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.command.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.command.1.tlog deleted file mode 100644 index 73cef2eb928653e9efb3128745a73a6b8bed1b3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14558 zcmeHOQIFC<5dNM`{0|r2JrXrOkoZ7LK|E*?ddKBLBnq5ff=IYC`s+Qv*)0gA^^uy~ z7t(G!?aa>3Y`@M-m&e~9(MAIk^wC5IU4)pjZSp)Kb$}rfyytO??K_Pj-D8y_h=Y zoiR1=l03hswJ3i~Ygq=cOsR6Vk@?sAc*kqrzkR1~eb>V+ z*0kOl8}iO*O_O1xy5U&^Ke_)($s6|kut&e8wKvq!tiC?rxTF1-l(WjH9qMQD+Pt&o zEV4g8%@QfcmO7uDXXBcX$7XNDD`u&Q8Bg|{>G2|E@s>iG#n+@I%!mcg$2)l$` zMQ{G6ie2S6Q9XuPv}5nIkzz0Rwo~k-*sCmad8+tTj1m6>b|uV1EN`^Pd?*AHf8_1M*RmFjR;HH{R7DGE~* z#+r(vu>4oQe`7`USY}z|wK7S59rE8kRSQ!sOqt|iCRvOT)nk{f)aWbrQtYMJOR<+* zBXWpa$M{e^W+kk8ZC914@}uwu25QX_WK;NNH5Y%y6p#3Mya^u9799=9M5UTfoiMDf=X1TmQcaSh%~%PiFGHx9+2S_k;ZS$$cuI1OY zwC&5NU1;xvyv?JudLwT*lXu%l@9gBOZ>6^m@+-a%Uon?oxANI)_!{)`=H=51_gVhm zOZWTm>!thEUC5vDy-WG7yWxMs|8Xau+{@3ce5YkQ@Gfg<)lyo57A;I$vl)8bvOnfB zrWmQ+i+$tI&oV}^2FrFmzF6%|VK4i^wyve!d-=DYWv+UwI*8@{Qn5UI`f>RA$$fIa z$sGtlsuG>gl8O0Br9@#_!L})>`zt zA7iXTR|-!{NBJl#4QAAxyz$)N=^L@PnOGh6gZ38Zdm4Mkjl$FNp2n&G`_>w1JZ(L! zNg7t1zb$sK`(Z_SHt1{rba*_^;ydL#dy82NKV~hf#wvSTU2mrJBK*o`X9wQu^`1YI z(Z;HR{WD!rbVp(-ZP=T6wa?-Od%xN5X4uy)d*eyGp@qyv@Au;zW7(R8dy{A@W6=ejHLe|v3VI!e0z7RC?WOTMG& zwq!S~ut!;8mhvaW7VOUNb7?{Js^UCuF@xYMZ&f_i(wnM1S$EX8vVK3vs(F+?SW8d% z({1c=-PVM0_ujl!E1rhFxRBjsCEhOlUAw&`^avtcTeBU_&qm*dbX{mQBkQMEU2ClE zX{DEu_J?i@7bff0R@RHP%nR59R*?3oY-ZoDUJDJ7P5zX~c*8F^`)Au&LzLC`j)|StIop<(GHk|kn8?YGldQPXs z+i!*}iO(Eh#clt#;fY~ZY4kAGknp_p4K>#9d(=(@!3YJl3g{nmzaA&+O!}tO%vBj(M82#mTXZ(}Y-V?l)*WJwBT}mfo0? z$7g>3DBJeGwWM9zmiR(S`b%#>Q?^W!*a_*-BU$z#2K zN2j)mdSWacCEc~1JXY=e9w-za<%sjRg^z>C7kMo5Sn)O=d90Fl@evC!Vd-kwYDSXB zI_2Iec`V%L#SPp%E1O!WMs}l|Gv8krC9OMvq7 zM{H>oQcD&dZ!O<$YX_v3EbJiCFr=19EqO)KK)p~!>NREI+A2zFDY6<=k1RZ%GxY(<%s2Me237gDO(5)uHN-5Sor@Yf$HPvTDp)jN=1# zEqZU%QV+aLuGd6rhSUtTe%@NEkG0p%RaY)2C_-&2D|O(Yszhpr)XX{RCQjLR(B2z+ zRxM7J)1GCEr{!-;YQ}<=sO5WY?SRybg&mNZxs8G}elA4LE0I8YQzFX-{)l`Ob*Q$^eAvF_c0;w5NGtiHz?HHw(k?!%jvzOEisToo; zN4cL=-fq^5ckM-QinZ6`X-gv#wSTES!`f@DZs&PUC-{e?W^$E7yS(}Pp=NZwA;d&c zVX4&9&~C>|8$?1=A#KO+DLXTno^`-cQ zs%B5}v!BXlJ<)t6H)l^cLAmuxs`o(=iEI8Z>hA2H{w^*U5yL0O4r?!fcO^F$KvMJhU zBeE%ZK6fr&9q!KJ_SKEETEEGr~(aR!3(_&A3#q$9 z-JQq~A-C&kfz&2j%+c~hh)R}S*&O#by&c7pL&-OJw|t`M=?-d< zl+`pe{0Kb5=I$Kn4$>W@JI36G22JoD=nne~d8#5q6$IwVnI~tS{FD35eUjSRAKfqF z#YY{#G;f_o1a*A4aD&3elS2%dH9OksyQMaUY6=TsJJ-T^e#v6@EiBI4msk0{tvHOSUo!h|T2ru@-YI9|`8knI~tSd@8rWJULeC zqpVE}x0m0sH#1LOC%Ty@ubtmRcF=oOZN1mJ7J6ELiTGdUi+>5zA?LP zAI6yB77QaN+MWtR#KyU9~C%0%Ng%dlo;{r^j-GaD(cxM%QG3tqT2aA5GEvxc7rF6-5#t7 zGKg6D&Zq80vZ&lio}{1E0nanN+oa#7? z)xhl9^d1yAe0CP7N>!rG#yBkp!q-XHhW9~;&yiBZw_zeT&_b2v%7}l0`ovM@rRw`*CW&`vo$EwS7nyy{&>AYx`)QjS!J! zZ6DV5`O&UMvS>Ujb*ZkJ-(7kc=^n4!LXt&6+bgfNla7i;?guo*cr8PVz(eT8oRFFK zDl+NYYeWV}7UA|eYx{uz)Uh{`MIR)Z-KxJgq8ox5W`Xp{Z|JueW0FPR<^I5}#PzV2 z+)3}}yIS}JOdBeNr|Z1NE>~|6qLI`r3Zs*cV4sxJm?9Ya*tS+wk7?Vr>Amq+_H>G; z=g6hh2n=#5wO%2YLM~;z1GVri%bN+F8?aJ)4NMHVly+yBe9T!(t6g8)@(AQo$fazh zIt~?YEbM?>%8xR5WyXkH%7etV9wmka)mCWWVfSdGoKef+v6j~BIy`|ZT1bpJk2C7# zILW1GpN$Z0BbPGHV@f#haM1t5G21oSuHhuGS)QDO!}mlvajL zj1%|n$fdO8B=Q*J-jPdb+27<+JY_(|oAItXMPBsBrS!>yQ1RvzYr=_;iZ`e9RDWzy Qulh3mDe=I{(+Xez0&L^!tpET3 diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.write.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CL.write.1.tlog deleted file mode 100644 index 04e501eb71b3343a9fca9b332b72e1c095d17b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4410 zcmds5K@Ng25S+7#U-1FnpcaFIAXVeR=tq3JIt!x3$W=ERLV%{*%(T;;F8A9R8Rj^l zM1m!9I9&Kl`0d$Rqd|og-yL?Ny-LQ^jB!}Eqj&`N4cKDO5gT3}#b`^y*c>xP*SxNO z$CHvnXc6Z~72$H6LqQf)VXCMUS-*la)+j=@AfA-^TPnho5zmG?58O)$Z?6cOtlv@D z8cGf-70ppaMfJH*PrlNqCee4=<^(Behr#p52+HvZ1X@yg)9b3%eoob8OFf-cX*1M1`RYdBlXKC5P1?D~HcZ&nYwWso-j diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.command.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.command.1.tlog deleted file mode 100644 index 6f3f7b4f..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.command.1.tlog +++ /dev/null @@ -1,10 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQUIRREL\CMAKELISTS.TXT -setlocal -F:\App\VisualStudio\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -SF:/Magic_Game/project/Magic_Game/m_packages/squirrel -BF:/Magic_Game/project/Magic_Game/m_packages/squirrel/build --check-stamp-file F:/Magic_Game/project/Magic_Game/m_packages/squirrel/build/squirrel/CMakeFiles/generate.stamp -if %errorlevel% neq 0 goto :cmEnd -:cmEnd -endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone -:cmErrorLevel -exit /b %1 -:cmDone -if %errorlevel% neq 0 goto :VCEnd diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.read.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.read.1.tlog deleted file mode 100644 index e57eb96e..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.read.1.tlog +++ /dev/null @@ -1 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQUIRREL\CMAKELISTS.TXT diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.write.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.write.1.tlog deleted file mode 100644 index 0bca78dc..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/CustomBuild.write.1.tlog +++ /dev/null @@ -1,2 +0,0 @@ -^F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\SQUIRREL\CMAKELISTS.TXT -F:\MAGIC_GAME\PROJECT\MAGIC_GAME\M_PACKAGES\SQUIRREL\BUILD\SQUIRREL\CMAKEFILES\GENERATE.STAMP diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib-link.read.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib-link.read.1.tlog deleted file mode 100644 index 219dd000669889da660bf9027f446d828a643108..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5388 zcmds*%~Hc46ot>)8DFIf-MI_oXQCvj3AO5U?2Gv9>bazjw$K+i(*=b95Sy)m{U~Y&pi`Db3PgVc!MM*m1_0p9X;~F4Y6- z;?v9iN6rvAUrejoaFoq;IL+4Z$&%J+<0}4sj}6!AxY|z%CU+tXBy(bHp7CJ&x5#l# zJUJGNfw4J@(bZ(KGu(-BwPYH3d;Q)wjToQB;;UdhT8m9L1&k zUTeQz{++E`+(a?{iyE4!u&Uv8T!WY>LDg)lcx6|!^ZRG}(arwUu{ohoFxd8&|Ix@XzaI$D@T qZpE^vpRMl-Cz_lY+(ciqcZVb2SNzp2tF-L7~f5O_D>f-4bwJ`SEcCayh-&C~V$i3kJn zhUisBE5RCPG{=(=eH6Q#|F4nJS3_@~Dma;$p(it=jGJXXNc@62UM(v}a?vw4du8kj za*`UZl<_Lb>CEo+?Ke&tKgq?r!hDn&)hLTqnqX<(>Y8U-t4lPBiTz$zyl#uy+GF=8 TO_kKow(47|%e7iecH;L3Pa>mG diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib.command.1.tlog b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/Lib.command.1.tlog deleted file mode 100644 index 9fe9502b24b2346537fb0ff0e56bda5b67c6a5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3860 zcmds3O;3YB5PfG8|AXlds2Agb8@r{n3bX=kJTx|@G0}sbJ^0(zHwz|}rKd45nUD=E zv-8-;&d2-ue83zDb|{e|#}XcU-c!yqzFnin3O9WAXiu&x>9eMf$8A8#&~R;oJ8Xzp z^U6^0jSKSvvr+4C{hkOd@!GJfDZK=1*P~^$G+~e8m-72dOu1Lb-F}$h=KRQLcO#9^)g)n^yv7wRVtd6S4tT~3-ta`*dvE(Yr7HhbgEp=awWzT=(<6@SA}wyL kNVJHjwSX2m?!sEc-~CUEHr9Exm~qY5BF5ELi#V)v-v{A3{Qv*} diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/squirrel_static.lastbuildstate b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/squirrel_static.lastbuildstate deleted file mode 100644 index 6de37a3d..00000000 --- a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.tlog/squirrel_static.lastbuildstate +++ /dev/null @@ -1,2 +0,0 @@ -PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.39.33519:TargetPlatformVersion=10.0.22621.0: -Release|x64|F:\Magic_Game\project\Magic_Game\| diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.vcxproj.FileListAbsolute.txt b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/squirrel_static.vcxproj.FileListAbsolute.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqvm.obj b/m_packages/squirrel/build/squirrel/squirrel_static.dir/Release/sqvm.obj deleted file mode 100644 index 7c5affc7976ba26badad53202e0df5d714a52e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159035 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