]> gerrit.simantics Code Review - simantics/python.git/commitdiff
Several updates to Pyhthon-link behaviour. 98/3398/1
authorReino Ruusu <reino.ruusu@semantum.fi>
Wed, 23 Oct 2019 19:27:19 +0000 (22:27 +0300)
committerReino Ruusu <reino.ruusu@semantum.fi>
Wed, 23 Oct 2019 19:27:19 +0000 (22:27 +0300)
Linking against any Python 3 version > 3.4.
Use of Py_LIMITED_API macro and required API changes.

gitlab #3

Fix handling of unnnormalized exceptions

gitlab #5

Change-Id: I7e6ac66861a382cc1608ed16b751520a292fbc13

org.simantics.pythonlink.win32.x86_64/.cproject
org.simantics.pythonlink.win32.x86_64/.gitignore [new file with mode: 0644]
org.simantics.pythonlink.win32.x86_64/.settings/language.settings.xml [new file with mode: 0644]
org.simantics.pythonlink.win32.x86_64/.settings/org.eclipse.cdt.codan.core.prefs
org.simantics.pythonlink.win32.x86_64/.settings/org.eclipse.cdt.core.prefs
org.simantics.pythonlink.win32.x86_64/jnipython.dll
org.simantics.pythonlink.win32.x86_64/src/sclpy.c
org.simantics.pythonlink.win32.x86_64/src/sclpy.h

index 86dd82593f1ec217e4c89706c3d76da5b1ff6ade..da57fee23c69f38737377eae52a424711c90f123 100644 (file)
@@ -3,9 +3,6 @@
        <storageModule moduleId="org.eclipse.cdt.core.settings">
                <cconfiguration id="org.eclipse.cdt.msvc.dll.debug.242740231">
                        <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.msvc.dll.debug.242740231" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-                               <macros>
-                                       <stringMacro name="PythonDir" type="VALUE_TEXT" value="C:\Program Files\Python35"/>
-                               </macros>
                                <externalSettings>
                                        <externalSetting>
                                                <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/org.simantics.pythonlink.win32.x86_64"/>
@@ -14,7 +11,7 @@
                                        </externalSetting>
                                </externalSettings>
                                <extensions>
-                                       <extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.PE64" point="org.eclipse.cdt.core.BinaryParser"/>
                                        <extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
                                </extensions>
                        </storageModule>
                                                        <targetPlatform id="org.eclipse.cdt.msvc.targetPlatform.dll.debug.74329771" superClass="org.eclipse.cdt.msvc.targetPlatform.dll.debug"/>
                                                        <builder buildPath="${workspace_loc:/org.simantics.pythonlink.win32.x86_64}/Debug" id="org.eclipse.cdt.msvc.builder.1032433648" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.msvc.builder"/>
                                                        <tool id="org.eclipse.cdt.msvc.cl.c.dll.debug.1244459782" name="C Compiler (cl)" superClass="org.eclipse.cdt.msvc.cl.c.dll.debug">
-                                                               <option id="org.eclipse.cdt.msvc.cl.option.optimization.832991816" name="Optimization" superClass="org.eclipse.cdt.msvc.cl.option.optimization" value="org.eclipse.cdt.msvc.cl.option.optimization.default" valueType="enumerated"/>
-                                                               <option id="org.eclipse.cdt.msvc.cl.option.debugFormat.994808880" name="Debug Information Format" superClass="org.eclipse.cdt.msvc.cl.option.debugFormat" value="org.eclipse.cdt.msvc.cl.option.debugFormat.complete" valueType="enumerated"/>
-                                                               <option id="org.eclipse.cdt.msvc.cl.option.includes.1213511673" name="Include Path (/I)" superClass="org.eclipse.cdt.msvc.cl.option.includes" valueType="includePath">
+                                                               <option id="org.eclipse.cdt.msvc.cl.option.optimization.832991816" name="Optimization" superClass="org.eclipse.cdt.msvc.cl.option.optimization" useByScannerDiscovery="false" value="org.eclipse.cdt.msvc.cl.option.optimization.default" valueType="enumerated"/>
+                                                               <option id="org.eclipse.cdt.msvc.cl.option.debugFormat.994808880" name="Debug Information Format" superClass="org.eclipse.cdt.msvc.cl.option.debugFormat" useByScannerDiscovery="false" value="org.eclipse.cdt.msvc.cl.option.debugFormat.complete" valueType="enumerated"/>
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.cl.option.includes.1213511673" name="Include Path (/I)" superClass="org.eclipse.cdt.msvc.cl.option.includes" useByScannerDiscovery="false" valueType="includePath">
                                                                        <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/src&quot;"/>
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\SDK\include\ucrt&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDKDir}\include&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\include&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\Lib\site-packages\numpy\core\include&quot;"/>
                                                                </option>
                                                                <inputType id="org.eclipse.cdt.msvc.rc.inputType.1260621447" superClass="org.eclipse.cdt.msvc.rc.inputType"/>
                                                        </tool>
                                                        <tool id="org.eclipse.cdt.msvc.link.dll.debug.590693911" name="Linker (link)" superClass="org.eclipse.cdt.msvc.link.dll.debug">
