Re: Looking for help in configuring LilyDev in VirtualBox

2020-01-23 Thread Michael Käppler

Am 23.01.2020 um 11:45 schrieb Peter Toye:

Re: Looking for help in configuring LilyDev in VirtualBox Wednesday,
January 22, 2020, 10:35:45 PM, Michael Käppler wrote:


Am 22.01.2020 um 14:03 schrieb Peter Toye:

> Yes, I would suggest that you start from scratch again.


That's because the keyboard-layout package is not installed in LilyDev
v1 by default. In LilyDev v2, it will be there.


I hadn't realised that your new instructions were for the next issue
of LilyDev. Are there any other missing bits? I noticed that some of
the utilities for listing hardware like lsusb aren't there.

Do you think that 'lsusb' could be necessary? I think Federico's
intention was to keep the image as small as possible,
because one can easily install every debian package in the stretch repo
afterwards.

Best regards,
Michael



Re: lily: fix some type conversion warnings (issue 557190043 by hanw...@gmail.com)

2020-01-23 Thread nine . fierce . ballads
On 2020/01/23 20:49:01, hanwenn wrote:
> I mean, if we were writing a new SSL library, I surely would want
scrutiny on
> every cast, but we aren't.

The question is, do you want scrutiny of any cast?  If you do, then
keeping the warnings enabled and keeping the signal-to-noise ratio high
by casting only where it is well justified is the right approach.  If
you don't care, disable the warnings.

> Can you point me to a conversion warning in LilyPond which could cause
a
> genuine, user-visible problem?

I'm not going to spend the time to sift through past commits, current
warnings, and existing casts to answer this properly.  One involving a
shorter integer that sticks in my mind (because I was recently working
on resolving it) involves MIDI track number, a 16-bit number.  It would
not surprise me to find places in the MIDI code where conversions to
8-bit numbers occur; perhaps there's a questionable one in there
somewhere.

Now, I would prefer to leave off defending my stance on this, and let
the senior contributors decide what is going to happen in this project.

https://codereview.appspot.com/557190043/



Re: GUILE 2/3 and string encoding cost

2020-01-23 Thread David Kastrup
Han-Wen Nienhuys  writes:

> On Wed, Jan 22, 2020 at 10:53 PM Han-Wen Nienhuys  wrote:
>
>> The GUILE 2.0 release
>>
>>   https://lwn.net/Articles/428288/
>>
>> has one big red flag for me.
>>
>>   * Switch to the Boehm-Demers-Weiser garbage collector
>>
>
> We can easily measure this, by adding the following to
>
> #(display (version))
> #(display " gc time taken: ")
> #(display (* 1.0 (/ (cdr (assoc 'gc-time-taken (gc-stats)))
> internal-time-units-per-second)))
> #(display "\n")
>
> on mozart-hrn-3, over 3 runs, we get
>
> 2.0.14  - avg 2.1s
> 1.8.8 - avg 0.31s
>
> so the new GC is about 5-10x slower than the old one. With GUILE 1.8,
> garbage collection covers typically is 10% of the runtime, so all things
> equal, the Boehm GC would cause a 1.5-2.0x slowdown in the total.
>
> It would be good to see how the JITting of code impacts Scheme
> execution.

Boehm GC can work in a background thread I think.  And Guile-v2
applications typically just let all their data be treated as pointers
rather than using a smob-marking algorithm like we do, and it is
conceivable that Boehm GC's individual mark function does not scale.

However, considering everything a pointer for a 32bit application that
can eat a significant ratio of the total address space is a nightmare:
there would be just too much memory pinned down due to conservative
garbage collection.

On a 64bit application, this would be somewhat more tenable, but we'd
need to override operator new for smobs.

Or do we?  Maybe the heap is collected by default, and we need to switch
that off?

-- 
David Kastrup



Re: GUILE 2/3 and string encoding cost

2020-01-23 Thread Han-Wen Nienhuys
On Wed, Jan 22, 2020 at 10:53 PM Han-Wen Nienhuys  wrote:

> The GUILE 2.0 release
>
>   https://lwn.net/Articles/428288/
>
> has one big red flag for me.
>
>   * Switch to the Boehm-Demers-Weiser garbage collector
>

We can easily measure this, by adding the following to

