Quarks windows path error bug #1451

Closed
crucialfelix opened this Issue May 5, 2015 · 8 comments

Comments

Projects
None yet
2 participants
@crucialfelix
Member

crucialfelix commented May 5, 2015

Reported by @bagong :

This is an unlucky overlap of different issues. The basic parse error is still there. Currently is it as follows:

  • if no folder is in sc's include path (manually in preferences or via Quarks.install) it is possible to install one Quark like so: Quarks.install("Mathlib"). The install ends cleanly.
  • the second install will complain:
    ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
  • starting Quarks.gui from a completely clean install will make Quarks fetch directory.txt (the quarks
    folder is created and populated properly) and then fail as posted below.

It seems Quarks can't read path's on Windows. Including/Excluding folders in preferences works as expected.

init_OSC
empty
compiling class library...
initPassOne started
    NumPrimitives = 691
initPassOne done
    compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
    pass 1 done
    numentries = 812525 / 11246520 = 0.072
    5066 method selectors, 2220 classes
    method table size 12354592 bytes, big table size 89972160
    Number of Symbols 11560
    Byte Code Size 349088
    compiled 315 files in 0.43 seconds

Info: 2 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
Class tree inited in 0.02 seconds
Cleaning up temp synthdefs...


*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
file "C:\Users\Rainer\AppData\Local\SuperCollider\Help\scdoc_version" does not exist.
SCDoc: Indexing help-files...
SCDoc: Indexed 1339 documents in 1.79 seconds
Interpreter has crashed or stopped forcefully. [Exit code: -1073741819]
init_OSC
empty
compiling class library...
initPassOne started
    NumPrimitives = 691
initPassOne done
    compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
    pass 1 done
    numentries = 812525 / 11246520 = 0.072
    5066 method selectors, 2220 classes
    method table size 12354592 bytes, big table size 89972160
    Number of Symbols 11560
    Byte Code Size 349088
    compiled 315 files in 0.39 seconds

Info: 2 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
Class tree inited in 0.02 seconds
Cleaning up temp synthdefs...


*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\quarks not found
CALL STACK:
    Exception:reportError   0000000143FA3E68
        arg this = <instance of Error>
    Nil:handleError   0000000102B08C88
        arg this = nil
        arg error = <instance of Error>
    Thread:handleError   0000000102A96B68
        arg this = <instance of Thread>
        arg error = <instance of Error>
    Object:throw   0000000143F7A658
        arg this = <instance of Error>
    Meta_Quark:new   0000000144F90598
        arg this = <instance of Meta_Quark>
        arg name = "C:\Users\Rainer\AppData\Loca..."
        arg refspec = nil
        var args = nil
    Meta_Quarks:quarkNameAsLocalPath   000000014413B2D8
        arg this = <instance of Meta_Quarks>
        arg name = "C:\Users\Rainer\AppData\Loca..."
    Meta_Quark:fromLocalPath   0000000144F63998
        arg this = <instance of Meta_Quark>
        arg path = "C:\Users\Rainer\AppData\Loca..."
        var name = nil
        var url = nil
        var refspec = nil
    < FunctionDef in Method Meta_Quarks:all >   000000014413BB18
        arg path = "C:\Users\Rainer\AppData\Loca..."
    ArrayedCollection:do   000000014413C988
        arg this = [*1]
        arg function = <instance of Function>
        var i = 0
    Meta_Quarks:all   000000014532BBD8
        arg this = <instance of Meta_Quarks>
        var all = <instance of Dictionary>
        var f = <instance of Function>
    QuarksGui:update   000000014532C318
        arg this = <instance of QuarksGui>
        var recompile = false
    QuarksGui:init   0000000145414F68
        arg this = <instance of QuarksGui>
        var bounds = <instance of Rect>
        var btnUpdateDirectory = <instance of Button>
        var btnQuarksHelp = <instance of Button>
        var btnInstallFolder = <instance of Button>
        var btnOpenFolder = nil
        var btnClear = <instance of Button>
        var btnLoad = <instance of Button>
        var btnSave = <instance of Button>
    Interpreter:interpretPrintCmdLine   00000001454159D8
        arg this = <instance of Interpreter>
        var res = nil
        var func = <instance of Function>
        var code = "Quarks.gui"
        var doc = nil
        var ideClass = <instance of Meta_ScIDE>
    Process:interpretPrintCmdLine   00000001453A8958
        arg this = <instance of Main>
^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\quarks not found
@crucialfelix

This comment has been minimized.

Show comment
Hide comment
@crucialfelix

crucialfelix May 5, 2015

Member

It seems to be trying to do an initial fetch of the quarks directory and failing. Maybe it tried to do that before downloaded-quarks was created ? but that is done during *initClass

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\quarks not found
CALL STACK:

@bagong does this path exist:

C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\

can you post the directory listing

Member

crucialfelix commented May 5, 2015

It seems to be trying to do an initial fetch of the quarks directory and failing. Maybe it tried to do that before downloaded-quarks was created ? but that is done during *initClass

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\quarks not found
CALL STACK:

@bagong does this path exist:

C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\

can you post the directory listing

@bagong

This comment has been minimized.

Show comment
Hide comment
@bagong

bagong May 5, 2015

Contributor

Yes, it does, how could the first Quark (MathLib) install successfully, if it didn't. Here steps without anything done with Quarks.gui:

1. Start SC without existing userAppSupportDir (uASD)
2. After startup uASD is created as:

    `c:\Users\Rainer\AppData\Local\SuperCollider`

    - no language config file yet
    - empty downloaded-quarks folder *does* exists
    - other than that sc_ide_conf.yaml and Help, Historylogs, sessions, synthdefs folders