-                                                               <option defaultValue="true" id="org.eclipse.cdt.msvc.link.option.dll.981503272" name="Build a DLL" superClass="org.eclipse.cdt.msvc.link.option.dll" valueType="boolean"/>
-                                                               <option id="org.eclipse.cdt.msvc.link.option.debug.1991298239" name="Generate Debug Info (/debug)" superClass="org.eclipse.cdt.msvc.link.option.debug" value="true" valueType="boolean"/>
-                                                               <option id="org.eclipse.cdt.msvc.link.option.libraries.6975129" name="Libraries" superClass="org.eclipse.cdt.msvc.link.option.libraries" valueType="libs">
-                                                                       <listOptionValue builtIn="false" value="python35.lib"/>
+                                                               <option defaultValue="true" id="org.eclipse.cdt.msvc.link.option.dll.981503272" name="Build a DLL" superClass="org.eclipse.cdt.msvc.link.option.dll" useByScannerDiscovery="false" valueType="boolean"/>
+                                                               <option id="org.eclipse.cdt.msvc.link.option.debug.1991298239" name="Generate Debug Info (/debug)" superClass="org.eclipse.cdt.msvc.link.option.debug" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.link.option.libraries.6975129" name="Libraries" superClass="org.eclipse.cdt.msvc.link.option.libraries" useByScannerDiscovery="false" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="python3.lib"/>
                                                                </option>
-                                                               <option id="org.eclipse.cdt.msvc.link.option.libpath.31051683" name="Additional Libpath (/libpath)" superClass="org.eclipse.cdt.msvc.link.option.libpath" valueType="stringList">
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64&quot;"/>
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64&quot;"/>
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.link.option.libpath.31051683" name="Additional Libpath (/libpath)" superClass="org.eclipse.cdt.msvc.link.option.libpath" useByScannerDiscovery="false" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDKDir}\Lib\x64&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\libs&quot;"/>
                                                                </option>
                                                                <inputType id="org.eclipse.cdt.msvc.link.inputType.967641183" superClass="org.eclipse.cdt.msvc.link.inputType"/>
@@ -67,9 +64,6 @@
                </cconfiguration>
                <cconfiguration id="org.eclipse.cdt.msvc.dll.release.1333930985">
                        <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.msvc.dll.release.1333930985" moduleId="org.eclipse.cdt.core.settings" name="Release">
-                               <macros>
-                                       <stringMacro name="PythonDir" type="VALUE_TEXT" value="C:\Program Files\Python35"/>
-                               </macros>
                                <externalSettings>
                                        <externalSetting>
                                                <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/org.simantics.pythonlink.win32.x86_64"/>
                                                        <tool command="cl /c" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.VCErrorParser" id="org.eclipse.cdt.msvc.cl.c.dll.release.1838719247" name="C Compiler (cl)" superClass="org.eclipse.cdt.msvc.cl.c.dll.release">
                                                                <option id="org.eclipse.cdt.msvc.cl.option.optimization.1823239110" name="Optimization" superClass="org.eclipse.cdt.msvc.cl.option.optimization"/>
                                                                <option id="org.eclipse.cdt.msvc.cl.option.debugFormat.884112335" name="Debug Information Format" superClass="org.eclipse.cdt.msvc.cl.option.debugFormat"/>