#(display (version))
#(display " gc time taken: ")
#(display (* 1.0 (/ (cdr (assoc 'gc-time-taken (gc-stats)))
internal-time-units-per-second)))
#(display "\n")

on mozart-hrn-3, over 3 runs, we get

2.0.14  - avg 2.1s
1.8.8 - avg 0.31s

so the new GC is about 5-10x slower than the old one. With GUILE 1.8,
garbage collection covers typically is 10% of the runtime, so all things
equal, the Boehm GC would cause a 1.5-2.0x slowdown in the total.

It would be good to see how the JITting of code impacts Scheme execution.

-- 
Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen


Re: Looking for help in configuring LilyDev in VirtualBox

2020-01-23 Thread Federico Bruni
Il giorno gio 23 gen 2020 alle 18:30, Michael Käppler 
 ha scritto:
We figured out, that the clipboard service /usr/bin/VBoxClient 
--clipboard is not running
 on Peter's LilyDev instance. I could not reproduce this on my v1 
image.


 What we both noticed was that startup occassionally fails with a
 console prompt "Enter Maintenance mode...".
 Have you ever noticed this behaviour, too? I was not able to 
reproduce it reliably, so

 it's hard to track down.


No, but I tested VirtualBox just a few times.

I will let you know when v2 is released.





Re: lily: fix some type conversion warnings (issue 557190043 by hanw...@gmail.com)

2020-01-23 Thread David Kastrup
hanw...@gmail.com writes:

> In LilyPond, the bulk of the warnings come from unsigned 64 bit sizes,
> ie. vector and list sizes.
>
> In order to cause an error, you would have to create vector or list of
> over 2G of 
> elements (on 32 bit architecture), so the unsigned size would be
> converted to a negative integer. Since our objects 
> are all larger than a single byte, there isn't enough memory for this to
> be possible. (The same holds for 64 bit, 
> except that you can't buy machines with that much RAM)

Reality check: my laptop is something like 10 years old and holds 16GB
of RAM.

-- 
David Kastrup



Re: New branch guile-v3-work ?

2020-01-23 Thread Thomas Morley
Am Do., 23. Jan. 2020 um 10:48 Uhr schrieb Thomas Morley
:
>
> Am Do., 23. Jan. 2020 um 10:35 Uhr schrieb David Kastrup :
> >
> > Thomas Morley  writes:
> >
> > > Hi,
> > >
> > > I once pushed the /dev/guile-v2-work-branch to our repo.
> > > Would it be of help to have a /dev/guile-v3-work as well?
> > > If so, I'd need to do some clean up, currently my lily-guile3-build is
> > > a bit messy.
> >
> > Can you summarize the differences?  If there are extensive changes, we
> > probably want most of the solution in the main source code or
> > rebasing/cherry-picking becomes a nightmare.
> >
> > --
> > David Kastrup
>
> From my local branch, mostly on top of guile-v2-work (with comments):
>
> hermann@kasten ~/lilypond-git-guile-3.0 (dev/21-1-2020-test-guile3)$
> git log --oneline
>
>probably in master soon:
> 16df8129ba (HEAD -> dev/21-1-2020-test-guile3) Han-Wens patch about
> ly_scm_write_string
>
>   gettext-changes for recently added/modified regtests:
> fe3fd55f95 Changes for recent regtests
>
> 47595f0f31 Let aclocal.m4 and configure.ac accept guile-config with version 3
>
> a8485e226d Guile-3 uses G_ for gettext instead of previous _
>
> 114b337d02 Let configure work with guile 3.0
>
> 26cbcda51a Work-around to fix utf-8-meta-data for >= guile-2.2.4
>
> 1ab8714f8b Initialize locale in lily.scm
>
>   Suggestion by Arne Babenhausen form the guile-list about
>   "ly:encode-string-for-pdf"
>   and

After Issue 5665 Remove broken and undocumented tracing features
https://sourceforge.net/p/testlilyissues/issues/5665/
this is superfluous:

>   adding (ice-9 threads)) to the used modules in memory-trace.scm
> 6a497e2b58 Suggestions by Arne
>
>   Simply commenting all previous functionality of ly:protects
> 1a688b3103 ly:protects doesn't work with guilev2
>
> Cheers,
>   Harm



Re: lily: fix some type conversion warnings (issue 557190043 by hanw...@gmail.com)