3. Run `Quarks.install("MathLib")`

    - succeeds
    - folder ...\downloaded-quarks\quarks was created and populated
    - folder ...\downloaded-quarks\MathLib was created and populated
    - post-window output:
        Fetching https://github.com/supercollider-quarks/quarks.git
        Installing MathLib
        Adding path: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
        MathLib installed
        -> Quark: MathLib[fc25e8e0b3ee1813c634bf2dc7294e12f0896c91]
    - langconfig was created and MathLib added:
        includePaths:
            - C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
        excludePaths:
            []
        postInlineWarnings: false

4. Recompile SC

    - Postwindow:

        empty
        compiling class library...
        initPassOne started
            NumPrimitives = 691
        initPassOne done
            compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
            compiling dir: 'C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib'
            pass 1 done
            numentries = 850503 / 12391652 = 0.069
            5369 method selectors, 2308 classes
            method table size 13257256 bytes, big table size 99133216
            Number of Symbols 12269
            Byte Code Size 394886
            compiled 357 files in 0.31 seconds

        Info: 4 methods are currently overwritten by extensions. To see which, execute:
        MethodOverride.printAll

        compile done
        Class tree inited in 0.02 seconds
        Cleaning up temp synthdefs...

5. Run `Quarks.install("UnitTesting")`

    - Postwindow:
        Fetching https://github.com/supercollider-quarks/quarks.git
        ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
        CALL STACK:
            Exception:reportError   000000C884AD6D58
                arg this = <instance of Error>
            Nil:handleError   000000C884A6AF68
                arg this = nil
                arg error = <instance of Error>
            Thread:handleError   000000C884A6C148
                arg this = <instance of Thread>
                arg error = <instance of Error>
            Object:throw   000000C884A6DF88
                arg this = <instance of Error>
            Meta_Quark:new   000000C884B2CA48
                arg this = <instance of Meta_Quark>
                arg name = "C:\Users\Rainer\AppData\Loca..."
                arg refspec = nil
                var args = nil
            Meta_Quarks:quarkNameAsLocalPath   000000C884AAD1E8
                arg this = <instance of Meta_Quarks>
                arg name = "C:\Users\Rainer\AppData\Loca..."
            Meta_Quark:fromLocalPath   000000C884B24A08
                arg this = <instance of Meta_Quark>
                arg path = "C:\Users\Rainer\AppData\Loca..."
                var name = nil
                var url = nil
                var refspec = nil
            < FunctionDef in Method Collection:collectAs >   000000C884AAD558
                arg elem = "C:\Users\Rainer\AppData\Loca..."
                arg i = 0
            ArrayedCollection:do   000000C884AAE268
                arg this = [*1]
                arg function = <instance of Function>
                var i = 0
            Collection:collectAs   000000C881FCA938
                arg this = [*1]
                arg function = <instance of Function>
                arg class = <instance of Meta_Array>
                var res = [*0]
            Meta_Quarks:installQuark   000000C884C1A638
                arg this = <instance of Meta_Quarks>
                arg quark = <instance of Quark>
                var deps = nil
                var incompatible = <instance of Function>
                var prev = nil
            Meta_Quarks:install   000000C884960538
                arg this = <instance of Meta_Quarks>
                arg name = "UnitTesting"
                arg refspec = nil
                var path = nil
                var quark = <instance of Quark>
            Interpreter:interpretPrintCmdLine   000000C884B20068
                arg this = <instance of Interpreter>
                var res = nil
                var func = <instance of Function>
                var code = "Quarks.install("UnitTesting")"
                var doc = nil
                var ideClass = <instance of Meta_ScIDE>
            Process:interpretPrintCmdLine   000000C884BA91A8
                arg this = <instance of Main>
        ^^ The preceding error dump is for ERROR:  C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
  1. UnitTesting has not been downloaded - so yes, it does break in another stage than the old issue.

Note that the path issue referring to the "quarks" folder only occurs if I open Quarks.gui and no Quark has been installed yet. If I open Quarks.gui and a Quark is already installed, the error will refer to the installed Quark, e.g.:

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
CALL STACK:
Exception:reportError   00000068EF11D268
    arg this = <instance of Error>
Nil:handleError   00000068EF092F48
    arg this = nil
    arg error = <instance of Error>
Thread:handleError   00000068EF0D5598
    arg this = <instance of Thread>
    arg error = <instance of Error>
Object:throw   00000068EF0D5908
    arg this = <instance of Error>
Meta_Quark:new   00000068F058BDB8
    arg this = <instance of Meta_Quark>
    arg name = "C:\Users\Rainer\AppData\Loca..."
    arg refspec = nil
    var args = nil
Meta_Quarks:quarkNameAsLocalPath   00000068ADBA4198
    arg this = <instance of Meta_Quarks>
    arg name = "C:\Users\Rainer\AppData\Loca..."
Meta_Quark:fromLocalPath   00000068F058BFD8
    arg this = <instance of Meta_Quark>
    arg path = "C:\Users\Rainer\AppData\Loca..."
    var name = nil
    var url = nil
    var refspec = nil
< FunctionDef in Method Meta_Quarks:all >   00000068ADB9D2C8
    arg path = "C:\Users\Rainer\AppData\Loca..."
ArrayedCollection:do   00000068ADB9DB08
    arg this = [*2]
    arg function = <instance of Function>
    var i = 0
Meta_Quarks:all   00000068F064CFF8
    arg this = <instance of Meta_Quarks>
    var all = <instance of Dictionary>
    var f = <instance of Function>
QuarksGui:update   00000068F064CE98
    arg this = <instance of QuarksGui>
    var recompile = false
