[OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
 

Ronie submitted a pull request that fixes the build with cygwin for win32 ( #311 ) and I'm curious if any of my changes here are still applicable. @ronsaldo could you comment on these...


You can view, comment on, or merge this pull request online at:

  https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312

Commit Summary

  • Fix function call declarations and return types (x64-msvc2017)
  • Fix unresolved external symbol 'alloca' (x64-msvc2017)
  • Workaround _controlfp() does not support _MCW_PC or _MCW_IC on x64. Expert review required.
  • Add architecture define _M_IX86 to ABI (x86-msvc2017)
  • Workaround hang allocating initial memory (x64-msvc2017). Expert review required.
  • Better 32bit CMakeLists.txt for SqueakFFIPrims (x86-msvc2017)

File Changes

Patch Links:


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312"}}}</script> <script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } }, { "@type": "MessageCard", "@context": "http://schema.org/extensions", "hideOriginalBody": "false", "originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB", "title": "DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)", "sections": [ { "text": "", "activityTitle": "**Ben Coman**", "activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png", "activitySubtitle": "@bencoman", "facts": [ ] }, { "title": "Commit Summary", "facts": [ { "name": "a25b90f", "value": "Fix function call declarations and return types (x64-msvc2017)" }, { "name": "530e788", "value": "Fix unresolved external symbol 'alloca' (x64-msvc2017)" }, { "name": "291be23", "value": "Workaround _controlfp() does not support _MCW_PC or _MCW_IC on x64. Expert review required." }, { "name": "8231b96", "value": "Add architecture define _M_IX86 to ABI (x86-msvc2017)" }, { "name": "e58c5fd", "value": "Workaround hang allocating initial memory (x64-msvc2017). Expert review required." }, { "name": "e37248f", "value": "Better 32bit CMakeLists.txt for SqueakFFIPrims (x86-msvc2017)" } ] }, { "title": "File Changes", "facts": [ { "name": "Modified", "value": "[CMakeLists.txt](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-0) (43 changes)" }, { "name": "Modified", "value": "[platforms/Cross/plugins/IA32ABI/ia32abicc.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-1) (2 changes)" }, { "name": "Modified", "value": "[platforms/Cross/plugins/IA32ABI/x64win64abicc.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-2) (3 changes)" }, { "name": "Modified", "value": "[platforms/Cross/plugins/IA32ABI/xabicc.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-3) (2 changes)" }, { "name": "Modified", "value": "[platforms/minheadless/common/sqMain.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-4) (1 changes)" }, { "name": "Modified", "value": "[platforms/minheadless/windows/sqPlatformSpecific-Win32.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-5) (9 changes)" }, { "name": "Modified", "value": "[platforms/minheadless/windows/sqPlatformSpecific-Win32.h](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-6) (2 changes)" }, { "name": "Modified", "value": "[platforms/minheadless/windows/sqWin32Main.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-7) (1 changes)" }, { "name": "Modified", "value": "[platforms/minheadless/windows/sqWin32SpurAlloc.c](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312/files#diff-8) (9 changes)" } ] } ], "potentialAction": [ { "name": "Add a comment", "@type": "ActionCard", "inputs": [ { "isMultiLine": true, "@type": "TextInput", "id": "IssueComment", "isRequired": false } ], "actions": [ { "name": "Comment", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"issueId\": 312,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}" } ] }, { "name": "Close pull request", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"pullRequestId\": 312\n}" }, { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312" } ], "@type": "OpenUri", "name": "View on GitHub" }, { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312.patch" } ], "@type": "OpenUri", "name": "View patch" }, { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312.diff" } ], "@type": "OpenUri", "name": "View diff" }, { "name": "Unsubscribe", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 418560478\n}" } ], "themeColor": "26292E" } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
 

Hi Ben,

On a quick glance, some of these changes are still required, particularly the FPU one, probably the alloca one.

Other changes, such as the #define BUILD_VM_CORE is actually wrong. The minheadless builds the VM itself in a separate library (currently a static library) that can actually be embedded in any application. The public interface for this library is in include/OpenSmalltalkVM.h The problem in windows here was that BUILD_OSVM_STATIC in a previous version was BUILD_SQUEAK_STATIC . After a commentary from @estebanlm I changed the squeak_ prefix for the osvm_ in this public interface.

The public interface file is intended as an stable standalone interface to the vm. So, dependencies on sq.h or similar should not be allowed in this file (In my opinion). The implementation for this interface is in platforms/minheadless/common/sqVirtualMachineInterface.c . This header should be something that an user can copy to /usr/include . osvm_main can be used as an example on how to embed the VM in an application:

OSVM_VM_CORE_PUBLIC OSVMError
osvm_main(int argc, const char **argv)
{
OSVMError error;

/* Global initialization */
error = osvm_initialize();
if(error)
    return error;

/* Parse the command line*/
error = osvm_parseCommandLineArguments(argc, argv);
if(error)
    return error;

/* Initialize the VM */
error = osvm_initializeVM();
if(error)
    return error;

/* Load the command line image or the default one. */
error = osvm_loadDefaultImage();
if(error)
    return error;

/* Run Squeak */
error = osvm_run();

/* Shutdown*/
osvm_shutdown();

return error;

}

A part of the better 32 bits detection and configuration should also be integrated. When I started the minheadless VM two years ago, there was no stable win64 version of the VM.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"PERSON","message":"@ronsaldo in #312: Hi Ben,\r\n\r\nOn a quick glance, some of these changes are still required, particularly the FPU one, probably the alloca one.\r\n\r\nOther changes, such as the #define BUILD_VM_CORE is actually wrong. The minheadless builds the VM itself in a separate library (currently a static library) that can actually be embedded in any application. The public interface for this library is in include/OpenSmalltalkVM.h The problem in windows here was that BUILD_OSVM_STATIC in a previous version was BUILD_SQUEAK_STATIC . After a commentary from @estebanlm I changed the squeak_ prefix for the osvm_ in this public interface.\r\n\r\nThe public interface file is intended as an stable standalone interface to the vm. So, dependencies on sq.h or similar should not be allowed in this file (In my opinion). The implementation for this interface is in platforms/minheadless/common/sqVirtualMachineInterface.c . This header should be something that an user can copy to /usr/include . osvm_main can be used as an example on how to embed the VM in an application:\r\n\r\n\u003e OSVM_VM_CORE_PUBLIC OSVMError\r\n\u003e osvm_main(int argc, const char **argv)\r\n\u003e {\r\n\u003e OSVMError error;\r\n\u003e \r\n\u003e /* Global initialization */\r\n\u003e error = osvm_initialize();\r\n\u003e if(error)\r\n\u003e return error;\r\n\u003e \r\n\u003e /* Parse the command line*/\r\n\u003e error = osvm_parseCommandLineArguments(argc, argv);\r\n\u003e if(error)\r\n\u003e return error;\r\n\u003e \r\n\u003e /* Initialize the VM */\r\n\u003e error = osvm_initializeVM();\r\n\u003e if(error)\r\n\u003e return error;\r\n\u003e \r\n\u003e /* Load the command line image or the default one. */\r\n\u003e error = osvm_loadDefaultImage();\r\n\u003e if(error)\r\n\u003e return error;\r\n\u003e \r\n\u003e /* Run Squeak */\r\n\u003e error = osvm_run();\r\n\u003e \r\n\u003e /* Shutdown*/\r\n\u003e osvm_shutdown();\r\n\u003e \r\n\u003e return error;\r\n\u003e }\r\n\r\nA part of the better 32 bits detection and configuration should also be integrated. When I started the minheadless VM two years ago, there was no stable win64 version of the VM.\r\n"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443397814"}}}</script> <script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443397814", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443397814", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } }, { "@type": "MessageCard", "@context": "http://schema.org/extensions", "hideOriginalBody": "false", "originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB", "title": "Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)", "sections": [ { "text": "", "activityTitle": "**Ronie Salgado**", "activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png", "activitySubtitle": "@ronsaldo", "facts": [ ] } ], "potentialAction": [ { "name": "Add a comment", "@type": "ActionCard", "inputs": [ { "isMultiLine": true, "@type": "TextInput", "id": "IssueComment", "isRequired": false } ], "actions": [ { "name": "Comment", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"issueId\": 312,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}" } ] }, { "name": "Close pull request", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"pullRequestId\": 312\n}" }, { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443397814" } ], "@type": "OpenUri", "name": "View on GitHub" }, { "name": "Unsubscribe", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 418560478\n}" } ], "themeColor": "26292E" } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
In reply to this post by Eliot Miranda-4
 

Okay. I see my BUILD_VM_CORE was to work around an unknown symbol "_imp_osvm_main",
which I guess your BUILD_OSVM_STATIC fixed.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"PERSON","message":"@bencoman in #312: Okay. I see my BUILD_VM_CORE was to work around an unknown symbol \"_imp_osvm_main\",\r\nwhich I guess your BUILD_OSVM_STATIC fixed."}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443418737"}}}</script> <script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443418737", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443418737", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } }, { "@type": "MessageCard", "@context": "http://schema.org/extensions", "hideOriginalBody": "false", "originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB", "title": "Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)", "sections": [ { "text": "", "activityTitle": "**Ben Coman**", "activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png", "activitySubtitle": "@bencoman", "facts": [ ] } ], "potentialAction": [ { "name": "Add a comment", "@type": "ActionCard", "inputs": [ { "isMultiLine": true, "@type": "TextInput", "id": "IssueComment", "isRequired": false } ], "actions": [ { "name": "Comment", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"issueId\": 312,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}" } ] }, { "name": "Close pull request", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"pullRequestId\": 312\n}" }, { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#issuecomment-443418737" } ], "@type": "OpenUri", "name": "View on GitHub" }, { "name": "Unsubscribe", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 418560478\n}" } ], "themeColor": "26292E" } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
In reply to this post by Eliot Miranda-4
 

@bencoman commented on this pull request.


In CMakeLists.txt:

> @@ -2,6 +2,15 @@
 cmake_minimum_required(VERSION 3.1)
 project(OpenSmalltalkVM)
 
+# The following is temporary while understanding/debugging CMake build.
+message("START VARIABLES (A)")
+get_cmake_property(_variableNames VARIABLES)
+list (SORT _variableNames)
+foreach (_variableName ${_variableNames})
+    message(STATUS "${_variableName}=${${_variableName}}")
+endforeach()
+message("END VARIABLES (A)")
+

Ignore lines 5-13, they were just adding verbosity for debugging


In platforms/minheadless/windows/sqPlatformSpecific-Win32.c:

> @@ -77,7 +77,7 @@ static void printCrashDebugInformation(LPEXCEPTION_POINTERS exp);
 #define PROCESS_PER_MONITOR_DPI_AWARE 2
 #endif
 
-typedef HRESULT WINAPI (*SetProcessDpiAwarenessFunctionPointer) (int awareness);
+typedef HRESULT (WINAPI *SetProcessDpiAwarenessFunctionPointer) (int awareness);

I see this is already covered in #311


In CMakeLists.txt:

> @@ -530,6 +540,15 @@ endif()
 
 add_library(${VM_LIBRARY_NAME} ${VM_CORE_LIBRARY_TYPE} ${VM_SOURCES} ${VM_INTERNAL_PLUGIN_SOURCES})
 
+# The following is temporary while understanding/debugging CMake build.
+message("START VARIABLES (B)")
+get_cmake_property(_variableNames VARIABLES)
+list (SORT _variableNames)
+foreach (_variableName ${_variableNames})
+    message(STATUS "${_variableName}=${${_variableName}}")
+endforeach()
+message("END VARIABLES (B)")
+

Ignore lines 543-551, they were just adding verbosity for debugging


In platforms/minheadless/windows/sqWin32Main.c:

> @@ -28,6 +28,7 @@
  */
 
 #define WIN32_LEAN_AND_MEAN
+#define BUILD_VM_CORE

Not required per Ronie's comment. It was to work around an unknown symbol "_imp_osvm_main", which BUILD_OSVM_STATIC fixed already.


In platforms/minheadless/windows/sqPlatformSpecific-Win32.h:

> @@ -114,7 +114,7 @@ size_t sqImageFileWrite(const void *ptr, size_t sz, size_t count, sqImageFile h)
 error "Not Win32!"
 #endif /* WIN32 */
 
-int ioSetCursorARGB(sqInt bitsIndex, sqInt w, sqInt h, sqInt x, sqInt y);
+sqInt ioSetCursorARGB(sqInt bitsIndex, sqInt w, sqInt h, sqInt x, sqInt y);

Required. Latest Cog branch minheadless/x64 had the same compile error. Including this change only let the build complete.


In platforms/minheadless/windows/sqPlatformSpecific-Win32.c:

> @@ -115,7 +115,12 @@ void
 ioInitPlatformSpecific(void)
 {
     /* Setup the FPU */
-    _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC);
+	/**** 2018.08.07.BenComan TODO, help required.
+	 **** x64 does not support _MCW_PC or _MCW_IC per https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx
+	 ****/
+	//Original Line// _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC); 
+	_controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC);
+