-                                                               <option id="org.eclipse.cdt.msvc.cl.option.includes.950193253" name="Include Path (/I)" superClass="org.eclipse.cdt.msvc.cl.option.includes" valueType="includePath">
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.cl.option.includes.950193253" name="Include Path (/I)" superClass="org.eclipse.cdt.msvc.cl.option.includes" useByScannerDiscovery="false" valueType="includePath">
                                                                        <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/src&quot;"/>
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${VCIncludeDir}&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\include&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\Lib\site-packages\numpy\core\include&quot;"/>
                                                                </option>
                                                        </tool>
                                                        <tool command="link" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.VCErrorParser" id="org.eclipse.cdt.msvc.link.dll.release.1649900997" name="Linker (link)" superClass="org.eclipse.cdt.msvc.link.dll.release">
                                                                <option defaultValue="true" id="org.eclipse.cdt.msvc.link.option.dll.1543859943" name="Build a DLL" superClass="org.eclipse.cdt.msvc.link.option.dll" valueType="boolean"/>
-                                                               <option id="org.eclipse.cdt.msvc.link.option.libraries.1810304708" name="Libraries" superClass="org.eclipse.cdt.msvc.link.option.libraries" valueType="libs">
-                                                                       <listOptionValue builtIn="false" value="python35.lib"/>
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.link.option.libraries.1810304708" name="Libraries" superClass="org.eclipse.cdt.msvc.link.option.libraries" useByScannerDiscovery="false" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="python3.lib"/>
                                                                </option>
-                                                               <option id="org.eclipse.cdt.msvc.link.option.libpath.1055341457" name="Additional Libpath (/libpath)" superClass="org.eclipse.cdt.msvc.link.option.libpath" valueType="stringList">
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64&quot;"/>
-                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64&quot;"/>
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="org.eclipse.cdt.msvc.link.option.libpath.1055341457" name="Additional Libpath (/libpath)" superClass="org.eclipse.cdt.msvc.link.option.libpath" useByScannerDiscovery="false" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x64&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${VCDir}\lib\amd64&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;${PythonDir}\libs&quot;"/>
                                                                </option>
                                                                <inputType id="org.eclipse.cdt.msvc.link.inputType.553501760" superClass="org.eclipse.cdt.msvc.link.inputType"/>
diff --git a/org.simantics.pythonlink.win32.x86_64/.gitignore b/org.simantics.pythonlink.win32.x86_64/.gitignore
new file mode 100644 (file)
index 0000000..ac01e66
--- /dev/null
@@ -0,0 +1,2 @@
+/Debug/
+/Release/
diff --git a/org.simantics.pythonlink.win32.x86_64/.settings/language.settings.xml b/org.simantics.pythonlink.win32.x86_64/.settings/language.settings.xml
new file mode 100644 (file)
index 0000000..29395c9
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<project>\r
+       <configuration id="org.eclipse.cdt.msvc.dll.debug.242740231" name="Debug">\r
+               <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">\r
+                       <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>\r
+                       <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>\r
+                       <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>\r
+                       <provider class="org.eclipse.cdt.msw.build.core.MSVCBuildCommandParser" id="org.eclipse.cdt.msw.build.core.MSVCBuildCommandParser" keep-relative-paths="false" name="MSVC Build Output Parser" parameter="((clang-)?cl(.exe)?)" prefer-non-shared="true"/>\r
+               </extension>\r
+       </configuration>\r
+       <configuration id="org.eclipse.cdt.msvc.dll.release.1333930985" name="Release">\r
+               <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">\r
+                       <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>\r
+                       <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>\r
+                       <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>\r
+               </extension>\r
+       </configuration>\r
+</project>\r
index de248e3b5d01525b369c9de9b13c82746ea44aac..eae44cd41129516ed6092d90295d576903b94390 100644 (file)
@@ -1,71 +1,91 @@
 eclipse.preferences.version=1\r
 org.eclipse.cdt.codan.checkers.errnoreturn=Warning\r
-org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}\r
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false}\r
 org.eclipse.cdt.codan.checkers.errreturnvalue=Error\r
-org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"}\r
 org.eclipse.cdt.codan.checkers.nocommentinside=-Error\r
-org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"}\r
 org.eclipse.cdt.codan.checkers.nolinecomment=-Error\r
-org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"}\r
 org.eclipse.cdt.codan.checkers.noreturn=Error\r
-org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}\r
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false}\r
 org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error\r
-org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}\r
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false}\r
 org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning\r
-org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}\r
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()}\r
 org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning\r