QuarksGui:init   00000068EF351B18
    arg this = <instance of QuarksGui>
    var bounds = <instance of Rect>
    var btnUpdateDirectory = <instance of Button>
    var btnQuarksHelp = <instance of Button>
    var btnInstallFolder = <instance of Button>
    var btnOpenFolder = nil
    var btnClear = <instance of Button>
    var btnLoad = <instance of Button>
    var btnSave = <instance of Button>
Interpreter:interpretPrintCmdLine   00000068EF293868
    arg this = <instance of Interpreter>
    var res = nil
    var func = <instance of Function>
    var code = "Quarks.gui"
    var doc = nil
    var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine   00000068F060EA78
    arg this = <instance of Main>
^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
Contributor

bagong commented May 5, 2015

Yes, it does, how could the first Quark (MathLib) install successfully, if it didn't. Here steps without anything done with Quarks.gui:

1. Start SC without existing userAppSupportDir (uASD)
2. After startup uASD is created as:

    `c:\Users\Rainer\AppData\Local\SuperCollider`

    - no language config file yet
    - empty downloaded-quarks folder *does* exists
    - other than that sc_ide_conf.yaml and Help, Historylogs, sessions, synthdefs folders

3. Run `Quarks.install("MathLib")`

    - succeeds
    - folder ...\downloaded-quarks\quarks was created and populated
    - folder ...\downloaded-quarks\MathLib was created and populated
    - post-window output:
        Fetching https://github.com/supercollider-quarks/quarks.git
        Installing MathLib
        Adding path: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
        MathLib installed
        -> Quark: MathLib[fc25e8e0b3ee1813c634bf2dc7294e12f0896c91]
    - langconfig was created and MathLib added:
        includePaths:
            - C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
        excludePaths:
            []
        postInlineWarnings: false

4. Recompile SC

    - Postwindow:

        empty
        compiling class library...
        initPassOne started
            NumPrimitives = 691
        initPassOne done
            compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
            compiling dir: 'C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib'
            pass 1 done
            numentries = 850503 / 12391652 = 0.069
            5369 method selectors, 2308 classes
            method table size 13257256 bytes, big table size 99133216
            Number of Symbols 12269
            Byte Code Size 394886
            compiled 357 files in 0.31 seconds

        Info: 4 methods are currently overwritten by extensions. To see which, execute:
        MethodOverride.printAll

        compile done
        Class tree inited in 0.02 seconds
        Cleaning up temp synthdefs...

5. Run `Quarks.install("UnitTesting")`

    - Postwindow:
        Fetching https://github.com/supercollider-quarks/quarks.git
        ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
        CALL STACK:
            Exception:reportError   000000C884AD6D58
                arg this = <instance of Error>
            Nil:handleError   000000C884A6AF68
                arg this = nil
                arg error = <instance of Error>
            Thread:handleError   000000C884A6C148
                arg this = <instance of Thread>
                arg error = <instance of Error>
            Object:throw   000000C884A6DF88
                arg this = <instance of Error>
            Meta_Quark:new   000000C884B2CA48
                arg this = <instance of Meta_Quark>
                arg name = "C:\Users\Rainer\AppData\Loca..."
                arg refspec = nil
                var args = nil
            Meta_Quarks:quarkNameAsLocalPath   000000C884AAD1E8
                arg this = <instance of Meta_Quarks>
                arg name = "C:\Users\Rainer\AppData\Loca..."
            Meta_Quark:fromLocalPath   000000C884B24A08
                arg this = <instance of Meta_Quark>
                arg path = "C:\Users\Rainer\AppData\Loca..."
                var name = nil
                var url = nil
                var refspec = nil
            < FunctionDef in Method Collection:collectAs >   000000C884AAD558
                arg elem = "C:\Users\Rainer\AppData\Loca..."
                arg i = 0
            ArrayedCollection:do   000000C884AAE268
                arg this = [*1]
                arg function = <instance of Function>
                var i = 0
            Collection:collectAs   000000C881FCA938
                arg this = [*1]
                arg function = <instance of Function>
                arg class = <instance of Meta_Array>
                var res = [*0]
            Meta_Quarks:installQuark   000000C884C1A638
                arg this = <instance of Meta_Quarks>
                arg quark = <instance of Quark>
                var deps = nil
                var incompatible = <instance of Function>
                var prev = nil
            Meta_Quarks:install   000000C884960538
                arg this = <instance of Meta_Quarks>
                arg name = "UnitTesting"
                arg refspec = nil
                var path = nil
                var quark = <instance of Quark>
            Interpreter:interpretPrintCmdLine   000000C884B20068
                arg this = <instance of Interpreter>
                var res = nil
                var func = <instance of Function>
                var code = "Quarks.install("UnitTesting")"
                var doc = nil
                var ideClass = <instance of Meta_ScIDE>
            Process:interpretPrintCmdLine   000000C884BA91A8
                arg this = <instance of Main>
        ^^ The preceding error dump is for ERROR:  C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
  1. UnitTesting has not been downloaded - so yes, it does break in another stage than the old issue.

Note that the path issue referring to the "quarks" folder only occurs if I open Quarks.gui and no Quark has been installed yet. If I open Quarks.gui and a Quark is already installed, the error will refer to the installed Quark, e.g.:

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
CALL STACK:
Exception:reportError   00000068EF11D268
    arg this = <instance of Error>
Nil:handleError   00000068EF092F48
    arg this = nil
    arg error = <instance of Error>
Thread:handleError   00000068EF0D5598
    arg this = <instance of Thread>
    arg error = <instance of Error>
Object:throw   00000068EF0D5908
    arg this = <instance of Error>