2020-01-23 Thread hanwenn
On 2020/01/23 20:02:58, Dan Eble wrote:
> On 2020/01/22 10:18:48, hanwenn wrote:
> > alternately, we could just do -Wno-conversion in the makefile, and
we wouldn't
> > have to do any work here at all.
> 
> These warnings weren't implemented just to irritate us.  They were
implemented
> because C is the basement of C++ and there are bugs hiding in its dark
corners.

That is a beautiful metaphor, but can you be a little more concrete? The
integer conversion
is the same between C and C++, and the warnings are applied to all C
code. That doesn't mean
that our C code would has the same kind of problems, and that the impact
of those problems
warrant investment to address them.

I mean, if we were writing a new SSL library, I surely would want
scrutiny on every cast, but
we aren't.

In LilyPond, the bulk of the warnings come from unsigned 64 bit sizes,
ie. vector and list sizes.

In order to cause an error, you would have to create vector or list of
over 2G of 
elements (on 32 bit architecture), so the unsigned size would be
converted to a negative integer. Since our objects 
are all larger than a single byte, there isn't enough memory for this to
be possible. (The same holds for 64 bit, 
except that you can't buy machines with that much RAM)

Similarly, for causing a problem by converting 64-bit size_t to a 32-bit
int, you'd have to create something 
with a size of over 2e9. What kind of score do you have in mind that
would cause this problem?

> My answer would be different if this were one of those categories of
warnings
> with a significant number of false positives, but it isn't, as far as
I've seen.

Can you point me to a conversion warning in LilyPond which could cause a
genuine, user-visible problem?


https://codereview.appspot.com/557190043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread lemzwerg--- via Discussions on LilyPond development
OK, point taken.  Thanks for all the responses.

Well, then the ugly way :-)

https://codereview.appspot.com/579240043/



Re: lily: fix some type conversion warnings (issue 557190043 by hanw...@gmail.com)

2020-01-23 Thread nine . fierce . ballads
On 2020/01/22 10:18:48, hanwenn wrote:
> alternately, we could just do -Wno-conversion in the makefile, and we
wouldn't
> have to do any work here at all.

These warnings weren't implemented just to irritate us.  They were
implemented because C is the basement of C++ and there are bugs hiding
in its dark corners.

My answer would be different if this were one of those categories of
warnings with a significant number of false positives, but it isn't, as
far as I've seen.


https://codereview.appspot.com/557190043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread Hans Åberg


> On 23 Jan 2020, at 13:43, lemzwerg--- via Discussions on LilyPond development 
>  wrote:
> 
>> Why is this ugly? std::string is really the name of the class.
> 
> No question, but I would prefer
> 
>  struct xxx {
>using std:string;
> 
>string foo;
>string bar;
>string baz;
>  }
> }
> 
> to
> 
>  struct xxx {
>std::string foo;
>std::string bar;
>std::string baz;
>  }
> 
> for example, to increase legibility if there are many strings.

When using ones own namespace reusing names of std, then the external object 
must be qualified. For example,

namespace lly {

  class string {
  public:
string(const std::string&);

explicit operator std::string() const;
  };

  …

  inline string operator+(string& x, string& y) {
return std::string(x) + std::string(y);
  }

} // namespace lly





Re: Looking for help in configuring LilyDev in VirtualBox

2020-01-23 Thread Michael Käppler

Am 23.01.2020 um 12:11 schrieb Federico Bruni:

If it helps, I can release v2 tomorrow.
Michael, let me know if you have other PRs to send.

Yes, I have some, but did not have the time to test them thoroughly.
But they are completely unrelated to Peter's recent problems.
I'd like to to test Dan's changes relating to Docker, too, but
did not found enough time.
My PRs would also fit into v3, IMHO, so I'm completely happy
with a v2 release tomorrow. Then I can post my CG patch
for review which reduces the risk that I will forget about it.


So the basic question is: why isn't it starting up? I used to be a
Solaris sysadmin, but that ended 20 years ago and my copy of Frisch
is long gone. I don't really know because I can't reproduce this
behaviour on my machine.

Peter, I skipped most of your previous emails because of the poor
quoting which made them unreadable.
Now the quoting is correct and I'm reading again.
What is not starting up?