-org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}\r
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true}\r
+org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"}\r
+org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error\r
+org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error\r
-org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false}\r
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info\r
-org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}\r
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}\r
 org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning\r
-org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning\r
-org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}\r
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()}\r
 org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}\r
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false}\r
 org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}\r
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false}\r
 org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}\r
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true}\r
 org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}\r
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true}\r
 org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning\r
-org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}\r
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")}\r
+org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning\r
+org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"}\r
 org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error\r
-org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}\r
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"}\r
+org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error\r
+org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"}\r
index 9f31fda05ff006813a25f9693992b321be8fd73b..0d7c39284affb537b9699589cb04c687db291747 100644 (file)
@@ -1,11 +1,11 @@
 eclipse.preferences.version=1\r
 environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/PATH/delimiter=;\r
 environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/PATH/operation=replace\r
-environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/PATH/value=c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\..\\Common7\\IDE;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\..\\Common7\\Tools;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\Bin\\amd64;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\vcpackages;C\:/Program Files/Java/jre1.8.0_65/bin/server;C\:/Program Files/Java/jre1.8.0_65/bin;C\:/Program Files/Java/jre1.8.0_65/lib/amd64;C\:\\Program Files\\MATLAB\\R2014b\\bin\\win64;C\:\\Program Files\\Python35\\Scripts\\;C\:\\Program Files\\Python35\\;C\:\\Program Files (x86)\\Intel\\iCLS Client\\;C\:\\Program Files\\Intel\\iCLS Client\\;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\mpirt;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\compiler;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32\\mpirt;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32\\compiler;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\WINDOWS\\system32;C\:\\WINDOWS;C\:\\WINDOWS\\System32\\Wbem;C\:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;c\:\\Program Files (x86)\\Microsoft SQL Server\\90\\Tools\\binn\\;C\:\\Program Files\\MATLAB\\R2014b\\runtime\\win64;C\:\\Program Files\\MATLAB\\R2014b\\bin;C\:\\Program Files (x86)\\MATLAB\\R2014b\\runtime\\win32;C\:\\Program Files (x86)\\MATLAB\\R2014b\\bin;C\:\\Program Files\\TortoiseSVN\\bin;C\:\\Sysinternals;C\:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin\\;C\:\\Program Files (x86)\\Skype\\Phone\\;C\:\\Program Files (x86)\\AMD\\ATI.ACE\\Core-Static;C\:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C\:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C\:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C\:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C\:\\LocalData\\Apros\\bin.nt\\;C\:\\Program Files\\OpenVPN\\bin;C\:\\Program Files\\Intel\\WiFi\\bin\\;C\:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C\:\\LocalData\\Apros-Simantics\r
+environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/PATH/value=${VCDir}\r
 environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/append=true\r
 environment/project/org.eclipse.cdt.msvc.dll.debug.242740231/appendContributed=true\r
 environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/PATH/delimiter=;\r
 environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/PATH/operation=replace\r
-environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/PATH/value=c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\..\\Common7\\IDE;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\..\\Common7\\Tools;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\Bin\\amd64;c\:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\vcpackages;C\:/Program Files/Java/jre1.8.0_65/bin/server;C\:/Program Files/Java/jre1.8.0_65/bin;C\:/Program Files/Java/jre1.8.0_65/lib/amd64;C\:\\Program Files\\MATLAB\\R2014b\\bin\\win64;C\:\\Program Files\\Python35\\Scripts\\;C\:\\Program Files\\Python35\\;C\:\\Program Files (x86)\\Intel\\iCLS Client\\;C\:\\Program Files\\Intel\\iCLS Client\\;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\mpirt;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64\\compiler;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32\\mpirt;C\:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32\\compiler;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\WINDOWS\\system32;C\:\\WINDOWS;C\:\\WINDOWS\\System32\\Wbem;C\:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;c\:\\Program Files (x86)\\Microsoft SQL Server\\90\\Tools\\binn\\;C\:\\Program Files\\MATLAB\\R2014b\\runtime\\win64;C\:\\Program Files\\MATLAB\\R2014b\\bin;C\:\\Program Files (x86)\\MATLAB\\R2014b\\runtime\\win32;C\:\\Program Files (x86)\\MATLAB\\R2014b\\bin;C\:\\Program Files\\TortoiseSVN\\bin;C\:\\Sysinternals;C\:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin\\;C\:\\Program Files (x86)\\Skype\\Phone\\;C\:\\Program Files (x86)\\AMD\\ATI.ACE\\Core-Static;C\:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C\:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C\:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C\:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C\:\\LocalData\\Apros\\bin.nt\\;C\:\\Program Files\\OpenVPN\\bin;C\:\\Program Files\\Intel\\WiFi\\bin\\;C\:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C\:\\LocalData\\Apros-Simantics\r
+environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/PATH/value=C\:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\r
 environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/append=true\r
 environment/project/org.eclipse.cdt.msvc.dll.release.1333930985/appendContributed=true\r