Meta_Quark:new   00000068F058BDB8
    arg this = <instance of Meta_Quark>
    arg name = "C:\Users\Rainer\AppData\Loca..."
    arg refspec = nil
    var args = nil
Meta_Quarks:quarkNameAsLocalPath   00000068ADBA4198
    arg this = <instance of Meta_Quarks>
    arg name = "C:\Users\Rainer\AppData\Loca..."
Meta_Quark:fromLocalPath   00000068F058BFD8
    arg this = <instance of Meta_Quark>
    arg path = "C:\Users\Rainer\AppData\Loca..."
    var name = nil
    var url = nil
    var refspec = nil
< FunctionDef in Method Meta_Quarks:all >   00000068ADB9D2C8
    arg path = "C:\Users\Rainer\AppData\Loca..."
ArrayedCollection:do   00000068ADB9DB08
    arg this = [*2]
    arg function = <instance of Function>
    var i = 0
Meta_Quarks:all   00000068F064CFF8
    arg this = <instance of Meta_Quarks>
    var all = <instance of Dictionary>
    var f = <instance of Function>
QuarksGui:update   00000068F064CE98
    arg this = <instance of QuarksGui>
    var recompile = false
QuarksGui:init   00000068EF351B18
    arg this = <instance of QuarksGui>
    var bounds = <instance of Rect>
    var btnUpdateDirectory = <instance of Button>
    var btnQuarksHelp = <instance of Button>
    var btnInstallFolder = <instance of Button>
    var btnOpenFolder = nil
    var btnClear = <instance of Button>
    var btnLoad = <instance of Button>
    var btnSave = <instance of Button>
Interpreter:interpretPrintCmdLine   00000068EF293868
    arg this = <instance of Interpreter>
    var res = nil
    var func = <instance of Function>
    var code = "Quarks.gui"
    var doc = nil
    var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine   00000068F060EA78
    arg this = <instance of Main>
^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
@crucialfelix

This comment has been minimized.

Show comment
Hide comment
@crucialfelix

crucialfelix May 5, 2015

Member

OK, now I can trace the bug. thanks !

its Quarks.isPath that needs to use a different regex for window

it does not detect that its a path

// is this true ?
thisProcess.platform.name == "windows"

On Tue, May 5, 2015 at 2:16 PM Rainer Schütz notifications@github.com
wrote:

Yes, it does, how could the first Quark (MathLib) install successfully, if
it didn't. Here steps without anything done with Quarks.gui:

  1. Start SC without existing userAppSupportDir (uASD)

  2. After startup uASD is created as:

    c:\Users\Rainer\AppData\Local\SuperCollider

    • no language config file yet
    • empty downloaded-quarks folder does exists
    • other than that sc_ide_conf.yaml and Help, Historylogs, sessions, synthdefs folders
  3. Run Quarks.install("MathLib")

    • succeeds
    • folder ...\downloaded-quarks\quarks was created and populated
    • folder ...\downloaded-quarks\MathLib was created and populated
    • post-window output:
      Fetching https://github.com/supercollider-quarks/quarks.git
      Installing MathLib
      Adding path: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
      MathLib installed
      -> Quark: MathLib[fc25e8e0b3ee1813c634bf2dc7294e12f0896c91]
    • langconfig was created and MathLib added:
      includePaths:
      - C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
      excludePaths:
      []
      postInlineWarnings: false
  4. Recompile SC

    • Postwindow:

      empty
      compiling class library...
      initPassOne started
      NumPrimitives = 691
      initPassOne done
      compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
      compiling dir: 'C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib'
      pass 1 done
      numentries = 850503 / 12391652 = 0.069
      5369 method selectors, 2308 classes
      method table size 13257256 bytes, big table size 99133216
      Number of Symbols 12269
      Byte Code Size 394886
      compiled 357 files in 0.31 seconds

      Info: 4 methods are currently overwritten by extensions. To see which, execute:
      MethodOverride.printAll

      compile done
      Class tree inited in 0.02 seconds
      Cleaning up temp synthdefs...

  5. Run Quarks.install("UnitTesting")

    • Postwindow:
      Fetching https://github.com/supercollider-quarks/quarks.git
      ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
      CALL STACK:
      Exception:reportError 000000C884AD6D58
      arg this =
      Nil:handleError 000000C884A6AF68
      arg this = nil
      arg error =
      Thread:handleError 000000C884A6C148
      arg this =
      arg error =
      Object:throw 000000C884A6DF88
      arg this =
      Meta_Quark:new 000000C884B2CA48
      arg this =
      arg name = "C:\Users\Rainer\AppData\Loca..."
      arg refspec = nil
      var args = nil
      Meta_Quarks:quarkNameAsLocalPath 000000C884AAD1E8
      arg this =
      arg name = "C:\Users\Rainer\AppData\Loca..."
      Meta_Quark:fromLocalPath 000000C884B24A08
      arg this =
      arg path = "C:\Users\Rainer\AppData\Loca..."
      var name = nil
      var url = nil
      var refspec = nil
      < FunctionDef in Method Collection:collectAs > 000000C884AAD558
      arg elem = "C:\Users\Rainer\AppData\Loca..."
      arg i = 0
      ArrayedCollection:do 000000C884AAE268
      arg this = [_1]
      arg function =
      var i = 0
      Collection:collectAs 000000C881FCA938
      arg this = [_1]
      arg function =
      arg class =
      var res = [*0]
      Meta_Quarks:installQuark 000000C884C1A638
      arg this =
      arg quark =
      var deps = nil
      var incompatible =
      var prev = nil
      Meta_Quarks:install 000000C884960538
      arg this =
      arg name = "UnitTesting"
      arg refspec = nil
      var path = nil
      var quark =
      Interpreter:interpretPrintCmdLine 000000C884B20068
      arg this =
      var res = nil
      var func =
      var code = "Quarks.install("UnitTesting")"
      var doc = nil
      var ideClass =
      Process:interpretPrintCmdLine 000000C884BA91A8
      arg this =
      ^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
    1. UnitTesting has not been downloaded - so yes, it does break in
      another stage than the old issue.

