Attempt to create a pull request for GIT branch "solaris" to COG. You can view, comment on, or merge this pull request online at:https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/479 Commit Summary
File Changes
Patch Links:
— |
@cstes pushed 1 commit.
— |
In reply to this post by David T Lewis
would it be possible to name the 64-bit folder sunos64x64 for consistency with the other folders? — |
Well yes, I could rename the folder to sunos64x64, no problem. By the way the interesting thing is that I've meanwhile discovered why my 32bit 5.0 vm ("cog spur") felt strange and was not doing fast redraws (I reported that it had "screen update" issues, but that is solved now). Because I copied a "mvm" script and modified it, it had a -g flag, and the -g compilation flag had major impact, it seems, in my case (which in many C programs is not the case, but for my vm apparently it did). The "cog spur" vm 32 bit is also working fine on Solaris when I compile it without -g. What I'll do, is to cancel the "pull request" and try a new one after I rename the folder. Also I'm going to undo the commit that made "vm-sound-pulse" the default. This is for me on Solaris working nice, I prefer the "vm-sound-pulse" module for pulseaudio sound, but I shouldn't have made it the default on all platforms ... Let me submit then after this, a new pull request ... -- Sent from: http://forum.world.st/Squeak-VM-f104410.html |
In reply to this post by David T Lewis
Closed #479. — |
In reply to this post by David T Lewis
Attempt to stop git pull request. — |
In reply to this post by stes
On 05/04/20 3:16 PM, stes wrote: > Also I'm going to undo the commit that made "vm-sound-pulse" the default. > This is for me on Solaris working nice, I prefer the "vm-sound-pulse" module > for pulseaudio sound, but I shouldn't have made it the default on all > platforms ... Please make it a default for all Unix/Linux platforms, but propose it in a separate pull request. Thanks. It is about time we made pulse audio module by default for all Unix/Linux platforms. The current default, OSS, hasn't been part of Linux kernel for a long time now. Regards .. Subbu |
In reply to this post by stes
On 05/04/20 3:16 PM, stes wrote: > Because I copied a "mvm" script and modified it, it had a -g flag, and the > -g compilation flag had major impact, it seems, in my case (which in many C > programs is not the case, but for my vm apparently it did). You could create two separate build directories build/mvm for production VM compiled with -O flag build.debug/mvm for debug VM compiled with -g flag Regards .. Subbu |
I started by copying the "mvm" script from linux: build.linux32x86/squeak.cog.spur/build OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" build.linux32x86/squeak.cog.spur/build.debug OPT="-g3 -O0 -DDEBUGVM=1" Note that in my case I seem to have a more responsive VM when I remove the -g flag. And indeed, if debugging is required I'll add a build.debug directory for the solaris tree (with the -g enabled in that directory). Currently I also only have looked at the "squeak cog spur" tree, while there are various other build trees for other types of VM's in there, that I still have to learn about ... -- Sent from: http://forum.world.st/Squeak-VM-f104410.html |
In reply to this post by K K Subbu
On Sun, Apr 05, 2020 at 05:52:13PM +0530, K K Subbu wrote: > > On 05/04/20 3:16 PM, stes wrote: > >Also I'm going to undo the commit that made "vm-sound-pulse" the default. > >This is for me on Solaris working nice, I prefer the "vm-sound-pulse" > >module > >for pulseaudio sound, but I shouldn't have made it the default on all > >platforms ... > > Please make it a default for all Unix/Linux platforms, but propose it in > a separate pull request. Thanks. > > It is about time we made pulse audio module by default for all > Unix/Linux platforms. The current default, OSS, hasn't been part of > Linux kernel for a long time now. > +1 Dave |
In reply to this post by stes
On 05/04/20 6:14 PM, stes wrote: > build.linux32x86/squeak.cog.spur/build > OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" Production builds should be using -O and not "-g -Ox" option. I don't know why the -g flag was turned on for production builds. It is probably a left over from an experiment. On Solaris, you could try using -O in place of -O2 and let the compiler choose the best optimization level. The level should be overridden only when the default level triggers a defect in the compiler. Eliot, I just discovered that the 5.x releases were compiled this way. Is this an oversight or a deliberate choice? HTH .. Subbu |
Hi Subbu > On 06.04.2020, at 06:04, K K Subbu <[hidden email]> wrote: > > On 05/04/20 6:14 PM, stes wrote: >> build.linux32x86/squeak.cog.spur/build >> OPT="-g -O2 -DNDEBUG -DDEBUGVM=0" > > Production builds should be using -O and not "-g -Ox" option. Why? Really. It rather depends on the compiler, no? With gcc and clang, -g+-O is actually a good idea, especially if you use "external" debug symbols like dwarf directories... Best regards -Tobias > I don't know why the -g flag was turned on for production builds. It is probably a left over from an experiment. > > On Solaris, you could try using -O in place of -O2 and let the compiler choose the best optimization level. The level should be overridden only when the default level triggers a defect in the compiler. > > Eliot, I just discovered that the 5.x releases were compiled this way. Is this an oversight or a deliberate choice? > > HTH .. Subbu |
On 06/04/20 10:24 AM, Tobias Pape wrote: >> Production builds should be using -O and not "-g -Ox" option. > > Why? Really. It rather depends on the compiler, no? With gcc and > clang, -g+-O is actually a good idea, especially if you use > "external" debug symbols like dwarf directories... Yes, debug options are compiler dependent to balance between speed optimization and ease of debugging. For instance, gcc recommends: ----https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html If you are not using some other optimization option, consider using -Og (see Optimize Options) with -g. With no -O option at all, some compiler passes that collect information useful for debugging do not run at all, so that -Og may result in a better debugging experience. ---- I would expect alpha and possibly beta to use debug but RC or release versions to optimize aggressively for speed. Debug builds may be instrumented for bounds check, initialized alloc, leak checks, overflow checks etc. These could slow down squeak vm. Regards .. Subbu |
> On 06.04.2020, at 08:00, K K Subbu <[hidden email]> wrote: > > On 06/04/20 10:24 AM, Tobias Pape wrote: >>> Production builds should be using -O and not "-g -Ox" option. >> Why? Really. It rather depends on the compiler, no? With gcc and >> clang, -g+-O is actually a good idea, especially if you use >> "external" debug symbols like dwarf directories... > > Yes, debug options are compiler dependent to balance between speed optimization and ease of debugging. For instance, gcc recommends: > > ----https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html > If you are not using some other optimization option, consider using -Og (see Optimize Options) with -g. With no -O option at all, some compiler passes that collect information useful for debugging do not run at all, so that -Og may result in a better debugging experience. > ---- > > I would expect alpha and possibly beta to use debug but RC or release versions to optimize aggressively for speed. Debug builds may be instrumented for bounds check, initialized alloc, leak checks, overflow checks etc. These could slow down squeak vm. That _really_ depends. And actually, why should writing debug info into the binary slow things down? It at most increases the size of the binary. Optimization on GCC/clang is only handled via the -O?? flag. In fact, on OSX a common pattern is (was?) to compile with debug symbols but not put them in the binary but a directory besides it. That way you can distribute the Binary w/o the debug symbols but have them handy in case you need to debug the release binary on your end. TL;DR: there is really no need to remove '-g' on gcc/clang, even in release builds. Best regards -Tobias |
On 06/04/20 11:42 AM, Tobias Pape wrote: > > >> On 06.04.2020, at 08:00, K K Subbu<[hidden email]> wrote: >>..I would expect alpha and possibly beta to use debug but RC or release versions to optimize aggressively for speed. Debug builds may be instrumented for bounds check, initialized alloc, leak checks, overflow checks etc. These could slow down squeak vm. > That_really_ depends. And actually, why should writing debug info into the binary slow things down? > It at most increases the size of the binary. Optimization on GCC/clang is only handled via the -O?? flag. It is not just debug info. Read my reasons carefully - debug options may insert code for bounds check, initialize malloc memory etc. > TL;DR: there is really no need to remove '-g' on gcc/clang, even in release builds. It would be easy to check if -g has an impact on performance. Just generate a bintray build with just "-O3" and we can run a quick benchmark to check if there is any significant impact on the performance. This will give us hard data to make a decision. If there is no impact, then your may revert to status quo. Regards .. Subbu |
Free forum by Nabble | Edit this page |