AFAIK, the shared clipboard does not work. Peter did install from
scratch, with nearly the same setup
I have (Win 10 as host os, VirtualBox 6.1  - I use 6.0), to no avail.
We figured out, that the clipboard service /usr/bin/VBoxClient
--clipboard is not running
on Peter's LilyDev instance. I could not reproduce this on my v1 image.

What we both noticed was that startup occassionally fails with a
console prompt "Enter Maintenance mode...".
Have you ever noticed this behaviour, too? I was not able to reproduce
it reliably, so
it's hard to track down.

Cheers,
Michael




PATCHES - Countdown for January 23rd

2020-01-23 Thread pkx166h

Hello,

Here is the current patch countdown list. The next countdown will be on
January 25th

A quick synopsis of all patches currently in the review process can be
found here:

http://philholmes.net/lilypond/allura/




 Push:

5665 Remove broken and undocumented tracing features - Jonas Hahnfeld
https://sourceforge.net/p/testlilyissues/issues/5665
http://codereview.appspot.com/577320043

5660 Doc: Added documentation for fill-line line-width - davidsg
https://sourceforge.net/p/testlilyissues/issues/5660
http://codereview.appspot.com/583340043


 Countdown:

5676 remove obsolete lines from lily-guile-macros.hh - hanwen
https://sourceforge.net/p/testlilyissues/issues/5676
http://codereview.appspot.com/555170043

5675 Document C++ structs for slur scoring - hanwen
https://sourceforge.net/p/testlilyissues/issues/5675
http://codereview.appspot.com/571380043

5673 Remove implicit evaluation of the ".twy" file - hanwen
https://sourceforge.net/p/testlilyissues/issues/5673
http://codereview.appspot.com/551380043

5672 Clean up and document include file searching - hanwen
https://sourceforge.net/p/testlilyissues/issues/5672
http://codereview.appspot.com/573400043

5671 lily/page-breaking: pass vector by reference - hanwen
https://sourceforge.net/p/testlilyissues/issues/5671
http://codereview.appspot.com/581510043

5669 Document why System::rank_type is int16 - hanwen
https://sourceforge.net/p/testlilyissues/issues/5669
http://codereview.appspot.com/559370043

5668 Documentation: fix typo in German spacing.itely file - hanwen
https://sourceforge.net/p/testlilyissues/issues/5668
http://codereview.appspot.com/581490043

5667 Documentation: fix typos in tool naming - hanwen
https://sourceforge.net/p/testlilyissues/issues/5667
http://codereview.appspot.com/581480043

5666 ly_scm_write_string: call scm_write directly - hanwen
https://sourceforge.net/p/testlilyissues/issues/5666
http://codereview.appspot.com/545450043

4550 Avoid "using" directives in included files - Dan Eble
https://sourceforge.net/p/testlilyissues/issues/4550
http://codereview.appspot.com/579240043


 Review:

5670 lily: fix some type conversion warnings - hanwen
https://sourceforge.net/p/testlilyissues/issues/5670
http://codereview.appspot.com/557190043


 New:

5678 l -> lilne - hanwen
https://sourceforge.net/p/testlilyissues/issues/5678
http://codereview.appspot.com/581470047


***


Regards,

James




Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread dak
On 2020/01/23 14:36:26, dak wrote:
> On 2020/01/23 12:43:34, lemzwerg wrote:
> > > Why is this ugly? std::string is really the name of the class.
> > 
> > No question, but I would prefer
> > 
> >   struct xxx {
> > using std:string;
> > 
> > string foo;
> > string bar;
> > string baz;
> >   }
> > }
> > 
> > to
> > 
> >   struct xxx {
> > std::string foo;
> > std::string bar;
> > std::string baz;
> >   }
> > 
> > for example, to increase legibility if there are many strings.
> 
> In my book, local types _decrease_ legibility since they force you to
hunt
> around for the definition in order to know what one is actually
talking about.

But it's not actually an opinion contest.  The question is what use is
predominant in current C++ programming.  And most particularly in
_libraries_, one does not introduce arbitrary type aliases without very
good reason.

https://codereview.appspot.com/579240043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread dak
On 2020/01/23 12:43:34, lemzwerg wrote:
> > Why is this ugly? std::string is really the name of the class.
> 
> No question, but I would prefer
> 
>   struct xxx {
> using std:string;
> 
> string foo;
> string bar;
> string baz;
>   }
> }
> 
> to
> 
>   struct xxx {
> std::string foo;
> std::string bar;
> std::string baz;
>   }
> 
> for example, to increase legibility if there are many strings.