Note that the path issue referring to the "quarks" folder only occurs if I
open Quarks.gui and no Quark has been installed yet. If I open Quarks.gui
and a Quark is already installed, the error will refer to the installed
Quark, e.g.:

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
CALL STACK:
Exception:reportError 00000068EF11D268
arg this =
Nil:handleError 00000068EF092F48
arg this = nil
arg error =
Thread:handleError 00000068EF0D5598
arg this =
arg error =
Object:throw 00000068EF0D5908
arg this =
Meta_Quark:new 00000068F058BDB8
arg this =
arg name = "C:\Users\Rainer\AppData\Loca..."
arg refspec = nil
var args = nil
Meta_Quarks:quarkNameAsLocalPath 00000068ADBA4198
arg this =
arg name = "C:\Users\Rainer\AppData\Loca..."
Meta_Quark:fromLocalPath 00000068F058BFD8
arg this =
arg path = "C:\Users\Rainer\AppData\Loca..."
var name = nil
var url = nil
var refspec = nil
< FunctionDef in Method Meta_Quarks:all > 00000068ADB9D2C8
arg path = "C:\Users\Rainer\AppData\Loca..."
ArrayedCollection:do 00000068ADB9DB08
arg this = [*2]
arg function =
var i = 0
Meta_Quarks:all 00000068F064CFF8
arg this =
var all =
var f =
QuarksGui:update 00000068F064CE98
arg this =
var recompile = false
QuarksGui:init 00000068EF351B18
arg this =
var bounds =
var btnUpdateDirectory =
var btnQuarksHelp =
var btnInstallFolder =
var btnOpenFolder = nil
var btnClear =
var btnLoad =
var btnSave =
Interpreter:interpretPrintCmdLine 00000068EF293868
arg this =
var res = nil
var func =
var code = "Quarks.gui"
var doc = nil
var ideClass =
Process:interpretPrintCmdLine 00000068F060EA78
arg this =
^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found


Reply to this email directly or view it on GitHub
#1451 (comment)
.

Member

crucialfelix commented May 5, 2015

OK, now I can trace the bug. thanks !

its Quarks.isPath that needs to use a different regex for window

it does not detect that its a path

// is this true ?
thisProcess.platform.name == "windows"

On Tue, May 5, 2015 at 2:16 PM Rainer Schütz notifications@github.com
wrote:

Yes, it does, how could the first Quark (MathLib) install successfully, if
it didn't. Here steps without anything done with Quarks.gui:

  1. Start SC without existing userAppSupportDir (uASD)

  2. After startup uASD is created as:

    c:\Users\Rainer\AppData\Local\SuperCollider

    • no language config file yet
    • empty downloaded-quarks folder does exists
    • other than that sc_ide_conf.yaml and Help, Historylogs, sessions, synthdefs folders
  3. Run Quarks.install("MathLib")

    • succeeds
    • folder ...\downloaded-quarks\quarks was created and populated
    • folder ...\downloaded-quarks\MathLib was created and populated
    • post-window output:
      Fetching https://github.com/supercollider-quarks/quarks.git
      Installing MathLib
      Adding path: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
      MathLib installed
      -> Quark: MathLib[fc25e8e0b3ee1813c634bf2dc7294e12f0896c91]
    • langconfig was created and MathLib added:
      includePaths:
      - C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib
      excludePaths:
      []
      postInlineWarnings: false
  4. Recompile SC

    • Postwindow:

      empty
      compiling class library...
      initPassOne started
      NumPrimitives = 691
      initPassOne done
      compiling dir: 'C:\Users\Rainer\Projects\jenkins\SCWin\workspace\buildVS64\Install\SuperCollider\SCClassLibrary'
      compiling dir: 'C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib'
      pass 1 done
      numentries = 850503 / 12391652 = 0.069
      5369 method selectors, 2308 classes
      method table size 13257256 bytes, big table size 99133216
      Number of Symbols 12269
      Byte Code Size 394886
      compiled 357 files in 0.31 seconds

      Info: 4 methods are currently overwritten by extensions. To see which, execute:
      MethodOverride.printAll

      compile done
      Class tree inited in 0.02 seconds
      Cleaning up temp synthdefs...

  5. Run Quarks.install("UnitTesting")

    • Postwindow:
      Fetching https://github.com/supercollider-quarks/quarks.git
      ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
      CALL STACK:
      Exception:reportError 000000C884AD6D58
      arg this =
      Nil:handleError 000000C884A6AF68
      arg this = nil
      arg error =
      Thread:handleError 000000C884A6C148
      arg this =
      arg error =
      Object:throw 000000C884A6DF88
      arg this =
      Meta_Quark:new 000000C884B2CA48
      arg this =
      arg name = "C:\Users\Rainer\AppData\Loca..."
      arg refspec = nil
      var args = nil
      Meta_Quarks:quarkNameAsLocalPath 000000C884AAD1E8
      arg this =
      arg name = "C:\Users\Rainer\AppData\Loca..."
      Meta_Quark:fromLocalPath 000000C884B24A08
      arg this =
      arg path = "C:\Users\Rainer\AppData\Loca..."
      var name = nil
      var url = nil
      var refspec = nil
      < FunctionDef in Method Collection:collectAs > 000000C884AAD558
      arg elem = "C:\Users\Rainer\AppData\Loca..."
      arg i = 0
      ArrayedCollection:do 000000C884AAE268
      arg this = [_1]
      arg function =
      var i = 0
      Collection:collectAs 000000C881FCA938
      arg this = [_1]
      arg function =
      arg class =
      var res = [*0]
      Meta_Quarks:installQuark 000000C884C1A638
      arg this =
      arg quark =
      var deps = nil
      var incompatible =
      var prev = nil
      Meta_Quarks:install 000000C884960538
      arg this =
      arg name = "UnitTesting"
      arg refspec = nil
      var path = nil
      var quark =
      Interpreter:interpretPrintCmdLine 000000C884B20068
      arg this =
      var res = nil
      var func =
      var code = "Quarks.install("UnitTesting")"
      var doc = nil
      var ideClass =
      Process:interpretPrintCmdLine 000000C884BA91A8
      arg this =
      ^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
    1. UnitTesting has not been downloaded - so yes, it does break in
      another stage than the old issue.