Required. I've included this per Ronie's comment. Fixes a runtime error.


In platforms/minheadless/common/sqMain.c:

> @@ -25,6 +25,7 @@
  *
  * Author: [hidden email]
  */
+#define BUILD_VM_CORE

Not required per Ronie's comment. It was to work around an unknown symbol "_imp_osvm_main", which BUILD_OSVM_STATIC fixed already.


In platforms/Cross/plugins/IA32ABI/xabicc.c:

> @@ -5,7 +5,7 @@
  * The plugin is misnamed.  It should be the AlienPlugin, but its history
  * dictates otherwise.
  */
-#if i386|i486|i586|i686
+#if i386|i486|i586|i686|_M_IX86

Not required. Already fixed by PR #311 using...
#if defined(_M_I386) || defined(_X86_) || defined(i386) || defined(i486) || defined(i586) || defined(i686) || defined(__i386__) || defined(__386__) || defined(X86) || defined(I386)


In platforms/Cross/plugins/IA32ABI/ia32abicc.c:

> @@ -8,7 +8,7 @@
 /* null if compiled on other than x86, to get around gnu make bugs or
  * misunderstandings on our part.
  */
-#if i386|i486|i586|i686
+#if i386|i486|i586|i686|_M_IX86

Not required. Already fixed by PR #311 using...
#if defined(_M_I386) || defined(_X86_) || defined(i386) || defined(i486) || defined(i586) || defined(i686) || defined(__i386__) || defined(__386__) || defined(X86) || defined(I386)