In my book, local types _decrease_ legibility since they force you to
hunt around for the definition in order to know what one is actually
talking about.

https://codereview.appspot.com/579240043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread nine . fierce . ballads


https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh
File flower/include/file-name.hh (right):

https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh#newcode47
flower/include/file-name.hh:47: std::string root_;
On 2020/01/23 11:33:11, lemzwerg wrote:
> This is very ugly.

I sympathize, but it is unambiguous.

> What about using the `std` namespace within a group instead?

It is possible to define a type alias File_name::string that can be used
as "string" in the body of the class definition, in the parameter lists
of File_name member functions (but not in the return values), and in the
bodies of File_name member functions.  It would look like this:

class File_name
{
  using string = std::string; // C++11
  // or in the old style: typedef std::string string;
  ...

Of course, you would need to do the same for each type or function that
you wanted to avoid qualifying, and you would still have a bad time if
you tried to use it in particular cases where it creates ambiguity.

In a professional setting, I wouldn't advocate using this technique in
such a simple case, but if I had colleagues who loved it, I would put up
with it to keep the peace.  I'd ask them not to demand that I follow
their example in subsystems that were my responsibility.

I expect that switching to this style consistently in LilyPond would
require an amount of labor that I am not currently willing to devote. 
Thankfully, it seems the consensus on this patch is starting to point
toward "take it" rather than "leave it."

https://codereview.appspot.com/579240043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread jonas . hahnfeld


https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh
File flower/include/file-name.hh (right):

https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh#newcode47
flower/include/file-name.hh:47: std::string root_;
On 2020/01/23 11:33:11, lemzwerg wrote:
> This is very ugly.  What about using the `std` namespace within a
group instead?

Why is this ugly? std::string is really the name of the class. See this
SO thread on my "using namespace" is considered back practice:
https://stackoverflow.com/q/1452721/10606944

https://codereview.appspot.com/579240043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread lemzwerg--- via Discussions on LilyPond development
> Why is this ugly? std::string is really the name of the class.

No question, but I would prefer

  struct xxx {
using std:string;

string foo;
string bar;
string baz;
  }
}

to

  struct xxx {
std::string foo;
std::string bar;
std::string baz;
  }

for example, to increase legibility if there are many strings.

https://codereview.appspot.com/579240043/



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread dak
On 2020/01/23 11:33:11, lemzwerg wrote:
> I'm quite sure that you have more experience with C++ than me,
however, I'm not
> really happy with this change since it makes the code substantially
uglier. 
> Isn't there another solution for the problem?
> 
>
https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh
> File flower/include/file-name.hh (right):
> 
>
https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh#newcode47
> flower/include/file-name.hh:47: std::string root_;
> This is very ugly.  What about using the `std` namespace within a
group instead?

I'd say that ship has sailed by virtue of the C++ standard committee. 
Most current changes of Dan are supposed to bring the LilyPond code base
in line with what C++ programmers are used to experiencing.  And for
better or worse, std:: most certainly has become part of that
experience.  So I am with Dan here.

https://codereview.appspot.com/579240043/



Re: Packages/modules