Note that the path issue referring to the "quarks" folder only occurs if I
open Quarks.gui and no Quark has been installed yet. If I open Quarks.gui
and a Quark is already installed, the error will refer to the installed
Quark, e.g.:

Fetching https://github.com/supercollider-quarks/quarks.git
ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found
CALL STACK:
Exception:reportError 00000068EF11D268
arg this =
Nil:handleError 00000068EF092F48
arg this = nil
arg error =
Thread:handleError 00000068EF0D5598
arg this =
arg error =
Object:throw 00000068EF0D5908
arg this =
Meta_Quark:new 00000068F058BDB8
arg this =
arg name = "C:\Users\Rainer\AppData\Loca..."
arg refspec = nil
var args = nil
Meta_Quarks:quarkNameAsLocalPath 00000068ADBA4198
arg this =
arg name = "C:\Users\Rainer\AppData\Loca..."
Meta_Quark:fromLocalPath 00000068F058BFD8
arg this =
arg path = "C:\Users\Rainer\AppData\Loca..."
var name = nil
var url = nil
var refspec = nil
< FunctionDef in Method Meta_Quarks:all > 00000068ADB9D2C8
arg path = "C:\Users\Rainer\AppData\Loca..."
ArrayedCollection:do 00000068ADB9DB08
arg this = [*2]
arg function =
var i = 0
Meta_Quarks:all 00000068F064CFF8
arg this =
var all =
var f =
QuarksGui:update 00000068F064CE98
arg this =
var recompile = false
QuarksGui:init 00000068EF351B18
arg this =
var bounds =
var btnUpdateDirectory =
var btnQuarksHelp =
var btnInstallFolder =
var btnOpenFolder = nil
var btnClear =
var btnLoad =
var btnSave =
Interpreter:interpretPrintCmdLine 00000068EF293868
arg this =
var res = nil
var func =
var code = "Quarks.gui"
var doc = nil
var ideClass =
Process:interpretPrintCmdLine 00000068F060EA78
arg this =
^^ The preceding error dump is for ERROR: C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\MathLib not found


Reply to this email directly or view it on GitHub
#1451 (comment)
.

@bagong

This comment has been minimized.

Show comment
Hide comment
@bagong

bagong May 5, 2015

Contributor

No, it's a symbol.

thisProcess.platform.name == \windows // or 'windows'

are true

Contributor

bagong commented May 5, 2015

No, it's a symbol.

thisProcess.platform.name == \windows // or 'windows'

are true

@bagong

This comment has been minimized.

Show comment
Hide comment
@bagong

bagong May 5, 2015

Contributor

Okay, I can confirm that replacing the regex in isPath with something that returns true removes the error produced above. I think it's quite tricky to create a robust regex that recognizes a path. Windows path's usually start with a drive letter. There could also be network-paths starting with \\ or relative paths starting with ., .., or just the name of a subdirectory of the current directory. No ~. Donno if these cases must also be covered. And it seems each backslash needs three escapes to work in a regex in our context.

Just in case, the Regex I used (which just covers my local case) is: [A-Za-z]\:\\\\

But getting true from isPath turns up another error: First of all the "Recompile class library" button never get's active. So I close, recompile manually and restart the Quarks.gui. The gui does not show which Quarks that have been installed. It is still possible to install Quarks that haven't been installed yet, but trying to reinstall a Quark that has already been installed returns this in the post window:

*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
Fetching https://github.com/supercollider-quarks/quarks.git
-> a QuarksGui
WARNING: Uninstalling other version Quark: ddwCommon C:\Users\Rainer\Projects\sc\supercollider\buildVS64\Install\SuperCollider\C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\ddwCommon
Installing ddwCommon
ERROR: No git url, cannot checkout quark Quark: ddwCommon

PROTECTED CALL STACK:
    Quark:checkout  000000D912809D40
        arg this = Quark: ddwCommon
    Meta_Quarks:installQuark    000000D911B71380
        arg this = Quarks
        arg quark = Quark: ddwCommon
        var deps = nil
        var incompatible = a Function
        var prev = Quark: ddwCommon
    Quark:install   000000D912809500
        arg this = Quark: ddwCommon
        var success = nil
    a FunctionDef   000000D9125E5E40
        sourceCode = "<an open Function>"
        var prev = Quark: ddwCommon
        var ok = nil
    Function:prTry  000000D90FB8C4C0
        arg this = a Function
        var result = nil
        var thread = a Routine
        var next = nil
        var wasInProtectedFunc = true

