New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add vector engine plugin #578
Conversation
Update the VMMaker build scripts to add a repository for VectorEnginePlugin, using a squeaksource mirror of Juan's repository for convenience. Development source for VectorEnginePlugin is Packages/Features/VectorEnginePlugin.pck.st from repository https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev.
For gcc this is not an issue, but with llvm any compiler optimization results in a broken plugin (various symptoms). Add -O0 to XCFLAGS in makefile.inc to override any previous definition of -O in CFLAGS.
I went ahead an added the generated source VectorEnginePlugin.c and updated the plugins.ext for most Linux configurations. |
As far as I can tell this is a safe update. If no objections, I'll merge it a couple of days from now. |
Juan Vuletich reports testing with VectorEnginePLugin: "I've tried it on MacOS, Ubuntu X64 and Windows X64, running on a fast I9 MacBook. Also tried Dave's 32 bit interpreter for Linux X64 on the same machine. I also tried Win 32 on a 2010 Atom netbook. All them run fine." Looks good to integrate into "platforms/Cross/plugins" |
Prompted by notes from Marcel, I realize that I made a mistake in the patch I did for the VMMaker build scripts. I want to withdraw those update until I can check with Eliot as to how best to handle Cuis underscore assignment characters when loading the plugin from either Cuis GitHub or the separate squeaksource mirror of the Cuis GitHub repository. For this reason I am going to close this pull request. I will cherry-pick the actual C source commits so that these will be available for general use. |
Confirm current is working with: build.linux64ARMv8/squeak.stack.spur/build/mvm clean on Aarch64 Chromebook 2 Thanks much!! |
…ethod [ markAndShouldScan: ]
…thod [ markAndShouldScan: ] KILLED by 1/10 test cases.
Primitive suspend: revert the semantics of #88 to Andreas' revision in the early 2000's. #88 removes a process from a condition variable, allowing subsequently resumed processes to get past their condition variable. This is a bug, but there are images (noably Qwaq/Teleplace/Virtend) which depend on this behaviour. Provide #568 (primitiveSuspendBackingUpV1) which backs up a process waiting on a condition variable to the send that invoked the wait primitive, and which answers that list. Provide #578 (primitiveSuspendBackingUpV2) which backs up a process waiting on a condition variable to the send that invoked the wait primitive, but in which case answers nil. The presence of the three primitives is indicated by bit 5 of the cogVMFeatureFlags. DeflatePlugin: the update primitives can run on the Smalltalk stack. Add the FileDialogPlugin from Qwaq/Teleplace/Virtend.
…ethod [ attemptToShrink ] 10 test cases.
…thod [ attemptToShrink ] 4/10 Test Cases are NOT EQUIVALENT
Update the VMMaker build scripts to add a repository for VectorEnginePlugin, using a squeaksource mirror of Juan's repository for convenience. Development source for VectorEnginePlugin is Packages/Features/VectorEnginePlugin.pck.st from repository https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev.
Disable compiler optimization for VectorEnginePlugin. For gcc this is not an issue, but with llvm any compiler optimization
results in a broken plugin (various symptoms). Add -O0 to XCFLAGS in makefile.inc to override any previous definition of -O in CFLAGS.
Not included in this PR: VectorEnginePlugin needs to be added to various plugin.ext files. So far I have tested only X86 Linux, so this should be the subject of separate updates.