2020-01-23 Thread Urs Liska
Am Mittwoch, den 22.01.2020, 11:43 +0100 schrieb Urs Liska:
> Am Mittwoch, den 22.01.2020, 11:06 +0100 schrieb David Kastrup:
> > Urs Liska  writes:
> > 
> > > Am Dienstag, den 21.01.2020, 11:19 +0100 schrieb Urs Liska:
> > > > > Ok.  One thing to think about is that we want package files
> > > > > to
> > > > > be
> > > > > contributed by "ordinary" users.  But something like
> > > > > 
> > > > > \exportSymbols
> > > > > transposeSequence,instrumentGroup,scratchMyBack
> > > > > 
> > > > > would be perfectly feasible syntactical sugar.
> > > > > 
> > > > 
> > > > I'll be more verbose than probably necessary, just to make sure
> > > > we're
> > > > talking about the same thing.
> > > > 
> > > > ...
> > > > 
> > > > If I got you right then from my experience with openLilyLib and
> > > > creating project environments (which basically are the same as
> > > > packages), I would say:
> > > > 
> > > >  * I'm all for hiding names in packages by default and having
> > > > to
> > > >explicitly expose/export the package's interface
> > > >  
> > > 
> > > One more implication: If variables and functions have to be
> > > explicitly
> > > exported it will be easier for external tools (like Frescobaldi)
> > > to
> > > add
> > > proper support for extensions.
> > > 
> > > I assume that at one point Frescobaldi will
> > > 
> > >  * know about available (core and external) extensions
> > >  * provide ways to "use" an extension (as part of the Score
> > > wizard
> > > and
> > >locally)
> > >  * at that point know about the options that can be passed to
> > > that
> > >package
> > >  * provide autocompletion and highlighting for available symbols
> > >exported from extensions
> > >  * provide actions to generate the code for getting and setting
> > > package
> > >options
> > > 
> > > So when planning the syntax of that export it would be good to
> > > take
> > > the
> > > needs/interest of IDEs into account that will not work with the
> > > result
> > > as LilyPond does but that parse the package files themselves.
> > 
> > Maybe we should have single-command exports after all
> 
> You mean that a package has to export every function or variable
> separately? I think that would be good wrt self-documentation.
> 

This gave me another idea: How would it be if elements (functions,
variables, whatever) exported by packages would have to be addressed
through a package namespace:

* scholarly.annotate exports \criticalRemark
* this can't be used with \criticalRemark but (syntax of course up to
the parser maintainer ;-) ) \scholarly.annotate.criticalRemark

That way the global namespace would be less pollutable, and identical
names in different packages wouldn't be an issue.

A user can still do something like

  criticalRemark = scholarly.annotate.criticalRemark

as a local shorthand.

Urs




Re: Packages/modules

2020-01-23 Thread David Kastrup
Urs Liska  writes:

> Am Mittwoch, den 22.01.2020, 11:43 +0100 schrieb Urs Liska:
>> 
>> You mean that a package has to export every function or variable
>> separately? I think that would be good wrt self-documentation.
>> 
>
> This gave me another idea: How would it be if elements (functions,
> variables, whatever) exported by packages would have to be addressed
> through a package namespace:
>
> * scholarly.annotate exports \criticalRemark
> * this can't be used with \criticalRemark but (syntax of course up to
> the parser maintainer ;-) ) \scholarly.annotate.criticalRemark

The implementation of \x.y.z is not robust enough for that, it's a
nuisance, and judging from LaTeX experience, it does not seem to be
problem in practice.

> That way the global namespace would be less pollutable, and identical
> names in different packages wouldn't be an issue.
>
> A user can still do something like
>
>   criticalRemark = scholarly.annotate.criticalRemark
>
> as a local shorthand.

No, that would be equivalent to

criticalRemark = #'(scholarly annotate criticalRemark)


-- 
David Kastrup



Re: Issue 4550: Avoid "using namespace std; " in included files (Take 2) (issue 579240043 by nine.fierce.ball...@gmail.com)

2020-01-23 Thread lemzwerg--- via Discussions on LilyPond development
I'm quite sure that you have more experience with C++ than me, however,
I'm not really happy with this change since it makes the code
substantially uglier.  Isn't there another solution for the problem?


https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh
File flower/include/file-name.hh (right):

https://codereview.appspot.com/579240043/diff/577360043/flower/include/file-name.hh#newcode47
flower/include/file-name.hh:47: std::string root_;
This is very ugly.  What about using the `std` namespace within a group
instead?

https://codereview.appspot.com/579240043/



Re: Looking for help in configuring LilyDev in VirtualBox

2020-01-23 Thread Federico Bruni




Il giorno gio 23 gen 2020 alle 10:45, Peter Toye  
ha scritto:

Wednesday, January 22, 2020, 10:35:45 PM, Michael Käppler wrote:


Am 22.01.2020 um 14:03 schrieb Peter Toye:


 Yes, I would suggest that you start from scratch again.


That's because the keyboard-layout package is not installed in 
LilyDev v1 by default. In LilyDev v2, it will be there.


I hadn't realised that your new instructions were for the next issue 
of LilyDev. Are there any other missing bits? I noticed that some of 
the utilities for listing hardware like lsusb aren't there.





