Issue 5720: Fix C++11 option (issue 579270051 by truer...@gmail.com)
Mhmm, wouldn't it be better to simply define `M_PI` if it is not defined? GNU options might not be available with other compilers... https://codereview.appspot.com/579270051/
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
> If Werner likes it, I'm fine with it. I do like it, and it is completely non-intrusive since it gets used locally only for those people who set up a proper git hook (or call `clang-format` manually). https://codereview.appspot.com/561340043/
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
>> This sounds promising. >> >>> -fexcess-precision=standard is not implemented for languages >>> other than C. >> >> Never mind. > > Hm. Maybe > > -mfpmath=sse > > instead? The problem with switching the whole FPU to reduced precision > is that some library functions might not expect that, so it is making me > queasy. On the other hand, using SSE might have a negative performance? > I just don't have a good idea what we are dealing with here. In my experiment, `-fexcess-precision=standard` cannot be used for C++. ``` $ g++ -fexcess-precision=standard test.cc cc1plus: sorry, unimplemented: -fexcess-precision=standard for C++ $ g++ --version g++ (GCC) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ ``` On the other hand, `-msse -mfpmath=sse` uses SSE, which can only perform single-precision floating-point calculation. SSE is too low precision. `-msse2 -mfpmath=sse` uses SSE2, which can perform double-precision floating-point calculation. Precision is sufficient, but older 32-bit x86 CPUs do not have SSE2.
Inline assembler fallback for _FPU_SETCW() missing in x86 platforms (issue 575600043 by thomasmorle...@gmail.com)
Reviewers: arnold.wendl_siemens.com2, Message: This adds Masamichi-san's suggestions from https://codereview.appspot.com/577450043/ Comment #7 Sorry, for the new issue, initiated by accident This does _not_ reflect the discussion of https://lists.gnu.org/archive/html/lilypond-devel/2020-01/msg00845.html It's out of my depth. Description: Inline assembler fallback for _FPU_SETCW() missing in x86 platforms Issue 4943 As Issue 4943 on x86 platform compilations was triggered by missing _FPU_SETCW(), an alternate call to initiate the X87 FPU setup as an inline-assembler command is added. Please review this at https://codereview.appspot.com/575600043/ Affected files (+26, -5 lines): M lily/main.cc Index: lily/main.cc diff --git a/lily/main.cc b/lily/main.cc index 4834ff82aa9b6bb649bfe8fbe863877b56c819d1..3967d1c91ec6eb93832bb3af5540dc4b4b92ee36 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -176,19 +176,40 @@ static Long_option_init options_static[] unpredictable places. To get around this, we tell the x87 FPU to use only double precision. Note that this is not needed for x86_64 because that uses the SSE unit by default instead of the x87 FPU. */ -#if ((defined (__x86__) || defined (__i386__)) \ - && defined (HAVE_FPU_CONTROL_H) && (HAVE_FPU_CONTROL_H == 1)) +#if defined (__x86__) || defined (__i386__) +// This environment is x86. +// It is necessary that setting precision by setting x87 FPU control word. +#if defined (HAVE_FPU_CONTROL_H) && (HAVE_FPU_CONTROL_H == 1) #include +#endif + static void configure_fpu () -{ + { +#if defined (HAVE_FPU_CONTROL_H) && (HAVE_FPU_CONTROL_H == 1) + // This environment has fpu_control.h. (e.g. Linux glibc) + // We use _FPU_SETCW () to set x87 FPU control word. fpu_control_t fpu_control = 0x027f; _FPU_SETCW (fpu_control); -} - #else + // This environment doesn't have fpu_control.h. (e.g. MinGW) + // We use inline asm to set x87 FPU control word. + asm( + " push %ebp" +"\n mov $0x027f, %eax" +"\n push %eax" +"\n mov %esp, %ebp" +"\n fldcw (%ebp)" +"\n pop %eax" +"\n pop %ebp" + ); +#endif + } +#else +// This environment isn't x86. (e.g. x86_64) +// It is unnecessary that setting precision. static void configure_fpu () {
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
On 2020/01/31 10:45:42, trueroad wrote: > Hello Arnold. > Thank you for your patch. > > If I understand correctly, we only need check the definitions of `__x86__` and > `__i386__` check. > > In x86_64 environment, neither `__x86__` nor `__i386__` are defined. > > ``` > $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__x86__" > > $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__i386__" > > $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__x86__" > > $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__i386__" > #define __i386__ 1 > > $ > ``` > > Therefore, `defined (__code_model_32__)` is not necessary. > > If `__SSE2_MATH__` is defined, it only indicates that main.cc is compiled with > SSE2 math enabled. > Shared libraries such as libguile may still use x86 FPU. > If the floating point calculation inside GUILE uses x86 FPU, we need to set the > precision even if C++ uses SSE2. > > Therefore, `defined (__SSE2_MATH__)` is not necessary. > > Furthermore, if the floating-point operations of all modules use SSE2, setting > the x86 FPU precision has no effect because it is not used. > In other words, there is no problem even if the precision is set on a platform > that does not need to set. > > Therefore, environment definitions such as `defined (__MINGW32__)` is not > necessary. Per accident I've done a new Rietveld issue while updating current patch witch Masamichi-san's suggestions (Hopefully without mistakes). Please look here: https://codereview.appspot.com/575600043/ https://codereview.appspot.com/577450043/
Motivational statistics
Hi all, I wanted to get a better understanding from my impression of the significant increase in traffic on lilypond-devel. For this I did some statistics on James' "PATCHES - Countdown" messages. Since patches are counted multiple times while flowing through the process I think the only relevant metric is the "New" section, and this should not be calculated by the countdown message but averaged by day. And the results are convincing: Four weeks leading to the Salzburg conference: 0,32 new patches per day Since Salzburg: 1,46 patches per day Of course these are no scientifically hardened results - but they match the feeling of excited frenzy visible on this list. However sustainable the effect may be, the short term impact of the developer meeting and the conference seems to have been remarkable. Urs
Re: Doc: Correct and extend infos about LilyDev setup (issue 561360043 by michael.kaepp...@googlemail.com)
Am 31.01.2020 um 10:07 schrieb Federico Bruni: I have a second thought about this. The whole point of setting a blank root password was that systemd-nspawn required a root login (at least 2 years ago). In fact in the README I suggested to log in as root and then change to dev. But I see that I can log in as dev without any problem (systemd version 243). Can you confirm you can log in as dev in the container? So I'll just remove the --password="" from the Makefile and change the README accordingly. Did not test the container, but for the VM image this does work. I can log in as dev and the root account is locked. Cheers, Michael
Re: Move Guile-style modules from scm to scm-modules (issue 567140045 by m...@ursliska.de)
Urs Liska writes: > Am Freitag, den 31.01.2020, 18:38 +0100 schrieb: >> Urs Liska writes: >> >> > Am Mittwoch, den 29.01.2020, 07:01 -0800 schrieb d...@gnu.org: >> > > On 2020/01/29 12:20:10, mail5 wrote: >> > > > Unfortunately I haven't set up a build system on my new >> > > > computer >> > > > yet, >> > > > so this >> > > > patch is not tested locally at all, so I'm humbly waiting for >> > > > the >> > > > automated >> > > > tests to succeed or fail ... >> > > >> > > I don't like the "use-modules clauses adjusted accordingly". I >> > > don't >> > > think it makes sense readjusting use-modules clauses all the time >> > > while >> > > we are deciding on the final module organisation, so I'd strongly >> > > suggest first biting the bullet and deciding on a syntax for a >> > > user-level command able to load Scheme modules without further >> > > options, >> > > and then introduce that command. In that manner, future >> > > directory >> > > organisations (which are almost certain to come) will not affect >> > > the >> > > source of user-level documents any more. >> > > >> > > https://codereview.appspot.com/567140045/ >> > >> > Maybe I'm missing something, but AFAICS there will always be the >> > need >> > for a module path like (ice-9 regex), or (scm display-lily). We >> > will >> > have that with *any* user-facing load syntax. >> >> \loadScmPackage display-lily >> >> or even >> >> \loadPackage display-lily.scm >> >> with the last .scm getting interpreted specially. >> >> #(use-modules ...) is not a user-facing load syntax. We don't want >> people to have to change their input when an optional package >> migrates >> to the system or a local package changes hierarchy. Specific path >> components may make sense for disambiguation, but if I take a look at >> what LaTeX does, a flat hierarchy as first user-level approximation >> does >> not appear to have significant scaling problems. > > I'm not so sure about that. In the LaTeX world this means that you > have to come up with file names that are unique to the whole ecosystem Yes. > because otherwise you're relying on luck that "your" file is found > first in case of conflicts. I had this several times, mostly in the > form of requests of TeX Live maintainers to rename files which were > considered dangerously generic. So? If you put 5 logical layers before "Schenker", two different Schenker graph packages will still collide because the logical categories are still all a match. You are not even kicking the can down the road that way, you are just making it bigger. > The other thing to consider is that path components are (currently) > not only used for disambiguation but also for the lookup. LilyPond > starts searching for files at each include path, and it relies on > relative paths starting from a (any) include path. LaTeX, however, > recursively searches for files starting from the include paths. I > think going that route would have several negative impacts > (disadvantage/risk): > > * The recursive search is potentially expensive Which is why path databases ultimately exist. > * There are actual risks of loops in the search path Only for symbolic links. > * Targets are not really specified, using relative paths is > more expressive and explicit. * kpathsea is pretty complex and has > corner cases that don't work well (e.g. it doesn't always follow > symlinks when a directory does not contain at least one "real" file), > and we would knowingly have to decide creating and maintaining a > comparable tool Eventually. > So, requiring explicit paths gives clearer interfaces (although more > typing is required) and reduces searching complexity. I don't see at all that it is a clearer interface if you have to specify a detailed path with information that will either be the same for packages with potential conflicting names due to sharing functionality, or arbitrary. Take a look actually more or less at _any_ package system, be it TeX, Debian, PEP, RPM, Emacs. The namespace for requesting a package is flat. On all of them. There are search hierarchies containing them, but they don't make for unique paths in any way. > In the case of display-lily and all other built-in modules we can > reduce this by adding the scm directory to the include path. But for > external packages I am pretty sure that using explicit paths from the > include paths (like we already have it with \include) makes sense. I don't think it makes sense to have users exposed to the internal placement of packages organized in directory trees, and I don't know any package system that does. The internal scm files loaded by LilyPond don't need to be visible to the user. Those optionally loaded manually (for example, (scm accreg)) are a different game. > However, I'd like to stress that we are (or at least should be) talking > about several different things when saying "package" and "loading": > > 1) > Loading a package/module *file*, parsing its code and
Re: Doc: Correct and extend infos about LilyDev setup (issue 561360043 by michael.kaepp...@googlemail.com)
Am 30.01.2020 um 14:17 schrieb fedel...@gmail.com: https://codereview.appspot.com/561360043/diff/565550050/Documentation/contributor/quick-start.itexi File Documentation/contributor/quick-start.itexi (right): https://codereview.appspot.com/561360043/diff/565550050/Documentation/contributor/quick-start.itexi#newcode208 Documentation/contributor/quick-start.itexi:208: sufficient to choose number@tie{}71 (Generic, 105 keys). After that, It seems it's not necessarily number 71. I would remove the number. keyboards are sorted alphabetically so "Generic, 105 keys" is enough. Weird that this does show up differently. Yes, I will change this. Here's what I see: 65. Generic 101-key PC 66. Generic 102-key (Intl) PC 67. Generic 104-key PC 68. Generic 105-key (Intl) PC I've tried 68 but didn't seem to work. I had to go to the GUI settings for the layout, disable system setting and remove the english from the list, then adding new layouts worked fine. (Probably a bug in Debian or XFCE? Honestly, I don't have time nor will to investigate.) I cannot reproduce this. I used the v2 release you prepared, loaded it into VirtualBox 6.0.12, Host Windows 10. After dpkg-reconfigure keyboard-configuration, using number 68 as keyboard type and rebooting everything works fine. What did not work? Anyway, to me the point is: doing trial and error in the GUI is way better than having to follow the same procedure with dpkg-reconfigure. So I'm not sure adding keyboard-configuration to LilyDev was a good idea. I thought that it would have saved the user from guessing the right layout but that's not the case, so there's no improvement over previous situation AFAICS. I proposed this because the method described in the CG did not work (and does not work yet, too). If I add the "German" keyboard layout in the XFCE settings panel, I have to remove the English layout in order to make it work, and even then it does not work for the login screen and AFAIK generally outside the X environment. So using dpkg-reconfigure seems to be a cleaner approach to me. https://codereview.appspot.com/561360043/
Re: Move Guile-style modules from scm to scm-modules (issue 567140045 by m...@ursliska.de)
Am Freitag, den 31.01.2020, 18:38 +0100 schrieb David Kastrup: > Urs Liska writes: > > > Am Mittwoch, den 29.01.2020, 07:01 -0800 schrieb d...@gnu.org: > > > On 2020/01/29 12:20:10, mail5 wrote: > > > > Unfortunately I haven't set up a build system on my new > > > > computer > > > > yet, > > > so this > > > > patch is not tested locally at all, so I'm humbly waiting for > > > > the > > > automated > > > > tests to succeed or fail ... > > > > > > I don't like the "use-modules clauses adjusted accordingly". I > > > don't > > > think it makes sense readjusting use-modules clauses all the time > > > while > > > we are deciding on the final module organisation, so I'd strongly > > > suggest first biting the bullet and deciding on a syntax for a > > > user-level command able to load Scheme modules without further > > > options, > > > and then introduce that command. In that manner, future > > > directory > > > organisations (which are almost certain to come) will not affect > > > the > > > source of user-level documents any more. > > > > > > https://codereview.appspot.com/567140045/ > > > > Maybe I'm missing something, but AFAICS there will always be the > > need > > for a module path like (ice-9 regex), or (scm display-lily). We > > will > > have that with *any* user-facing load syntax. > > \loadScmPackage display-lily > > or even > > \loadPackage display-lily.scm > > with the last .scm getting interpreted specially. > > #(use-modules ...) is not a user-facing load syntax. We don't want > people to have to change their input when an optional package > migrates > to the system or a local package changes hierarchy. Specific path > components may make sense for disambiguation, but if I take a look at > what LaTeX does, a flat hierarchy as first user-level approximation > does > not appear to have significant scaling problems. I'm not so sure about that. In the LaTeX world this means that you have to come up with file names that are unique to the whole ecosystem because otherwise you're relying on luck that "your" file is found first in case of conflicts. I had this several times, mostly in the form of requests of TeX Live maintainers to rename files which were considered dangerously generic. The other thing to consider is that path components are (currently) not only used for disambiguation but also for the lookup. LilyPond starts searching for files at each include path, and it relies on relative paths starting from a (any) include path. LaTeX, however, recursively searches for files starting from the include paths. I think going that route would have several negative impacts (disadvantage/risk): * The recursive search is potentially expensive * There are actual risks of loops in the search path * Targets are not really specified, using relative paths is more expressive and explicit. * kpathsea is pretty complex and has corner cases that don't work well (e.g. it doesn't always follow symlinks when a directory does not contain at least one "real" file), and we would knowingly have to decide creating and maintaining a comparable tool So, requiring explicit paths gives clearer interfaces (although more typing is required) and reduces searching complexity. In the case of display-lily and all other built-in modules we can reduce this by adding the scm directory to the include path. But for external packages I am pretty sure that using explicit paths from the include paths (like we already have it with \include) makes sense. ### However, I'd like to stress that we are (or at least should be) talking about several different things when saying "package" and "loading": 1) Loading a package/module *file*, parsing its code and making elements available to clients 1a) One question is how to address these includable files 1b) The other question is where the elements and which elements of the loaded files are visible. 2) Loading/using a package in a more conceptual sense, like "edition- engraver" or "scholarLY". Here all the stuff about option handling becomes (more) relevant, and the questions of 1) are prerequisites. ### So when talking about new commands to "load packages" we are actually talking about two different things that *both* have to be done. Urs
Re: Issue 5719: Tie formatting maintenance (issue 581560049 by nine.fierce.ball...@gmail.com)
LGTM https://codereview.appspot.com/581560049/
Re: pushed wrong branch
Am Freitag, den 31.01.2020, 22:45 +0100 schrieb David Kastrup: > Jonas Hahnfeld < > hah...@hahnjo.de > > writes: > > > I accidentally pushed my branch for issue #5702 (Disable C++ > > exceptions) instead of issue #5690 (Tiny fixes for extractpdfmark). > > I immediately reset staging and it now has the correct commits, fingers > > crossed that patchy did not yet pick up the wrong refs... > > > > Sorry for any inconvenience this may cause! > > Patchy checks before pushing that the tested version of staging is still > in the staging branch and fails if it isn't. So you have a timing > window for fixing things that is at least as large as the fastest Patchy > doing duty can process all the tests. > > If you managed to get the change out before it went to master, you > should be good. Ah, good to know. Yes, the commits have been in staging for at most 2 minutes, so all good. Thanks, Jonas signature.asc Description: This is a digitally signed message part
Re: pushed wrong branch
On 31/01/2020 21:45, David Kastrup wrote: Jonas Hahnfeld writes: I accidentally pushed my branch for issue #5702 (Disable C++ exceptions) instead of issue #5690 (Tiny fixes for extractpdfmark). I immediately reset staging and it now has the correct commits, fingers crossed that patchy did not yet pick up the wrong refs... Sorry for any inconvenience this may cause! Patchy checks before pushing that the tested version of staging is still in the staging branch and fails if it isn't. So you have a timing window for fixing things that is at least as large as the fastest Patchy doing duty can process all the tests. If you managed to get the change out before it went to master, you should be good. Process and scripts have seen some refinement over the years... All pushed :D - although mine was beaten by someone else's patchy. James
Re: pushed wrong branch
Jonas Hahnfeld writes: > I accidentally pushed my branch for issue #5702 (Disable C++ > exceptions) instead of issue #5690 (Tiny fixes for extractpdfmark). > I immediately reset staging and it now has the correct commits, fingers > crossed that patchy did not yet pick up the wrong refs... > > Sorry for any inconvenience this may cause! Patchy checks before pushing that the tested version of staging is still in the staging branch and fails if it isn't. So you have a timing window for fixing things that is at least as large as the fastest Patchy doing duty can process all the tests. If you managed to get the change out before it went to master, you should be good. Process and scripts have seen some refinement over the years... -- David Kastrup
Re: pushed wrong branch
On 31/01/2020 21:02, Jonas Hahnfeld wrote: I accidentally pushed my branch for issue #5702 (Disable C++ exceptions) instead of issue #5690 (Tiny fixes for extractpdfmark). I immediately reset staging and it now has the correct commits, fingers crossed that patchy did not yet pick up the wrong refs... Sorry for any inconvenience this may cause! Jonas We'll soon find out. Starting a patchy-staging run now. ;) James
pushed wrong branch
I accidentally pushed my branch for issue #5702 (Disable C++ exceptions) instead of issue #5690 (Tiny fixes for extractpdfmark). I immediately reset staging and it now has the correct commits, fingers crossed that patchy did not yet pick up the wrong refs... Sorry for any inconvenience this may cause! Jonas signature.asc Description: This is a digitally signed message part
Re: allow overriding of GUILE_AUTO_COMPILE (issue 579270043 by hanw...@gmail.com)
https://codereview.appspot.com/579270043/diff/579270044/lily/main.cc File lily/main.cc (right): https://codereview.appspot.com/579270043/diff/579270044/lily/main.cc#newcode760 lily/main.cc:760: sane_putenv("GUILE_AUTO_COMPILE", "1", false); // disable auto-compile On 2020/01/31 19:43:34, thomasmorley651 wrote: > Shouldn't the comment be changed as well? Done. https://codereview.appspot.com/579270043/
Re: allow overriding of GUILE_AUTO_COMPILE (issue 579270043 by hanw...@gmail.com)
https://codereview.appspot.com/579270043/diff/579270044/lily/main.cc File lily/main.cc (right): https://codereview.appspot.com/579270043/diff/579270044/lily/main.cc#newcode760 lily/main.cc:760: sane_putenv("GUILE_AUTO_COMPILE", "1", false); // disable auto-compile Shouldn't the comment be changed as well? https://codereview.appspot.com/579270043/
Re: Use a pointer for the output parameter of Lily_lexer::scan_word (issue 577440044 by hanw...@gmail.com)
> Stop using non-const references in function signatures Carrying the discussion over from [1], I would like to hear a clear decision that this is the way LilyPond is going to be coded--something more definite than one person proposing a change and another saying it looks good. If this is the way things are going to be, contributors and reviewers would also benefit from guidance on when a function should validate the pointers it receives, and if it doesn't, how that ought to be documented to make up for not being allowed to pass by reference. [1] https://codereview.appspot.com/577410045/ https://codereview.appspot.com/577440044/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On 2020/01/31 18:33:09, hanwenn wrote: > On 2020/01/31 18:22:47, Dan Eble wrote: > > On 2020/01/31 17:52:45, hanwenn wrote: > > > you can do a local alias > > > > > > vector<> = *vec; > > > > > > to aid readability. > > > > The more I think about banning non-const reference parameters, the more I'm > > against it. Google's coding standards may work for them, but their rationale* > > for this one is weak. How can we resolve this disagreement quickly? Do you > > simply have the final say as the project founder? > > Can we have this discussion on a thread separate from this code review? > I want this code to go in. This code is a definite improvement in my book. I like the names of the functions, and it seems to me that eliminating the Pars_start class is a good idea. Han-Wen has responded well to comments (even making changes that are not his preferred way of doing things). This patch LGTM. I would like to see some separate discussion about the status of Input and the use of non-constant reference pointers. But we shouldn't hold up this patch to have that discussion. Carl https://codereview.appspot.com/577410045/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On Fri, Jan 31, 2020 at 7:43 PM Dan Eble wrote: > > Can we have this discussion on a thread separate from this code review? > > I want this code to go in. > > Well, you can't prevent people from replying to their email, but neither can > their replies prevent you from pushing commits. Well, I'm trying to follow the established process here which involves waiting for the code review to be LGTM'd, after which other magical steps happen. Or do I get to bypass process? -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On Jan 31, 2020, at 13:33, hanw...@gmail.com wrote: > > On 2020/01/31 18:22:47, Dan Eble wrote: >> On 2020/01/31 17:52:45, hanwenn wrote: >>> you can do a local alias >>> >>> vector<> = *vec; >>> >>> to aid readability. >> >> The more I think about banning non-const reference parameters, the > more I'm >> against it. Google's coding standards may work for them, but their > rationale* >> for this one is weak. How can we resolve this disagreement quickly? > Do you >> simply have the final say as the project founder? > > Can we have this discussion on a thread separate from this code review? > I want this code to go in. Well, you can't prevent people from replying to their email, but neither can their replies prevent you from pushing commits. — Dan
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
On 2020/01/31 18:06:00, hanwenn wrote: > Will james pick this up automatically now, or does it need > an LGTM? James should pick it up automatically now. https://codereview.appspot.com/561340043/
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
On 2020/01/31 18:33:38, Carl wrote: > IIUC, this is a .clang-format that can be (but is not required to be) used to > format source code and prevent comments about formatting. > > At this point, we are not enforcing a shift to clang-format as the code standard > for LilyPond. > > If this is true, LGTM. > > If we are enforcing a shift to clang-format, then I think we need an LGTM from > David K. correct. https://codereview.appspot.com/561340043/
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
IIUC, this is a .clang-format that can be (but is not required to be) used to format source code and prevent comments about formatting. At this point, we are not enforcing a shift to clang-format as the code standard for LilyPond. If this is true, LGTM. If we are enforcing a shift to clang-format, then I think we need an LGTM from David K. https://codereview.appspot.com/561340043/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On 2020/01/31 18:22:47, Dan Eble wrote: > On 2020/01/31 17:52:45, hanwenn wrote: > > you can do a local alias > > > > vector<> = *vec; > > > > to aid readability. > > The more I think about banning non-const reference parameters, the more I'm > against it. Google's coding standards may work for them, but their rationale* > for this one is weak. How can we resolve this disagreement quickly? Do you > simply have the final say as the project founder? Can we have this discussion on a thread separate from this code review? I want this code to go in. https://codereview.appspot.com/577410045/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On 2020/01/31 17:52:45, hanwenn wrote: > you can do a local alias > > vector<> = *vec; > > to aid readability. The more I think about banning non-const reference parameters, the more I'm against it. Google's coding standards may work for them, but their rationale* for this one is weak. How can we resolve this disagreement quickly? Do you simply have the final say as the project founder? * "References can be confusing, as they have value syntax but pointer semantics." https://codereview.appspot.com/577410045/
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
On 2020/01/31 12:35:45, Dan Eble wrote: > On 2020/01/31 09:39:33, hanwenn wrote: > > I've applied your suggestion; PTAL. > > If Werner likes it, I'm fine with it. I haven't tried it myself because I want > to avoid being drawn into discussing the details of the style, but I like seeing > movement toward a better process. that's great to hear. Will james pick this up automatically now, or does it need an LGTM? https://codereview.appspot.com/561340043/
Re: Introduce ly_scm2utf8_string, and use it for printing text (issue 577440043 by hanw...@gmail.com)
On 2020/01/31 18:01:32, hanwenn wrote: > > The second underscore makes this stand out from the other functions in this > > group. > > it does. Do you have a suggestion to improve? ly_scm2utf8string? ly_scm2utf8? https://codereview.appspot.com/577440043/
Re: Use a pointer for the output parameter of Lily_lexer::scan_word (issue 577440044 by hanw...@gmail.com)
On 2020/01/31 12:22:22, Dan Eble wrote: > On 2020/01/29 06:43:19, hanwenn wrote: > > score performer > > Does this relate to the lexer change, or does it belong on its own? changed description. https://codereview.appspot.com/577440044/
Re: Introduce ly_scm2utf8_string, and use it for printing text (issue 577440043 by hanw...@gmail.com)
On 2020/01/30 15:03:02, Dan Eble wrote: > https://codereview.appspot.com/577440043/diff/553450043/lily/include/lily-guile.hh > File lily/include/lily-guile.hh (right): > > https://codereview.appspot.com/577440043/diff/553450043/lily/include/lily-guile.hh#newcode60 > lily/include/lily-guile.hh:60: std::string ly_scm2utf8_string (SCM); > The second underscore makes this stand out from the other functions in this > group. it does. Do you have a suggestion to improve? https://codereview.appspot.com/577440043/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On 2020/01/31 17:38:55, Dan Eble wrote: > On 2020/01/30 23:22:46, hanwenn wrote: > > In the lily/ directory > > > > git grep 'vector<[^>]\+> &' *c|grep -v const > > > > returns 20 results, which is pretty small, given the number of methods in the > > code base. A cursory inspection suggests that Mike introduced most of these, > and > > I would have probably suggested to use pointers there too. I would also change > > these signatures if would stumble across them while refactoring something > else. > > Wouldn't this policy tend toward crimes against readability like the following? > > void twiddle_vector(vector *vec) > { > if (!vec || vec->empty ()) > return; > > for (size_t i = 0; i < vec->size() - 1; ++i) > { > if ((*vec)[i] < 10) > (*vec)[i] = (*vec)[i] + 2 * (*vec)[i + 1]; > else > (*vec)[i] = (*vec)[i] * 2 - (*vec)[i + 1]; > } > } > > How would you approach that? you can do a local alias vector<> = *vec; to aid readability. https://codereview.appspot.com/577410045/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
On 2020/01/30 23:22:46, hanwenn wrote: > In the lily/ directory > > git grep 'vector<[^>]\+> &' *c|grep -v const > > returns 20 results, which is pretty small, given the number of methods in the > code base. A cursory inspection suggests that Mike introduced most of these, and > I would have probably suggested to use pointers there too. I would also change > these signatures if would stumble across them while refactoring something else. Wouldn't this policy tend toward crimes against readability like the following? void twiddle_vector(vector *vec) { if (!vec || vec->empty ()) return; for (size_t i = 0; i < vec->size() - 1; ++i) { if ((*vec)[i] < 10) (*vec)[i] = (*vec)[i] + 2 * (*vec)[i + 1]; else (*vec)[i] = (*vec)[i] * 2 - (*vec)[i + 1]; } } How would you approach that? https://codereview.appspot.com/577410045/
Re: Move Guile-style modules from scm to scm-modules (issue 567140045 by m...@ursliska.de)
Urs Liska writes: > Am Mittwoch, den 29.01.2020, 07:01 -0800 schrieb d...@gnu.org: >> On 2020/01/29 12:20:10, mail5 wrote: >> > Unfortunately I haven't set up a build system on my new computer >> > yet, >> so this >> > patch is not tested locally at all, so I'm humbly waiting for the >> automated >> > tests to succeed or fail ... >> >> I don't like the "use-modules clauses adjusted accordingly". I don't >> think it makes sense readjusting use-modules clauses all the time >> while >> we are deciding on the final module organisation, so I'd strongly >> suggest first biting the bullet and deciding on a syntax for a >> user-level command able to load Scheme modules without further >> options, >> and then introduce that command. In that manner, future directory >> organisations (which are almost certain to come) will not affect the >> source of user-level documents any more. >> >> https://codereview.appspot.com/567140045/ > > Maybe I'm missing something, but AFAICS there will always be the need > for a module path like (ice-9 regex), or (scm display-lily). We will > have that with *any* user-facing load syntax. \loadScmPackage display-lily or even \loadPackage display-lily.scm with the last .scm getting interpreted specially. #(use-modules ...) is not a user-facing load syntax. We don't want people to have to change their input when an optional package migrates to the system or a local package changes hierarchy. Specific path components may make sense for disambiguation, but if I take a look at what LaTeX does, a flat hierarchy as first user-level approximation does not appear to have significant scaling problems. > > My thought was to separate the two different types of .scm files in > that directory, and that could of course also be achieved by moving the > *other* files, those that are loaded with ly:load from lily.scm to a > different directory. > > Or - of course - I can simply drop this and add new modules to that > same directory for now. > >> > > > -- David Kastrup
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
Dan Eble writes: > On Jan 31, 2020, at 08:31, David Kastrup wrote: >> -fexcess-precision=style >> This option allows further control over excess precision on >> machines where floating-point operations occur in a format >> with more precision or range than the IEEE standard and >> interchange floating-point types. By default, >> -fexcess-precision=fast is in effect; this means that >> operations may be carried out in a wider precision than the >> types specified in the source if that would result in faster >> code, and it is unpredictable when rounding to the types >> specified in the source code takes place. > > This sounds promising. > >> -fexcess-precision=standard is not implemented for languages >> other than C. > > Never mind. Hm. Maybe -mfpmath=sse instead? The problem with switching the whole FPU to reduced precision is that some library functions might not expect that, so it is making me queasy. On the other hand, using SSE might have a negative performance? I just don't have a good idea what we are dealing with here. -- David Kastrup
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
Masamichi Hosoda writes: >>> -fexcess-precision=style >>> This option allows further control over excess precision on >>> machines where floating-point operations occur in a format >>> with more precision or range than the IEEE standard and >>> interchange floating-point types. By default, >>> -fexcess-precision=fast is in effect; this means that >>> operations may be carried out in a wider precision than the >>> types specified in the source if that would result in faster >>> code, and it is unpredictable when rounding to the types >>> specified in the source code takes place. >> >> This sounds promising. > > If I understand correctly, such compiler options are not promising. > > Even if LilyPond C++ source codes are compiled with such option, > libguile without the option may calculate in a wider precision. > In this case, the floating point calculation > inside GUILE causes these issues. The problem as far as I can see are non-reproducible results, and the Guile code paths do not change from one call to the next. So unless just-in-time compilation comes into play, I don't think that Guile behavior should be a problem concerning our non-reproducibility problem. -- David Kastrup
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
>> -fexcess-precision=style >> This option allows further control over excess precision on >> machines where floating-point operations occur in a format >> with more precision or range than the IEEE standard and >> interchange floating-point types. By default, >> -fexcess-precision=fast is in effect; this means that >> operations may be carried out in a wider precision than the >> types specified in the source if that would result in faster >> code, and it is unpredictable when rounding to the types >> specified in the source code takes place. > > This sounds promising. If I understand correctly, such compiler options are not promising. Even if LilyPond C++ source codes are compiled with such option, libguile without the option may calculate in a wider precision. In this case, the floating point calculation inside GUILE causes these issues.
Re: Documentation suggestions.
I've now consolidated the various replies to my original suggestions - sorry it's been so long. Unfortunately I spent far too much time fighting VirtualBox and Linux without as much success as I'd like. So here are my - fairly small- documentation ideas. Sorry I couldn't make formal patches but I'll be far too busy with the real world for the next month. Peter LM 1.2.1 Simple notation. Add a paragraph after the 1st music example: Note-names in all examples use the English or Dutch naming system (white piano keys are C-B). LM 2.1.2 Pitches and key signatures. Subsection Pitch alterations. 3rd paragraph (1)after 'alterations' add 'and note-names'. (2) append: The default language for note-names and alterations is nederlands (Dutch). A question: is "alterations" a good word throughout this subsection? The normal English one is "accidentals", which is used in the Music Glossary reference. NR 3.1.5 File Structure. Subsection Using variables. Add a "Known Issues" subsection at end: In addition to the normal convention for variable names [add reference to LM 2.4.1] variable names can include non-ASCII characters and non-adjacent single underscores and dashes. Any combination of characters is allowed if the variable name is enclosed in double quotation marks. In this case backslashes and double quotation marks need to be escaped with backslashes. --- NR 1.2.5 Bars. Sub section Bar and bar number checks. Add a "known issues" section at end: If MIDI output is selected and volta repeats are in place, the bar number check may fail. It is best to suppress MIDI output whle checking bar numbers. -- NR 3.3.2 Different editions from one source. Subsection Using tags. Add before paragraph 3 ("The arguments..."): \tag, \keepWithTag and \removeWithTag are music functions which take a music expression as their second argument. Thus they cannot be used to filter items such as \book or \score blocks. -- NR 3.2.1 Creating titles headers and footers. Subsection Default layout of headers and footers. Rename to: Default layout of page headers and footers and index it as "page headers", "page footers", "headers, page", "footers, page". Possibly also promote it to a 3rd-level section? It doesn't have anything in common with the previous two subsections.
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
On Jan 31, 2020, at 08:31, David Kastrup wrote: > -fexcess-precision=style > This option allows further control over excess precision on > machines where floating-point operations occur in a format > with more precision or range than the IEEE standard and > interchange floating-point types. By default, > -fexcess-precision=fast is in effect; this means that > operations may be carried out in a wider precision than the > types specified in the source if that would result in faster > code, and it is unpredictable when rounding to the types > specified in the source code takes place. This sounds promising. > -fexcess-precision=standard is not implemented for languages > other than C. Never mind. — Dan
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
ArnoldTheresius writes: > trueroad wrote >> Hello Arnold. >> Thank you for your patch. >> >> If I understand correctly, we only need check the definitions of >> `__x86__` and `__i386__` check. >> >> In x86_64 environment, neither `__x86__` nor `__i386__` are defined. >> >> ``` >> $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__x86__" >> >> $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__i386__" >> >> $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__x86__" >> >> $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__i386__" >> #define __i386__ 1 >> >> $ >> ``` >> >> Therefore, `defined (__code_model_32__)` is not necessary. >> >> If `__SSE2_MATH__` is defined, it only indicates that main.cc is >> compiled with SSE2 math enabled. >> Shared libraries such as libguile may still use x86 FPU. >> If the floating point calculation inside GUILE uses x86 FPU, we need to >> set the precision even if C++ uses SSE2. >> >> Therefore, `defined (__SSE2_MATH__)` is not necessary. >> >> Furthermore, if the floating-point operations of all modules use SSE2, >> setting the x86 FPU precision has no effect because it is not used. >> In other words, there is no problem even if the precision is set on a >> platform that does not need to set. >> >> Therefore, environment definitions such as `defined (__MINGW32__)` is >> not necessary. >> >> >> https://codereview.appspot.com/577450043/ > > Thank you for the clear answer. > > Therfore, do it as suggested [move asm() call closer to _FPU_SETCW() call] > > ArnoldTheresius. > > > > > -- > Sent from: http://lilypond.1069038.n5.nabble.com/Dev-f88644.html None of the following GCC options would help? The following options control compiler behavior regarding floating-point arithmetic. These options trade off between speed and correctness. All must be specifically enabled. -ffloat-store Do not store floating-point variables in registers, and inhibit other options that might change whether a floating- point value is taken from a register or memory. This option prevents undesirable excess precision on machines such as the 68000 where the floating registers (of the 68881) keep more precision than a "double" is supposed to have. Similarly for the x86 architecture. For most programs, the excess precision does only good, but a few programs rely on the precise definition of IEEE floating point. Use -ffloat-store for such programs, after modifying them to store all pertinent intermediate computations into variables. -fexcess-precision=style This option allows further control over excess precision on machines where floating-point operations occur in a format with more precision or range than the IEEE standard and interchange floating-point types. By default, -fexcess-precision=fast is in effect; this means that operations may be carried out in a wider precision than the types specified in the source if that would result in faster code, and it is unpredictable when rounding to the types specified in the source code takes place. When compiling C, if -fexcess-precision=standard is specified then excess precision follows the rules specified in ISO C99; in particular, both casts and assignments cause values to be rounded to their semantic types (whereas -ffloat-store only affects assignments). This option is enabled by default for C if a strict conformance option such as -std=c99 is used. -ffast-math enables -fexcess-precision=fast by default regardless of whether a strict conformance option is used. -fexcess-precision=standard is not implemented for languages other than C. On the x86, it has no effect if -mfpmath=sse or -mfpmath=sse+387 is specified; in the former case, IEEE semantics apply without excess precision, and in the latter, rounding is unpredictable. -ffast-math Sets the options -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans, -fcx-limited-range and -fexcess-precision=fast. This option causes the preprocessor macro "__FAST_MATH__" to be defined. This option is not turned on by any -O option besides -Ofast since it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications. -- David Kastrup
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
On 2020/01/31 09:39:33, hanwenn wrote: > I've applied your suggestion; PTAL. If Werner likes it, I'm fine with it. I haven't tried it myself because I want to avoid being drawn into discussing the details of the style, but I like seeing movement toward a better process. https://codereview.appspot.com/561340043/
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
trueroad wrote > Hello Arnold. > Thank you for your patch. > > If I understand correctly, we only need check the definitions of > `__x86__` and `__i386__` check. > > In x86_64 environment, neither `__x86__` nor `__i386__` are defined. > > ``` > $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__x86__" > > $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__i386__" > > $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__x86__" > > $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__i386__" > #define __i386__ 1 > > $ > ``` > > Therefore, `defined (__code_model_32__)` is not necessary. > > If `__SSE2_MATH__` is defined, it only indicates that main.cc is > compiled with SSE2 math enabled. > Shared libraries such as libguile may still use x86 FPU. > If the floating point calculation inside GUILE uses x86 FPU, we need to > set the precision even if C++ uses SSE2. > > Therefore, `defined (__SSE2_MATH__)` is not necessary. > > Furthermore, if the floating-point operations of all modules use SSE2, > setting the x86 FPU precision has no effect because it is not used. > In other words, there is no problem even if the precision is set on a > platform that does not need to set. > > Therefore, environment definitions such as `defined (__MINGW32__)` is > not necessary. > > > https://codereview.appspot.com/577450043/ Thank you for the clear answer. Therfore, do it as suggested [move asm() call closer to _FPU_SETCW() call] ArnoldTheresius. -- Sent from: http://lilypond.1069038.n5.nabble.com/Dev-f88644.html
Re: Use a pointer for the output parameter of Lily_lexer::scan_word (issue 577440044 by hanw...@gmail.com)
On 2020/01/29 06:43:19, hanwenn wrote: > score performer Does this relate to the lexer change, or does it belong on its own? https://codereview.appspot.com/577440044/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
ezt írta (időpont: 2020. jan. 31., P, 11:55): > > > https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc > File lily/parse-scm.cc (right): > > https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc#newcode77 > lily/parse-scm.cc:77: const Input *hi = >start_; > On 2020/01/31 10:49:13, benko.pal wrote: > > I understand (and like) adding the const, but can't understand > changing the > > reference to pointer even after reading the whole discussion. > > the change from & to * here is merely syntactical. of course it is; but to me it's nearer to obfuscation than to cleanup.
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc File lily/parse-scm.cc (right): https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc#newcode77 lily/parse-scm.cc:77: const Input *hi = >start_; On 2020/01/31 10:49:13, benko.pal wrote: > I understand (and like) adding the const, but can't understand changing the > reference to pointer even after reading the whole discussion. the change from & to * here is merely syntactical. For me, the discussion around & vs * is about using non-const & in function signatures and as class members. However, what I want most at this point is to submit this change, so I can get on with the next change in the series. https://codereview.appspot.com/577410045/
Re: Clean up embedded scheme parsing/evaluation. (issue 577410045 by hanw...@gmail.com)
https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc File lily/parse-scm.cc (right): https://codereview.appspot.com/577410045/diff/581560047/lily/parse-scm.cc#newcode77 lily/parse-scm.cc:77: const Input *hi = >start_; I understand (and like) adding the const, but can't understand changing the reference to pointer even after reading the whole discussion. https://codereview.appspot.com/577410045/
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
Hello Arnold. Thank you for your patch. If I understand correctly, we only need check the definitions of `__x86__` and `__i386__` check. In x86_64 environment, neither `__x86__` nor `__i386__` are defined. ``` $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__x86__" $ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__i386__" $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__x86__" $ echo | i686-w64-mingw32-gcc -dM -E - | grep "__i386__" #define __i386__ 1 $ ``` Therefore, `defined (__code_model_32__)` is not necessary. If `__SSE2_MATH__` is defined, it only indicates that main.cc is compiled with SSE2 math enabled. Shared libraries such as libguile may still use x86 FPU. If the floating point calculation inside GUILE uses x86 FPU, we need to set the precision even if C++ uses SSE2. Therefore, `defined (__SSE2_MATH__)` is not necessary. Furthermore, if the floating-point operations of all modules use SSE2, setting the x86 FPU precision has no effect because it is not used. In other words, there is no problem even if the precision is set on a platform that does not need to set. Therefore, environment definitions such as `defined (__MINGW32__)` is not necessary. https://codereview.appspot.com/577450043/
Re: Add a tentative .clang-format for LilyPond. (issue 561340043 by hanw...@gmail.com)
On 2020/01/29 12:19:54, Dan Eble wrote: > On 2020/01/29 07:41:40, lemzwerg wrote: > > The output looks good. BTW, for the sake of Emacs, it would be nice if two > > spaces after a full dot could be retained in comments. Does such an option > > exist? > > Retaining everything with ReflowComments:false might be the only way. > https://releases.llvm.org/9.0.0/tools/clang/docs/ClangFormatStyleOptions.html I've applied your suggestion; PTAL. https://codereview.appspot.com/561340043/
PATCHES - Countdown for January 31st
Hello, Here is the current patch countdown list. The next countdown will be on February 2nd. A quick synopsis of all patches currently in the review process can be found here: http://philholmes.net/lilypond/allura/ [1] PUSH: 5704 fixcc.py: change recommended use in --help - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5704 [2] http://codereview.appspot.com/571470043 [3] 5698 int->vsize in various alignment and page-layout methods - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5698 [4] http://codereview.appspot.com/563420043 [5] 5693 Doc: Corrected doc string for ly:dimension? - davidsg https://sourceforge.net/p/testlilyissues/issues/5693 [6] http://codereview.appspot.com/547470049 [7] 5690 Tiny fixes for extractpdfmark - Jonas Hahnfeld https://sourceforge.net/p/testlilyissues/issues/5690 [8] http://codereview.appspot.com/571420055 [9] 5683 GUILE2: generate internals doc in UTF-8 - hanwen https://sourceforge.net/p/testlilyissues/issues/5683 [10] http://codereview.appspot.com/575540045 [11] 5677 Set page breaking properties in the System grob - hanwen https://sourceforge.net/p/testlilyissues/issues/5677 [12] http://codereview.appspot.com/581470047 [13] 5672 Clean up and document include file searching - hanwen https://sourceforge.net/p/testlilyissues/issues/5672 [14] http://codereview.appspot.com/573400043 [15] 5646 Switch to Python 3.x - Jonas Hahnfeld https://sourceforge.net/p/testlilyissues/issues/5646 [16] http://codereview.appspot.com/545370043 [17] COUNTDOWN: 5710 GUILE 2: Increase initial heap - hanwen https://sourceforge.net/p/testlilyissues/issues/5710 [18] http://codereview.appspot.com/547540043 [19] 5709 Use a pointer for the output parameter of Lily_lexer::scan_word - hanwen https://sourceforge.net/p/testlilyissues/issues/5709 [20] http://codereview.appspot.com/577440044 [21] 5707 fix cueDuring and quoteDuring display test - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5707 [22] http://codereview.appspot.com/563430046 [23] 5705 int->long in Stem::get_beaming and set_beaming - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5705 [24] http://codereview.appspot.com/561350044 [25] 5702 Disable C++ exceptions - Jonas Hahnfeld https://sourceforge.net/p/testlilyissues/issues/5702 [26] http://codereview.appspot.com/571430048 [27] 5701 Fix --sloppy option of scripts/auxiliar/fixcc.py - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5701 [28] http://codereview.appspot.com/577420044 [29] 5681 Instrument and improve GC time - hanwen https://sourceforge.net/p/testlilyissues/issues/5681 [30] http://codereview.appspot.com/573420043 [31] 4943 Manual page breaking causing assertion failure - Thomas Morley https://sourceforge.net/p/testlilyissues/issues/4943 [32] http://codereview.appspot.com/577450043 [33] REVIEW: 5712 Split context_specification syntax constructor - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5712 [34] http://codereview.appspot.com/565560043 [35] 5703 Run scripts/auxiliar/fixcc.py - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5703 [36] http://codereview.appspot.com/549480043 [37] 5700 Add a tentative .clang-format for LilyPond. - hanwen https://sourceforge.net/p/testlilyissues/issues/5700 [38] http://codereview.appspot.com/561340043 [39] 5699 LilyPond for GUILE 2.2 - hanwen https://sourceforge.net/p/testlilyissues/issues/5699 [40] http://codereview.appspot.com/563400065 [41] 5682 Only print out open type font substitution if there was a change - hanwen https://sourceforge.net/p/testlilyissues/issues/5682 [42] http://codereview.appspot.com/577390043 [43] 5670 lily: fix some type conversion warnings - hanwen https://sourceforge.net/p/testlilyissues/issues/5670 [44] http://codereview.appspot.com/557190043 [45] 5362 Generalize context searches - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5362 [46] http://codereview.appspot.com/579250043 [47] NEW: 5713 Remove likely dead code from set_property_from_event - Dan Eble https://sourceforge.net/p/testlilyissues/issues/5713 [48] http://codereview.appspot.com/557260047 [49] 5706 Doc: Correct and extend infos about LilyDev setup - xmichael-k https://sourceforge.net/p/testlilyissues/issues/5706 [50] http://codereview.appspot.com/561360043 [51] 5674 document and test slur score debugging - hanwen https://sourceforge.net/p/testlilyissues/issues/5674 [52] http://codereview.appspot.com/555160043 [53] WAITING: 5688 Announce end of multi-measure-rest - hanwen https://sourceforge.net/p/testlilyissues/issues/5688 [54] http://codereview.appspot.com/561310045 [55] *** Regards, James Links: -- [1] http://philholmes.net/lilypond/allura/ [2] https://sourceforge.net/p/testlilyissues/issues/5704 [3] http://codereview.appspot.com/571470043 [4] https://sourceforge.net/p/testlilyissues/issues/5698 [5] http://codereview.appspot.com/563420043 [6]
Re: Doc: Correct and extend infos about LilyDev setup (issue 561360043 by michael.kaepp...@googlemail.com)
Il giorno ven 31 gen 2020 alle ore 09:07 Michael Käppler ha scritto: > Am 30.01.2020 um 15:08 schrieb Federico Bruni: > > I see that it's possible to log in as root user without any password > _even > > in the virtual machine_. Not good. > That was my point. > > I used the --password="" in the Makefile to avoid the step to set the > > password when starting the container with systemd-nspawn. > > > > In mkosi manual I read: > > > > --password= > >> : Set the password of the root user. By default the root account is > >> locked. If this option is not used but a file mkosi.rootpw exists in the > >> local directory the root password is automatically read from it. > >> > > So we may remove the --password option to keep the root account disabled > > and use the mkosi.rootpw to set the password. > > I will test this and hopefully include it in LilyDev v3. > I read the manual differently. I think mkosi.rootpw is just the 'file > alternative' to > the command line, like mkosi.container, etc. So if you set the password > in mkosi.rootpw, > the root account will be active, too. But I haven't tested this. > You're right. I read too quickly and thought that this could be a kind of custom user file, while it's part of the files used to build the image. > IIUC, we could change the root login shell to /sbin/nologin to lock the > root account > in the post-install script. What do you think? > > I have a second thought about this. The whole point of setting a blank root password was that systemd-nspawn required a root login (at least 2 years ago). In fact in the README I suggested to log in as root and then change to dev. But I see that I can log in as dev without any problem (systemd version 243). Can you confirm you can log in as dev in the container? So I'll just remove the --password="" from the Makefile and change the README accordingly.
Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by thomasmorle...@gmail.com)
Dan Eble wrote > On Jan 30, 2020, at 05:17, > trueroad@ > wrote: >> >> How about this patch? >> Sorry, not tested. > > Bringing the _FPU_SETCW() branch and the asm() branch closer together is > an improvement. > (I don't have the resources to test this patch.) Yes, bringing _FPU_SETCW() and asm() closer together is a good idea. I added some fprintf output around this asm() just in case I did catch an architecure where this assembler call would cause a 'premature exit'. I think, we need some additional checks of preprocessor defines, when NOT to execute the inline assembler! Originally I did only compare the preprocessor defines for * mingw 32-bit x87 - needs SETCW * mingw 32-bit sse2 - does not need SETCW - I do not know if SETCW will harm! * mingw 64-bit - does not neet SETCW - I do not know if SETCW will harm! On my LILYDEV I added mingw, but I have no idea how to add all the other target compilers GUB uses. Especially I did not find, which package form the debian DVDs to install to get the two DARWIN targets. So I have a problem to check, which preprocessor checks to include - I could just restrict it to MINGW until now Can anyone create the lists of the preprocessor defines for (some of) the other gcc targets? I just looked up, it should be the command line »*gcc -dM -E« (prepend the target name before gcc) to output this predefines to standard output (where it can be directed into a file). ArnoldTheresius, the initiator of this patch. ('Arnold' on the German Lilypond Forum) -- Sent from: http://lilypond.1069038.n5.nabble.com/Dev-f88644.html
Re: Doc: Correct and extend infos about LilyDev setup (issue 561360043 by michael.kaepp...@googlemail.com)
Am 30.01.2020 um 15:08 schrieb Federico Bruni: I see that it's possible to log in as root user without any password _even in the virtual machine_. Not good. That was my point. I used the --password="" in the Makefile to avoid the step to set the password when starting the container with systemd-nspawn. In mkosi manual I read: --password= : Set the password of the root user. By default the root account is locked. If this option is not used but a file mkosi.rootpw exists in the local directory the root password is automatically read from it. So we may remove the --password option to keep the root account disabled and use the mkosi.rootpw to set the password. I will test this and hopefully include it in LilyDev v3. I read the manual differently. I think mkosi.rootpw is just the 'file alternative' to the command line, like mkosi.container, etc. So if you set the password in mkosi.rootpw, the root account will be active, too. But I haven't tested this. IIUC, we could change the root login shell to /sbin/nologin to lock the root account in the post-install script. What do you think? Cheers, Michael