In platforms/Cross/plugins/IA32ABI/x64win64abicc.c:

> @@ -38,6 +38,9 @@ extern
 #endif 
 struct VirtualMachine* interpreterProxy;
 
+#ifdef _MSC_VER
+# define alloca _alloca
+#endif

Required. Solves MSVC build error...
LNK2019 unresolved external symbol 'alloca' referenced in function callIA32IntegralReturn -- File PharoVMCore.lib(xabicc.c.obj)

Visual Studio 2017" has no "alloca" only "_alloca"
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/alloca


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"PERSON","message":"@bencoman commented on #312"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#pullrequestreview-180508863"}}}</script> <script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#pullrequestreview-180508863", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#pullrequestreview-180508863", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } }, { "@type": "MessageCard", "@context": "http://schema.org/extensions", "hideOriginalBody": "false", "originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB", "title": "@bencoman commented on 312", "sections": [ { "text": "", "activityTitle": "**Ben Coman**", "activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png", "activitySubtitle": "@bencoman", "facts": [ ] } ], "potentialAction": [ { "targets": [ { "os": "default", "uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#pullrequestreview-180508863" } ], "@type": "OpenUri", "name": "View on GitHub" }, { "name": "Unsubscribe", "@type": "HttpPOST", "target": "https://api.github.com", "body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 418560478\n}" } ], "themeColor": "26292E" } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
In reply to this post by Eliot Miranda-4
 