index 7cc11fd3f764998be28d7d5c889260ff1499bb2d..11fcd89896cf3297bf8ea92da11342720be46778 100644 (file)
Binary files a/org.simantics.pythonlink.win32.x86_64/jnipython.dll and b/org.simantics.pythonlink.win32.x86_64/jnipython.dll differ
index 762df28e988aaee4b451efe8dfe5f788ccbf304e..b2308bcdd3b4af57192c0fbd5a3dfa1ad6801e9f 100644 (file)
@@ -1,14 +1,15 @@
-///////////////////////////////////////////////////////
-//                                                   //
-//   VTT Technical Research Centre of Finland LTD    //
-//   For internal use only. Do not redistribute.     //
-//                                                   //
-//   Authors:                                        //
-//       Antton Tapani    ext-antton.tapani@vtt.fi   //
-//                                                   //
-//   Last modified by Antton Tapani    9.2016        //
-//                                                   //
-///////////////////////////////////////////////////////
+/*******************************************************************************
+ * Copyright (c) 2017-2019 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre - Initial API and implementation
+ *     Semantum Oy - Improvements
+ *******************************************************************************/
 
 #include "sclpy.h"
 
@@ -49,7 +50,7 @@ static PyObject *
 writeToSCL(PyObject *self, PyObject *args)
 {
     if (currentEnv != NULL && sclWriter != NULL) {
-               Py_UNICODE *what;
+       wchar_t *what;
                Py_ssize_t length;
        JNIEnv *env = currentEnv;
 
@@ -109,7 +110,7 @@ static PyMethodDef sclWriterMethods[] = {
 JNIEXPORT void JNICALL
 Java_org_simantics_pythonlink_PythonContext_initializePython(
         JNIEnv *env, jobject thisObj, jobject writer) {
-    Py_Initialize();
+    Py_InitializeEx(0);
 
     {
        static struct PyModuleDef moduledef = {
@@ -988,9 +989,12 @@ static PyObject *getExceptionMessage(PyObject *exceptionType, PyObject *exceptio
        PyObject *formatExc = NULL, *args = NULL;
        PyObject *tracebackModule = PyImport_ImportModule("traceback");
        if (!tracebackModule) {
+               fputs("Python: No traceback module\n", stderr);
                return NULL;
        }
 
+       PyErr_NormalizeException(&exceptionType, &exception, &traceback);
+       
        if (exception && traceback) {
                formatExc = PyDict_GetItemString(PyModule_GetDict(tracebackModule), "format_exception");
                args = PyTuple_Pack(3, exceptionType, exception, traceback);
@@ -1000,21 +1004,40 @@ static PyObject *getExceptionMessage(PyObject *exceptionType, PyObject *exceptio
                args = PyTuple_Pack(2, exceptionType, exception);
        }
 
-       Py_DECREF(tracebackModule);
-
        if (formatExc != NULL && args != NULL) {
                PyObject *result = PyObject_CallObject(formatExc, args);
+               if (!result) {
+                       fputs("Python: No result from format_exception\n", stderr);
+                       // Fallback to a direct string representation of the exception object
+                       result = PyObject_Str(exception);
+               }
                Py_XDECREF(args);
-               Py_XDECREF(formatExc);
+               // Py_XDECREF(formatExc) - Borrowed reference
+               Py_DECREF(tracebackModule);
+
                return result;
        }
        else {
+               if (!formatExc) fputs("Python: No format_exception\n", stderr);
+
                Py_XDECREF(args);
-               Py_XDECREF(formatExc);
+               // Py_XDECREF(formatExc) - Borrowed reference
+               Py_DECREF(tracebackModule);
+
                return NULL;
        }
 }
 
+static void throwExceptionType(JNIEnv *env, PyObject *exceptionType) {
+       PyObject *ty_name = exceptionType ? PyObject_GetAttrString(exceptionType, "__name__") : NULL;
+       PyObject *str = ty_name ? PyUnicode_AsEncodedString(ty_name, "utf-8", "ignore") : NULL;
+
+       throwPythonException(env, str ? PyBytes_AsString(str) : "Internal error - no exception type");
+
+       Py_XDECREF(str);
+       Py_XDECREF(ty_name);
+}
+
 JNIEXPORT jint JNICALL
 Java_org_simantics_pythonlink_PythonContext_executePythonStatementImpl(
                JNIEnv *env, jobject thisObj, jlong contextID, jstring statement) {
@@ -1032,7 +1055,9 @@ Java_org_simantics_pythonlink_PythonContext_executePythonStatementImpl(
                currentEnv = env;
 
                {
-                       PyObject *result = PyRun_String(utfchars, Py_file_input, globals, globals);
+                       // PyObject *result = PyRun_String(utfchars, Py_file_input, globals, globals); - Not available in Py_LIMITED_API
+                       PyObject *code = Py_CompileString(utfchars, "SCL_INPUT", Py_file_input);
+                       PyObject *result = code ? PyEval_EvalCode(code,globals, globals) : NULL;
                        PyObject *exceptionType = PyErr_Occurred();
 
                        if (exceptionType != NULL) {
@@ -1041,27 +1066,46 @@ Java_org_simantics_pythonlink_PythonContext_executePythonStatementImpl(
 
                                message = getExceptionMessage(exceptionType, exception, traceback);
                                if (message != NULL) {
-                                       PyObject *emptyStr = PyUnicode_FromString("");
-                                       PyObject *joined = PyUnicode_Join(emptyStr, message);
-                                       char *messageStr = PyUnicode_AsUTF8(joined);
-                                       throwPythonException(env, messageStr);
-                                       Py_DECREF(joined);
-                                       Py_DECREF(emptyStr);
+                                       if (PyList_Check(message)) {
+                                               PyObject *emptyStr = PyUnicode_FromString("");
+                                               PyObject *temp = PyUnicode_Join(emptyStr, message);
+                                               if (temp) {
+                                                       Py_DECREF(message);
+                                                       message = temp;
+                                               }
+
+                                               Py_DECREF(emptyStr);
+                                       }
+
+                                       if (!PyUnicode_Check(message)) {
+                                               PyObject *temp = PyObject_Str(message);
+                                               if (temp) {
+                                                       Py_DECREF(message);
+                                                       message = temp;
+                                               }
+                                       }
+
+                                       PyObject* str = PyUnicode_AsEncodedString(message, "utf-8", "ignore");
                                        Py_DECREF(message);
+
+                                       if (str != NULL) {
+                                               throwPythonException(env, PyBytes_AsString(str));
+                                               Py_DECREF(str);
+                                       }
+                                       else {
+                                               fputs("Python: Encoding message string failed\n", stderr);
+                                               throwExceptionType(env, exceptionType);
+                                       }
                                }
                                else {
-                                       PyTypeObject
-                                               *ty = (PyTypeObject *)exceptionType;
-                                       throwPythonException(
-                                                       env, ty ? ty->tp_name
-                                                                       : "Internal error, null exception type");
+                                       fputs("Python: No exception message\n", stderr);
+                                       throwExceptionType(env, exceptionType);
                                }
-
-                               Py_XDECREF(exceptionType);
-                               Py_XDECREF(exception);
-                               Py_XDECREF(traceback);
                        }
 
+                       Py_XDECREF(result);
+                       Py_XDECREF(code);
+
                        PyEval_SaveThread();
                        (*env)->ReleaseStringUTFChars(env, statement, utfchars);
 
index e71e107040475b26a1afba11aa2cf0aa6f07953c..58b141addd5832f3203dba337a0a2860d107685e 100644 (file)
@@ -1,6 +1,13 @@
 #ifndef __MAIN_H__
 #define __MAIN_H__
 
+// Avoid use of the PyRun_StringFlags API to maintain compatibility with python3.dll
+#define Py_LIMITED_API 0x03050000
+
+#define PyTuple_GET_ITEM PyTuple_Get_Item
+#define PyTuple_GET_SIZE PyTuple_Get_Size
+#define PyTuple_SET_ITEM PyTuple_Set_Item
+
 #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #ifdef _DEBUG
        #undef _DEBUG