If it helps, I can release v2 tomorrow.
Michael, let me know if you have other PRs to send.




So the basic question is: why isn't it starting up? I used to be a 
Solaris sysadmin, but that ended 20 years ago and my copy of Frisch 
is long gone.
I don't really know because I can't reproduce this behaviour on my 
machine.




Peter, I skipped most of your previous emails because of the poor 
quoting which made them unreadable.

Now the quoting is correct and I'm reading again.
What is not starting up?




Re: Looking for help in configuring LilyDev in VirtualBox

2020-01-23 Thread Peter Toye
Wednesday, January 22, 2020, 10:35:45 PM, Michael Käppler wrote:


Am 22.01.2020 um 14:03 schrieb Peter Toye:

> Yes, I would suggest that you start from scratch again.

That's because the keyboard-layout package is not installed in LilyDev v1 by 
default. In LilyDev v2, it will be there.

I hadn't realised that your new instructions were for the next issue of 
LilyDev. Are there any other missing bits? I noticed that some of the utilities 
for listing hardware like lsusb aren't there.



So the basic question is: why isn't it starting up? I used to be a Solaris 
sysadmin, but that ended 20 years ago and my copy of Frisch is long gone.
I don't really know because I can't reproduce this behaviour on my machine.

Oh dear. It looks as if I'll have to work out how to do it myself. I know 
there's a way of starting up programs on boot, but I've completely forgotten 
what it is. Will do some research.


Best regards,

Peter

   


Re: New branch guile-v3-work ?

2020-01-23 Thread Thomas Morley
Am Do., 23. Jan. 2020 um 10:48 Uhr schrieb Thomas Morley
:
>
> Am Do., 23. Jan. 2020 um 10:35 Uhr schrieb David Kastrup :
> >
> > Thomas Morley  writes:
> >
> > > Hi,
> > >
> > > I once pushed the /dev/guile-v2-work-branch to our repo.
> > > Would it be of help to have a /dev/guile-v3-work as well?
> > > If so, I'd need to do some clean up, currently my lily-guile3-build is
> > > a bit messy.
> >
> > Can you summarize the differences?  If there are extensive changes, we
> > probably want most of the solution in the main source code or
> > rebasing/cherry-picking becomes a nightmare.
> >
> > --
> > David Kastrup
>
> From my local branch, mostly on top of guile-v2-work (with comments):
>
> hermann@kasten ~/lilypond-git-guile-3.0 (dev/21-1-2020-test-guile3)$
> git log --oneline
>
>probably in master soon:
> 16df8129ba (HEAD -> dev/21-1-2020-test-guile3) Han-Wens patch about
> ly_scm_write_string
>
>   gettext-changes for recently added/modified regtests:
> fe3fd55f95 Changes for recent regtests
>
> 47595f0f31 Let aclocal.m4 and configure.ac accept guile-config with version 3
>
> a8485e226d Guile-3 uses G_ for gettext instead of previous _
>
> 114b337d02 Let configure work with guile 3.0
>
> 26cbcda51a Work-around to fix utf-8-meta-data for >= guile-2.2.4
>
> 1ab8714f8b Initialize locale in lily.scm
>
>   Suggestion by Arne Babenhausen form the guile-list about
>   "ly:encode-string-for-pdf"
>   and
>   adding (ice-9 threads)) to the used modules in memory-trace.scm
> 6a497e2b58 Suggestions by Arne
>
>   Simply commenting all previous functionality of ly:protects
> 1a688b3103 ly:protects doesn't work with guilev2
>
> Cheers,
>   Harm

>From guile-v2-work I used:

0829f6afad XXX reset the locale when building index.html
0e661bb5ec XXX don't override LANG globally in the build process
fe8949b609 XXX add support for itexi files to the vim config
1ba0d71c37 Fix ly_scm2string() to work with guile-2.0
5b7913fbb4 Fix formatting floating point variables with guile-2.0
c0748149d4 Use the UTF-8 encoding for SVG files
45f4d2e8ee Fix wide characters support in embedded SCM with guile-2.0
3a9576b9cc Fix the encoding of the postscript output
5e65df7ae2 XXX Avoid the lockup in ly_scm_write_string
7fd5838326 Update changes from commit 122525f (Keep GUILEv2 from
redecoding string input)
da912ad4cc Source_file::init_port: Keep GUILEv2 from redecoding string input
671fb886b6 Initialize locale in GUILEv2



