SCDoc issues on OSX


#1

Hello,

played around a bit with SCDoc this afternoon and found a number of issues, some of them quite disturbing (SC 3.10.0, 3.10.1, 3.10.2 on OS 10.13.8).

I start with the most serious first: selecting a region within parenthesis by double-click inside the parenthesis and then evaluating it leads to a double evaluation! It doesn’t only happen with double-click, selecting some lines with the cursor and then evaluating them produces the same error.

If this is a general problem on OSX (and not only a strange problem of my setup) it would be really bad, beacause hundreds of help file examples are concerned. Even worse: for many especially new users it would be nearly impossible to realize, examples just produce wrong/blurred audio !

By evaluating with moving the cursor inside a parenthesis and pressing Cmd-Return the double evaluation sometimes doesn’t happen for many times, then again it happens all the time.

Then there are cases where Cmd-Return doesn’t select a region for whatever reason (I don’t have a good reproducer for this at hand but will investigate further), and then automatically one has to apply another selection/evaluation way, which always produces double evaluation.

Admittedly: I would have noticed that earlier probably if I had more often worked with 3.10 during the last months, but there’s a reason why I didn’t: for many years it was possible to use different version of SC on the same computer without any problems, I mean not at the same time but using the same Extensions folder. With 3.10 and 3.9 a switch causes problems, e.g. if you go back from 3.9 to 3.10 the code of all help files has disappeared!

To repair this, the only workaround I found was deleting the Help folder inside Extensions and restart 3.10. So ironically more backward compatibility in this regard would have motivated me more to test the new versions …

That all should not sound like a big complain. Developers are doing serious and gorgeous work and bugs can always happen. But the help system is like a visiting card of a software. If the most basic thing, evaluation of example code, is such a pain, we should think about repairing this.

Sincerely

Daniel


#2

Hello!

Double execution has been fixed in https://github.com/supercollider/supercollider/pull/4390, so should be sorted for the next release.

Hopefully you’ll be able to confirm this when the next beta release comes out.

Best,
J


#3

Oh, that’s great, looking forward to the beta!


#4

I would recommend you use the issue tracker. More devs follow that. If you searched it you would have been able to see that that first issue was already solved, and maybe you could even submit reports for the ones that aren’t reported. Which is much, much more likely to get it solved in the future!


#5

You’re right Brian. I just couldn’t believe when I saw today that SCDoc examples are kind of unusable from 10.0-10.2. Will check the other points and very curious to test with next beta.


#6

Hi again,

tried with the latest build and I’m really happy to see how much the situation has improved ! Big thanks for that !

Some remarks (OS 10.13.8): Cmd-Return now works as the standard evaluation command within SCDoc, Shift-Return doesn’t work anymore but IMO that’s no problem as Cmd-Return works reliable, I didn’t encounter any double evaluation. As a result the menu only reflects the evaluation options in an scd file but this is not a big thing.

The problem of impossible selection on the other hand had a super-weird reason: commented-out code needs to have correct parenthesis syntax, otherwise selection in the following examples is messed up !! Who would think of such ?

Here’s a test help file, I first thought of certain variants of line breaks to be the reason, therefore the strange indentation:

CLASS:: TestClass
summary:: evaluation tests


DESCRIPTION::

bla


section::tests

code::
// a = (1 + 1)

// this evaluates

(
{ SinOsc.ar(
       200, 0, 0.1
    )
}.play
)
::


section::further tests

code::
// a = ((1 + 1)

// this doesn't evaluate: guess why !

(
{ SinOsc.ar(
       200, 0, 0.1
    )
}.play
)
::

There are some unrelated issues, that I’ll bring up on GitHub. It seems my yesterday’s comment was the result of an accidential accumulation of different things. Sorry if this sounded too pessimistic but it’s frustrating if nothing works as expected.

Regards

Daniel