@nicolas-cellier-aka-nice commented on this pull request.


In platforms/minheadless/windows/sqPlatformSpecific-Win32.c:

> @@ -115,7 +115,12 @@ void
 ioInitPlatformSpecific(void)
 {
     /* Setup the FPU */
-    _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC);
+	/**** 2018.08.07.BenComan TODO, help required.
+	 **** x64 does not support _MCW_PC or _MCW_IC per https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx
+	 ****/
+	//Original Line// _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC); 
+	_controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC);
+

I've fixed it in the main OpenSmalltalk VM and will backport.
There's a macro FPU_MASK already defined


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"PERSON","message":"@nicolas-cellier-aka-nice commented on #312"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#discussion_r245084354"}}}</script> <script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#discussion_r245084354", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312#discussion_r245084354", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] DO NOT INTEGRATE - FOR DISCUSSION ONLY Minimalistic headless x64 msvc2017 (#312)

Eliot Miranda-4
In reply to this post by Eliot Miranda-4
 

Hi Ben, I'm currently working on building the Tertf (3D ICC) VM using MSVC Community edition. When I'm done I'll probably migrate the MSVC-specific Makefiles for build.win32* and platforms/win32/plugins into opensmalltalk-vm.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

<script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312?email_source=notifications\u0026email_token=AIJPEW4P5PKXYT3MHBBOW73P4O4QZA5CNFSM4GHSXHPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYUQMAY#issuecomment-506004995", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/312?email_source=notifications\u0026email_token=AIJPEW4P5PKXYT3MHBBOW73P4O4QZA5CNFSM4GHSXHPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYUQMAY#issuecomment-506004995", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]</script>