Re: New branch guile-v3-work ?

2020-01-23 Thread Thomas Morley
Am Do., 23. Jan. 2020 um 10:35 Uhr schrieb David Kastrup :
>
> Thomas Morley  writes:
>
> > Hi,
> >
> > I once pushed the /dev/guile-v2-work-branch to our repo.
> > Would it be of help to have a /dev/guile-v3-work as well?
> > If so, I'd need to do some clean up, currently my lily-guile3-build is
> > a bit messy.
>
> Can you summarize the differences?  If there are extensive changes, we
> probably want most of the solution in the main source code or
> rebasing/cherry-picking becomes a nightmare.
>
> --
> David Kastrup

>From my local branch, mostly on top of guile-v2-work (with comments):

hermann@kasten ~/lilypond-git-guile-3.0 (dev/21-1-2020-test-guile3)$
git log --oneline

   probably in master soon:
16df8129ba (HEAD -> dev/21-1-2020-test-guile3) Han-Wens patch about
ly_scm_write_string

  gettext-changes for recently added/modified regtests:
fe3fd55f95 Changes for recent regtests

47595f0f31 Let aclocal.m4 and configure.ac accept guile-config with version 3

a8485e226d Guile-3 uses G_ for gettext instead of previous _

114b337d02 Let configure work with guile 3.0

26cbcda51a Work-around to fix utf-8-meta-data for >= guile-2.2.4

1ab8714f8b Initialize locale in lily.scm

  Suggestion by Arne Babenhausen form the guile-list about
  "ly:encode-string-for-pdf"
  and
  adding (ice-9 threads)) to the used modules in memory-trace.scm
6a497e2b58 Suggestions by Arne

  Simply commenting all previous functionality of ly:protects
1a688b3103 ly:protects doesn't work with guilev2

Cheers,
  Harm



Re: New branch guile-v3-work ?

2020-01-23 Thread David Kastrup
Thomas Morley  writes:

> Hi,
>
> I once pushed the /dev/guile-v2-work-branch to our repo.
> Would it be of help to have a /dev/guile-v3-work as well?
> If so, I'd need to do some clean up, currently my lily-guile3-build is
> a bit messy.

Can you summarize the differences?  If there are extensive changes, we
probably want most of the solution in the main source code or
rebasing/cherry-picking becomes a nightmare.

-- 
David Kastrup



New branch guile-v3-work ?

2020-01-23 Thread Thomas Morley
Hi,

I once pushed the /dev/guile-v2-work-branch to our repo.
Would it be of help to have a /dev/guile-v3-work as well?
If so, I'd need to do some clean up, currently my lily-guile3-build is
a bit messy.

Cheers,
  Harm



Re: GUILE 2/3 and string encoding cost

2020-01-23 Thread David Kastrup
Han-Wen Nienhuys  writes:

> On Wed, Jan 22, 2020 at 11:43 PM David Kastrup  wrote:
>
>> > Actually, the I was comparing the -O2 build with the -O0 build.
>> >
>> > When recompiling, the Scheme init (reading .scm files) takes 0.31s in 1.8
>> > vs. 2.7s in 2.0, a 9x slowdown.
>>
>> The Guile-2 compiler is doing a lot of optimisations, and LilyPond's
>> startup code switches off byte compilation because the dependencies are
>> hard to get under control.
>
>
> where does this happen?

lily/main.cc: sane_putenv("GUILE_AUTO_COMPILE", "0", true);  // disable 
auto-compile

Took me a while to find again.

>> The current codebase at least manages to
>> avoid to compile code with as-yet undefined macros, something that
>> Guile-1.8 had no problems with but Guile-2.0 refuses.
>>
>
> Do you mean that we don't have them anymore, or is there something else
> going on?

The source code has been rearranged so that macros are defined before use.

>> So the Scheme loading speed is sort-of expected due to Guile relying on
>> byte compilation for speed and we switch it off.
>>
>>
> Much to the contrary. Byte-compiling is slow (but running it should be
> faster), something you can see from building guile. If it is switched off,
> we are getting the "fast" experience.

There is a difference between file-level compilation and other stuff.
But I don't know the details well.

-- 
David Kastrup