CALL STACK:
    Exception:reportError   000000D90FE9ECF8
        arg this = <instance of Error>
    < closed FunctionDef >   000000D90FF9CC18
        arg error = <instance of Error>
    Integer:forBy   000000D910C94D18
        arg this = 0
        arg endval = 0
        arg stepval = 2
        arg function = <instance of Function>
        var i = 0
        var j = 0
    SequenceableCollection:pairsDo   000000D910045728
        arg this = [*2]
        arg function = <instance of Function>
    Scheduler:seconds_   000000D90FFD20F8
        arg this = <instance of Scheduler>
        arg newSeconds = 55.1866929
    Meta_AppClock:tick   000000D90FFD41F8
        arg this = <instance of Meta_AppClock>
        var saveClock = <instance of Meta_SystemClock>
    Process:tick   000000D90FFD30C8
        arg this = <instance of Main>
^^ The preceding error dump is for ERROR: No git url, cannot checkout quark Quark: ddwCommon
Contributor

bagong commented May 5, 2015

Okay, I can confirm that replacing the regex in isPath with something that returns true removes the error produced above. I think it's quite tricky to create a robust regex that recognizes a path. Windows path's usually start with a drive letter. There could also be network-paths starting with \\ or relative paths starting with ., .., or just the name of a subdirectory of the current directory. No ~. Donno if these cases must also be covered. And it seems each backslash needs three escapes to work in a regex in our context.

Just in case, the Regex I used (which just covers my local case) is: [A-Za-z]\:\\\\

But getting true from isPath turns up another error: First of all the "Recompile class library" button never get's active. So I close, recompile manually and restart the Quarks.gui. The gui does not show which Quarks that have been installed. It is still possible to install Quarks that haven't been installed yet, but trying to reinstall a Quark that has already been installed returns this in the post window:

*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
Fetching https://github.com/supercollider-quarks/quarks.git
-> a QuarksGui
WARNING: Uninstalling other version Quark: ddwCommon C:\Users\Rainer\Projects\sc\supercollider\buildVS64\Install\SuperCollider\C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\ddwCommon
Installing ddwCommon
ERROR: No git url, cannot checkout quark Quark: ddwCommon

PROTECTED CALL STACK:
    Quark:checkout  000000D912809D40
        arg this = Quark: ddwCommon
    Meta_Quarks:installQuark    000000D911B71380
        arg this = Quarks
        arg quark = Quark: ddwCommon
        var deps = nil
        var incompatible = a Function
        var prev = Quark: ddwCommon
    Quark:install   000000D912809500
        arg this = Quark: ddwCommon
        var success = nil
    a FunctionDef   000000D9125E5E40
        sourceCode = "<an open Function>"
        var prev = Quark: ddwCommon
        var ok = nil
    Function:prTry  000000D90FB8C4C0
        arg this = a Function
        var result = nil
        var thread = a Routine
        var next = nil
        var wasInProtectedFunc = true

CALL STACK:
    Exception:reportError   000000D90FE9ECF8
        arg this = <instance of Error>
    < closed FunctionDef >   000000D90FF9CC18
        arg error = <instance of Error>
    Integer:forBy   000000D910C94D18
        arg this = 0
        arg endval = 0
        arg stepval = 2
        arg function = <instance of Function>
        var i = 0
        var j = 0
    SequenceableCollection:pairsDo   000000D910045728
        arg this = [*2]
        arg function = <instance of Function>
    Scheduler:seconds_   000000D90FFD20F8
        arg this = <instance of Scheduler>
        arg newSeconds = 55.1866929
    Meta_AppClock:tick   000000D90FFD41F8
        arg this = <instance of Meta_AppClock>
        var saveClock = <instance of Meta_SystemClock>
    Process:tick   000000D90FFD30C8
        arg this = <instance of Main>
^^ The preceding error dump is for ERROR: No git url, cannot checkout quark Quark: ddwCommon
@crucialfelix

This comment has been minimized.

Show comment
Hide comment
@crucialfelix

crucialfelix May 5, 2015

Member

rather than try to make a single reg-ex that matches both *nix and windows,
I will make two separate ones and detect which platform its on.

it was an omission on my part in that method. will fix it

anything that uses *isPath is going to have a problem on windows until its
fixed

On Tue, May 5, 2015 at 5:48 PM Rainer Schütz notifications@github.com
wrote:

Okay, I can confirm that replacing the regex in isPath with something that
returns true removes the error produced above. I think it's quite tricky to
create a robust regex that recognizes a path. Windows path's usually start
with a drive letter. There could also be network-paths starting with
or relative paths starting with ., .., or just the name of a subdirectory
of the current directory. No ~. Donno if these cases must also be
covered. And it seems each backslash needs three escapes to work in a
regex in our context.

Just in case, the Regex I used (which just covers my local case) is:
[A-Za-z]:\

But getting true from isPath turns up another error: First of all the
"Recompile class library" button never get's active. So I close, recompile
manually and restart the Quarks.gui. The gui does not show which Quarks
that have been installed. It is still possible to install Quarks that
haven't been installed yet, but trying to reinstall a Quark that has
already been installed returns this in the post window:

*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
Fetching https://github.com/supercollider-quarks/quarks.git
-> a QuarksGui
WARNING: Uninstalling other version Quark: ddwCommon C:\Users\Rainer\Projects\sc\supercollider\buildVS64\Install\SuperCollider\C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\ddwCommon
Installing ddwCommon
ERROR: No git url, cannot checkout quark Quark: ddwCommon

