Re: OT: Beauty of programming languages (was: Way to flatten nested \include's?)
On Tue, 25 Aug 2015 18:41:54 +0200 Jacques Menu imj-muz...@bluewin.ch wrote: In the APL course I took years ago, the teacher said: « Exercice for the next two weeks : find out what this sample program (25 symbols altogether) does. A guy says two weeks later: « It does this and that… but it took me two and a half hours to find out! » And teacher answers: « Well, it took me two hours to write! » I recall that crucial to APL was its interactive environment. We had dedicated ttys with APL keys. Program development was adding one symbol at a time, trying what happened. Repeat until the program was finished. For real programming we wrote Algol on punch tapes, later punch cards. Turnaround time was one day, so you wrote the program, printed it, checked manually, proved its correctness (I was educated by EWD) and then delivered it at the computer department. APL wouldn't have stand a chance in that environment. I did like the language, in a peculiar way. -- Johan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OT: Beauty of programming languages (was: Way to flatten nested \include's?)
Hello Michæl, In the APL course I took years ago, the teacher said: « Exercice for the next two weeks : find out what this sample program (25 symbols altogether) does. A guy says two weeks later: « It does this and that… but it took me two and a half hours to find out! » And teacher answers: « Well, it took me two hours to write! » In a review on languages in the Communications of the ACM a long time ago, each language was described by a caption and a short paragraph. Sample captions: APL : I can read hieroglyphs too. Prolog : If Prolog is the answer, then what was the question? (Don’t misunderstand me though, I loved this language…). JM Le 25 août 2015 à 01:37, Michael Gerdau m...@qata.de a écrit : While guile is aimed at being an extension language, don't forget that Scheme was taught at MIT for many, many years as the finest language to give students a deep insight into computing and computer science (refer SICP). [Sadly, they now teach Python instead. Real world practicality defeated beauty, insight, and elegance. :-(] Well, beauty is in the eye of the beholder.. Anybody remembering APL ? THAT is a beautiful language and most likely totally unuseable for the vast majority of today's aspiring programmers :) Kind regards, Michael -- Michael Gerdau email: m...@qata.de GPG-keys available on request or at public keyserver___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
On Tue, 25 Aug 2015 09:23:12 +1000 Andrew Bernard andrew.bern...@gmail.com wrote: Unless you enjoy writing Scheme as much as I do! I programmed quite a lot in lisp and APL, but never quite liked it. From a practical point of view: every linux system comes with Perl and Python. If you're lucky you can add Scheme yourself. -- Johan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
That was the general idea. I posted some instructions about how to add the utility to a lilypond installation for people but in a new thread. It was actually one of the main reasons I did it in Scheme - there would be a guaranteed known execution environment installed if the user is using lilypond to begin with. A On 25/08/2015 17:49, David Kastrup lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of d...@gnu.org wrote: If all else fails, the lilypond binary itself can serve as a GUILE interpreter. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Johan Vromans jvrom...@squirrel.nl writes: On Tue, 25 Aug 2015 09:23:12 +1000 Andrew Bernard andrew.bern...@gmail.com wrote: Unless you enjoy writing Scheme as much as I do! I programmed quite a lot in lisp and APL, but never quite liked it. From a practical point of view: every linux system comes with Perl and Python. If you're lucky you can add Scheme yourself. If all else fails, the lilypond binary itself can serve as a GUILE interpreter. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Andrew Bernard andrew.bern...@gmail.com writes: lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of d...@gnu.org wrote: If all else fails, the lilypond binary itself can serve as a GUILE interpreter. That was the general idea. I posted some instructions about how to add the utility to a lilypond installation for people but in a new thread. It was actually one of the main reasons I did it in Scheme - there would be a guaranteed known execution environment installed if the user is using lilypond to begin with. It's not just that. It's also that the lilypond executable is pretty sure to know the search paths of LilyPond. You cannot really get them reliably without calling LilyPond, and if you do that anyway, why not use its interpreter? -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
I am not sure I understand. Is having a symlink: flatten-ly - /home/username/bin/lilypond-wrapper.guile not correct? The convert-ly utility is set up as: convert-ly - /home/username/bin/lilypond-wrapper.python Andrew On 25/08/2015 18:11, David Kastrup d...@gnu.org wrote: It's not just that. It's also that the lilypond executable is pretty sure to know the search paths of LilyPond. You cannot really get them reliably without calling LilyPond, and if you do that anyway, why not use its interpreter? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Am 25.08.2015 um 10:11 schrieb David Kastrup: Andrew Bernard andrew.bern...@gmail.com writes: lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of d...@gnu.org wrote: If all else fails, the lilypond binary itself can serve as a GUILE interpreter. That was the general idea. I posted some instructions about how to add the utility to a lilypond installation for people but in a new thread. It was actually one of the main reasons I did it in Scheme - there would be a guaranteed known execution environment installed if the user is using lilypond to begin with. It's not just that. It's also that the lilypond executable is pretty sure to know the search paths of LilyPond. You cannot really get them reliably without calling LilyPond, and if you do that anyway, why not use its interpreter? This would be a great idea! The flatten-ly procedure would come in handy to solve the problem of lilypond-book and lyluatex that changes in nested include files do not cause the lilypond sourecs to be rendered again. If the md5 sum is calculated of a flattened ly file instead of the original ly file, *every* change is visible. So +1 for making flatten-ly a lilypond executable! Marc ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Am 25.08.2015 um 11:12 schrieb Andrew Bernard: I am not sure I understand. Is having a symlink: flatten-ly - /home/username/bin/lilypond-wrapper.guile not correct? The convert-ly utility is set up as: convert-ly - /home/username/bin/lilypond-wrapper.python I think that David meant that your script should be callable by lilypond itself, something like lilypond flatten-ly.ly This ensures that all include paths are resolved automatically. A shell script does not know about lilypond's way to find include files ;-) Marc Andrew On 25/08/2015 18:11, David Kastrup d...@gnu.org mailto:d...@gnu.org wrote: It's not just that. It's also that the lilypond executable is pretty sure to know the search paths of LilyPond. You cannot really get them reliably without calling LilyPond, and if you do that anyway, why not use its interpreter? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Andrew Bernard andrew.bern...@gmail.com writes: On 25/08/2015 18:11, David Kastrup d...@gnu.org wrote: It's not just that. It's also that the lilypond executable is pretty sure to know the search paths of LilyPond. You cannot really get them reliably without calling LilyPond, and if you do that anyway, why not use its interpreter? I am not sure I understand. Is having a symlink: flatten-ly - /home/username/bin/lilypond-wrapper.guile not correct? I can't say anything about the wrappers used here. I was pointing out that calling a Scheme procedure via the lilypond executable has the advantage of having search paths etc set correctly. You can do that with lilypond -e '(load xxx.scm)' -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Of course I shall add include path arguments, and ~ expansion. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
On Mon, 24 Aug 2015 09:35:35 +1000 Andrew Bernard andrew.bern...@gmail.com wrote: Although it can be written in Python or any language, I felt Scheme is in the spirit of lilypond. Scheme is for LP extenstions. This tool, being a standalone program, can much better be written in Perl or Python. -- Johan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Greetings Javier. Here is a program I wrote for you, flatten-ly to read a lilypond file and output it recursively flattening all the nested includes. It’s a shell script invoking guile. Usage: flatten-ly file Outputs to standard output. Unashamedly Linux. I’ll make it more robust, and add a couple of features, add a lilypond style wrapper and if there is any interest add it to openlilylib perhaps? Andrew From: lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of Javier Ruiz-Alma Reply-To: Javier Ruiz-Alma Date: Sunday, 23 August 2015 07:20 To: LilyPond User Group Subject: Way to flatten nested \include's? Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? flatten-ly Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Hi Andrew, many thanks for your work. I just tried the script and can’t avoid getting an error about lacking rights. My command was: $flatten-ly 18-der-stuermische-morgen.ly debug.ly sudo doesn’t help and it’s regardless of whether I place the script in /usr/bin/ or in ~/. Can you tell why that is? Yours, Simon Am 24.08.2015 um 03:23 schrieb Andrew Bernard: Greetings Javier. Here is a program I wrote for you, flatten-ly to read a lilypond file and output it recursively flattening all the nested includes. It’s a shell script invoking guile. Usage: flatten-ly file Outputs to standard output. Unashamedly Linux. I’ll make it more robust, and add a couple of features, add a lilypond style wrapper and if there is any interest add it to openlilylib perhaps? Andrew From: lilypond-user-bounces+andrew.bernard=gmail@gnu.org mailto:lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of Javier Ruiz-Alma Reply-To: Javier Ruiz-Alma Date: Sunday, 23 August 2015 07:20 To: LilyPond User Group Subject: Way to flatten nested \include's? Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Am Montag, den 24. August 2015 um 21:57:37 Uhr (+0200) schrieb Blöchl Bernhard: The attached file is a binary, not a lilypond file, regardless of the extension .ly? No, it is a text file but the mime type of the attachment is specified as application/octet stream. I changed it to text/plain in my Mail program and then it was no problem to open it. -- Orm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Am 24.08.2015 um 21:57 schrieb Blöchl Bernhard: The attached file is a binary, not a lilypond file, regardless of the extension .ly? Have another look: it’s not flatten.ly, but flatten-ly – without any file name extension. It’s not a binary either, but plain text, and is used as a shell script, as Andrew said in his explanation below. HTH, Simon Am 24.08.2015 03:23, schrieb Andrew Bernard: Greetings Javier. Here is a program I wrote for you, flatten-ly to read a lilypond file and output it recursively flattening all the nested includes. It's a shell script invoking guile. Usage: flatten-ly file Outputs to standard output. Unashamedly Linux. I'll make it more robust, and add a couple of features, add a lilypond style wrapper and if there is any interest add it to openlilylib perhaps? Andrew From: lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of Javier Ruiz-Alma Reply-To: Javier Ruiz-Alma Date: Sunday, 23 August 2015 07:20 To: LilyPond User Group Subject: Way to flatten nested include's? Is there a way to ask lilypond to expands nested include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
The attached file is a binary, not a lilypond file, regardless of the extension .ly? Am 24.08.2015 03:23, schrieb Andrew Bernard: Greetings Javier. Here is a program I wrote for you, flatten-ly to read a lilypond file and output it recursively flattening all the nested includes. It's a shell script invoking guile. Usage: flatten-ly file Outputs to standard output. Unashamedly Linux. I'll make it more robust, and add a couple of features, add a lilypond style wrapper and if there is any interest add it to openlilylib perhaps? Andrew From: lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of Javier Ruiz-Alma Reply-To: Javier Ruiz-Alma Date: Sunday, 23 August 2015 07:20 To: LilyPond User Group Subject: Way to flatten nested include's? Is there a way to ask lilypond to expands nested include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Hi Johan, Unless you enjoy writing Scheme as much as I do! Scheme is perfectly fine for utility programs. It may be less maintainable for the hoi polloi - but then, the same can be said of llypond! :-) While guile is aimed at being an extension language, don't forget that Scheme was taught at MIT for many, many years as the finest language to give students a deep insight into computing and computer science (refer SICP). [Sadly, they now teach Python instead. Real world practicality defeated beauty, insight, and elegance. :-(] Andrew On 24/08/2015 17:59, Johan Vromans lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of jvrom...@squirrel.nl wrote: On Mon, 24 Aug 2015 09:35:35 +1000 Andrew Bernard andrew.bern...@gmail.com wrote: Although it can be written in Python or any language, I felt Scheme is in the spirit of lilypond. Scheme is for LP extenstions. This tool, being a standalone program, can much better be written in Perl or Python. -- Johan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
OT: Beauty of programming languages (was: Way to flatten nested \include's?)
While guile is aimed at being an extension language, don't forget that Scheme was taught at MIT for many, many years as the finest language to give students a deep insight into computing and computer science (refer SICP). [Sadly, they now teach Python instead. Real world practicality defeated beauty, insight, and elegance. :-(] Well, beauty is in the eye of the beholder.. Anybody remembering APL ? THAT is a beautiful language and most likely totally unuseable for the vast majority of today's aspiring programmers :) Kind regards, Michael -- Michael Gerdau email: m...@qata.de GPG-keys available on request or at public keyserver signature.asc Description: This is a digitally signed message part. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OT: Beauty of programming languages (was: Way to flatten nested \include's?)
Greetings Michael, I used to use APL! Truly wonderful. As to beauty, while subjective, amongst mathematicians at least there is a shared sense of the beautiful, and not purely personal taste. Scheme has the elegance mathematicians and computer scientists perceive. Nobody could say Python is _beautiful_. [I use Python, so I am not just bashing it.] Andrew On 25/08/2015 09:37, Michael Gerdau lilypond-user-bounces+andrew.bernard=gmail@gnu.org on behalf of m...@qata.de wrote: Anybody remembering APL ? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Way to flatten nested \include's?
Thanks both. I doubt this feature is needed with any frequency. I happen to be leveraging some orchestral LP code, which is proving quite convoluted to trace with its many nested \include's and needs upgrading to current version. Some compile issues were reported as programming errors in 2.18.2 with no clear indication of an associated line of code. I'm down to one remaining error: programming error: Improbable offset for stencil: -inf staff space Seems to be associated with the following scheme function: #(define (not-last-page layout props arg) (if (not (book-last-page? layout props)) (interpret-markup layout props arg) empty-stencil)) The function is used to generate custom on-the-fly footers for pages other than first and last. I need to create a separate tiny example to replicate and isolate where the issue is coming from. I'll ask for help in a new thread. Javier From: Simon Albrecht [mailto:simon.albre...@mail.de] Subject: Re: Way to flatten nested \include's? Am 23.08.2015 um 15:23 schrieb Knute Snortum: I don't know of a LilyPond way to do this, but it would probably be a fairly simple Python or Perl program. And wouldn't it be user-friendly to provide such a script with our default binaries, that is alongside convert-ly? My 2cts, Simon Knute Snortum (via Gmail) On Sat, Aug 22, 2015 at 2:20 PM, Javier Ruiz-Alma jav...@ruiz-alma.com mailto:jav...@ruiz-alma.com wrote: I have code split into multiple files. Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org mailto:lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org mailto:lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Am 23.08.2015 um 15:23 schrieb Knute Snortum: I don't know of a LilyPond way to do this, but it would probably be a fairly simple Python or Perl program. And wouldn’t it be user-friendly to provide such a script with our default binaries, that is alongside convert-ly? My 2cts, Simon Knute Snortum (via Gmail) On Sat, Aug 22, 2015 at 2:20 PM, Javier Ruiz-Alma jav...@ruiz-alma.com mailto:jav...@ruiz-alma.com wrote: I have code split into multiple files. Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org mailto:lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
I don't know of a LilyPond way to do this, but it would probably be a fairly simple Python or Perl program. Knute Snortum (via Gmail) On Sat, Aug 22, 2015 at 2:20 PM, Javier Ruiz-Alma jav...@ruiz-alma.com wrote: I have code split into multiple files. Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Way to flatten nested \include's?
Greetings, Well, I am writing a delightful Scheme program to do the job right now, since I read your request. It may only be occasionally useful, but still worth having. You don;t have to use every tool in the workshop every day. Although it can be written in Python or any language, I felt Scheme is in the spirit of lilypond. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Way to flatten nested \include's?
I have code split into multiple files. Is there a way to ask lilypond to expands nested \include's and dump into new file, such I can review/compile a flattened version of the code (i.e. for debugging)? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user