PROTECTED CALL STACK:
Quark:checkout 000000D912809D40
arg this = Quark: ddwCommon
Meta_Quarks:installQuark 000000D911B71380
arg this = Quarks
arg quark = Quark: ddwCommon
var deps = nil
var incompatible = a Function
var prev = Quark: ddwCommon
Quark:install 000000D912809500
arg this = Quark: ddwCommon
var success = nil
a FunctionDef 000000D9125E5E40
sourceCode = ""
var prev = Quark: ddwCommon
var ok = nil
Function:prTry 000000D90FB8C4C0
arg this = a Function
var result = nil
var thread = a Routine
var next = nil
var wasInProtectedFunc = true

CALL STACK:
Exception:reportError 000000D90FE9ECF8
arg this =
< closed FunctionDef > 000000D90FF9CC18
arg error =
Integer:forBy 000000D910C94D18
arg this = 0
arg endval = 0
arg stepval = 2
arg function =
var i = 0
var j = 0
SequenceableCollection:pairsDo 000000D910045728
arg this = [*2]
arg function =
Scheduler:seconds_ 000000D90FFD20F8
arg this =
arg newSeconds = 55.1866929
Meta_AppClock:tick 000000D90FFD41F8
arg this =
var saveClock =
Process:tick 000000D90FFD30C8
arg this =
^^ The preceding error dump is for ERROR: No git url, cannot checkout quark Quark: ddwCommon


Reply to this email directly or view it on GitHub
#1451 (comment)
.

Member

crucialfelix commented May 5, 2015

rather than try to make a single reg-ex that matches both *nix and windows,
I will make two separate ones and detect which platform its on.

it was an omission on my part in that method. will fix it

anything that uses *isPath is going to have a problem on windows until its
fixed

On Tue, May 5, 2015 at 5:48 PM Rainer Schütz notifications@github.com
wrote:

Okay, I can confirm that replacing the regex in isPath with something that
returns true removes the error produced above. I think it's quite tricky to
create a robust regex that recognizes a path. Windows path's usually start
with a drive letter. There could also be network-paths starting with
or relative paths starting with ., .., or just the name of a subdirectory
of the current directory. No ~. Donno if these cases must also be
covered. And it seems each backslash needs three escapes to work in a
regex in our context.

Just in case, the Regex I used (which just covers my local case) is:
[A-Za-z]:\

But getting true from isPath turns up another error: First of all the
"Recompile class library" button never get's active. So I close, recompile
manually and restart the Quarks.gui. The gui does not show which Quarks
that have been installed. It is still possible to install Quarks that
haven't been installed yet, but trying to reinstall a Quark that has
already been installed returns this in the post window:

*** Welcome to SuperCollider 3.7alpha0. *** For help press Ctrl-D.
Fetching https://github.com/supercollider-quarks/quarks.git
-> a QuarksGui
WARNING: Uninstalling other version Quark: ddwCommon C:\Users\Rainer\Projects\sc\supercollider\buildVS64\Install\SuperCollider\C:\Users\Rainer\AppData\Local\SuperCollider\downloaded-quarks\ddwCommon
Installing ddwCommon
ERROR: No git url, cannot checkout quark Quark: ddwCommon

PROTECTED CALL STACK:
Quark:checkout 000000D912809D40
arg this = Quark: ddwCommon
Meta_Quarks:installQuark 000000D911B71380
arg this = Quarks
arg quark = Quark: ddwCommon
var deps = nil
var incompatible = a Function
var prev = Quark: ddwCommon
Quark:install 000000D912809500
arg this = Quark: ddwCommon
var success = nil
a FunctionDef 000000D9125E5E40
sourceCode = ""
var prev = Quark: ddwCommon
var ok = nil
Function:prTry 000000D90FB8C4C0
arg this = a Function
var result = nil
var thread = a Routine
var next = nil
var wasInProtectedFunc = true

CALL STACK:
Exception:reportError 000000D90FE9ECF8
arg this =
< closed FunctionDef > 000000D90FF9CC18
arg error =
Integer:forBy 000000D910C94D18
arg this = 0
arg endval = 0
arg stepval = 2
arg function =
var i = 0
var j = 0
SequenceableCollection:pairsDo 000000D910045728
arg this = [*2]
arg function =
Scheduler:seconds_ 000000D90FFD20F8
arg this =
arg newSeconds = 55.1866929
Meta_AppClock:tick 000000D90FFD41F8
arg this =
var saveClock =
Process:tick 000000D90FFD30C8
arg this =
^^ The preceding error dump is for ERROR: No git url, cannot checkout quark Quark: ddwCommon


Reply to this email directly or view it on GitHub
#1451 (comment)
.

@bagong bagong added the bug label May 6, 2015

@bagong bagong added this to the 3.7 milestone May 6, 2015

@bagong

This comment has been minimized.

Show comment
Hide comment
@bagong

bagong May 10, 2015

Contributor

... rather than try to make a single reg-ex that matches both *nix and windows, I will make two separate ones and detect which platform its on.

How would you do that in sclang?

Contributor

bagong commented May 10, 2015

... rather than try to make a single reg-ex that matches both *nix and windows, I will make two separate ones and detect which platform its on.

How would you do that in sclang?

crucialfelix added a commit to crucialfelix/supercollider that referenced this issue May 11, 2015

@crucialfelix

This comment has been minimized.

Show comment
Hide comment
@crucialfelix

crucialfelix May 11, 2015

Member

I'm 99.9% sure this fixes it. If I reverse the if-statement (thus making OS X fail to parse a path correctly) I can see the exact bug and call stack you posted.

Better would be a unit test but I didn't have time to set that up.

Member

crucialfelix commented May 11, 2015

I'm 99.9% sure this fixes it. If I reverse the if-statement (thus making OS X fail to parse a path correctly) I can see the exact bug and call stack you posted.

Better would be a unit test but I didn't have time to set that up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment