Csound Csound-dev Csound-tekno Search About

[Cs-dev] reentrancy problem with the new parser.

Date2011-05-29 13:51
FromVictor Lazzarini
Subject[Cs-dev] reentrancy problem with the new parser.
It appears that the new parser has some sort of reentrancy problem,  
causing a crash when we attempt to run a second instance. It is also
causing a crash if the same instance is used in a second compilation/ 
performance.

You can test it with this program

#include "csound.h"
#include 
#define RUNS 2

int main(int argc, char **argv)
{
     CSOUND  *csound;
     int i, result;
     /* initialise Csound library */
       for(i = 0; i < RUNS; i++){
     csoundInitialize(&argc, &argv, 0);
     /*  Create Csound. */
     csound = csoundCreate(NULL);
     /*  One complete performance cycle. */
     result = csoundCompile(csound, argc, argv);
     if (!result)
       result = csoundPerform(csound);
     /* delete Csound instance */
      csoundDestroy(csound);
       }
      return result;
}

This works with the oldparser, but fails with the new one.


Dr Victor Lazzarini
Senior Lecturer
Dept. of Music
NUI Maynooth Ireland
tel.: +353 1 708 3545
Victor dot Lazzarini AT nuim dot ie




------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-05-30 04:05
FromSteven Yi
SubjectRe: [Cs-dev] reentrancy problem with the new parser.
Hi Victor,

I built this on OSX and ran it against a test csd I had around and it
seemed to work fine without crashes.  I'm assuming it may only occur
depending on the CSD?  Do you have an example CSD to use or one of the
common examples I should try?

Steven

On Sun, May 29, 2011 at 8:51 AM, Victor Lazzarini
 wrote:
> It appears that the new parser has some sort of reentrancy problem,
> causing a crash when we attempt to run a second instance. It is also
> causing a crash if the same instance is used in a second compilation/
> performance.
>
> You can test it with this program
>
> #include "csound.h"
> #include 
> #define RUNS 2
>
> int main(int argc, char **argv)
> {
>     CSOUND  *csound;
>     int i, result;
>     /* initialise Csound library */
>       for(i = 0; i < RUNS; i++){
>     csoundInitialize(&argc, &argv, 0);
>     /*  Create Csound. */
>     csound = csoundCreate(NULL);
>     /*  One complete performance cycle. */
>     result = csoundCompile(csound, argc, argv);
>     if (!result)
>       result = csoundPerform(csound);
>     /* delete Csound instance */
>      csoundDestroy(csound);
>       }
>      return result;
> }
>
> This works with the oldparser, but fails with the new one.
>
>
> Dr Victor Lazzarini
> Senior Lecturer
> Dept. of Music
> NUI Maynooth Ireland
> tel.: +353 1 708 3545
> Victor dot Lazzarini AT nuim dot ie
>
>
>
>
> ------------------------------------------------------------------------------
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> http://p.sf.net/sfu/quest-d2dcopy1
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>

------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-05-30 09:54
FromVictor Lazzarini
SubjectRe: [Cs-dev] reentrancy problem with the new parser.
No, it does not depend on the CSD. I wonder if it's a floats version  
issue, because I tested with floats. Thanks for
looking into this. I will look again. Do you have portmidi in your  
system? Can you try it with a simple MIDI example?
I'm curious to see how it does on OSX 10.6.

By the way, I also found out that a variation on that code is also  
crashing, in the old and new parsers. Here it is:

#include "csound.h"
#include 
#define RUNS 4

int main(int argc, char **argv)
{
     CSOUND  *csound;
     int i, result;
     /* initialise Csound library */

     csoundInitialize(&argc, &argv, 0);
     /*  Create Csound. */
     csound = csoundCreate(NULL);
      for(i = 0; i < RUNS; i++){
     /*  One complete performance cycle. */
     result = csoundCompile(csound, argc, argv);
     if (!result)
       result = csoundPerform(csound);
     else { printf("error\n"); break; }
     /* delete Csound instance */
     csoundReset(csound);
      }
      csoundDestroy(csound);

      return result;
}

=======
Regards

Victor


On 30 May 2011, at 04:05, Steven Yi wrote:

> Hi Victor,
>
> I built this on OSX and ran it against a test csd I had around and it
> seemed to work fine without crashes.  I'm assuming it may only occur
> depending on the CSD?  Do you have an example CSD to use or one of the
> common examples I should try?
>
> Steven
>
> On Sun, May 29, 2011 at 8:51 AM, Victor Lazzarini
>  wrote:
>> It appears that the new parser has some sort of reentrancy problem,
>> causing a crash when we attempt to run a second instance. It is also
>> causing a crash if the same instance is used in a second compilation/
>> performance.
>>
>> You can test it with this program
>>
>> #include "csound.h"
>> #include 
>> #define RUNS 2
>>
>> int main(int argc, char **argv)
>> {
>>     CSOUND  *csound;
>>     int i, result;
>>     /* initialise Csound library */
>>       for(i = 0; i < RUNS; i++){
>>     csoundInitialize(&argc, &argv, 0);
>>     /*  Create Csound. */
>>     csound = csoundCreate(NULL);
>>     /*  One complete performance cycle. */
>>     result = csoundCompile(csound, argc, argv);
>>     if (!result)
>>       result = csoundPerform(csound);
>>     /* delete Csound instance */
>>      csoundDestroy(csound);
>>       }
>>      return result;
>> }
>>
>> This works with the oldparser, but fails with the new one.
>>
>>
>> Dr Victor Lazzarini
>> Senior Lecturer
>> Dept. of Music
>> NUI Maynooth Ireland
>> tel.: +353 1 708 3545
>> Victor dot Lazzarini AT nuim dot ie
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> vRanger cuts backup time in half-while increasing security.
>> With the market-leading solution for virtual backup and recovery,
>> you get blazing-fast, flexible, and affordable data protection.
>> Download your free trial now.
>> http://p.sf.net/sfu/quest-d2dcopy1
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
> ------------------------------------------------------------------------------
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> http://p.sf.net/sfu/quest-d2dcopy1
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel

Dr Victor Lazzarini
Senior Lecturer
Dept. of Music
NUI Maynooth Ireland
tel.: +353 1 708 3545
Victor dot Lazzarini AT nuim dot ie




------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-05-30 10:02
FromVictor Lazzarini
SubjectRe: [Cs-dev] reentrancy problem with the new parser.
Attachmentslecture1.csd  None  None  
Regarding the first program, this is the screendump with -v, showing  
where it goes wrong. It appears to
happen after all input is read and the parsing is going to start. I am  
attaching the CSD I used.

mu-lap-2h2-1:desktop victor$ ./cstest lecture1.csd -odac --new-parser -v
PortMIDI real time MIDI plugin for Csound
PortAudio real-time audio module for Csound
virtual_keyboard real time MIDI plugin for Csound
0dBFS level = 32768.0
Csound version 5.13 (float samples) May 19 2011
libsndfile-1.0.21
UnifiedCSD:  lecture1.csd
Environment variable 'SADIR' has been set to '/Users/victor/audio;/ 
Users/victor/Desktop'
Environment variable 'SSDIR' has been set to '/Users/victor/audio;/ 
Users/victor/Desktop'
Environment variable 'INCDIR' has been set to '/Users/victor/Desktop'
Environment variable 'MFDIR' has been set to '/Users/victor/Desktop'
STARTING FILE
Creating options
Creating orchestra
Creating score
decode_long new-parser
orchname:  /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound- 
MXAh5q.orc
scorename: /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound- 
s2aCj8.sco
rtaudio: PortAudio module enabled ... using callback interface
rtmidi: PortMIDI module enabled
********************
* USING NEW PARSER *
********************
Starting parse
Entering state 0
Reading a token: Next token is token S_NL ()
Shifting token S_NL ()
Entering state 1
Reducing stack by rule 34 (line 371):
    $1 = token S_NL ()
-> $$ = nterm statement ()
Stack now 0
Entering state 34
Reducing stack by rule 26 (line 311):
    $1 = nterm statement ()
-> $$ = nterm topstatement ()
Stack now 0
Entering state 33
Reducing stack by rule 5 (line 198):
    $1 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token T_SRATE ()
Shifting token T_SRATE ()
Entering state 10
Reducing stack by rule 127 (line 590):
    $1 = token T_SRATE ()
-> $$ = nterm rident ()
Stack now 0 30
Entering state 38
Reading a token: Next token is token S_ASSIGN ()
Shifting token S_ASSIGN ()
Entering state 92
Reading a token: Next token is token T_INTGR ()
Shifting token T_INTGR ()
Entering state 55
Reducing stack by rule 147 (line 616):
    $1 = token T_INTGR ()
-> $$ = nterm constant ()
Stack now 0 30 38 92
Entering state 63
Reducing stack by rule 110 (line 546):
    $1 = nterm constant ()
-> $$ = nterm ifac ()
Stack now 0 30 38 92
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 38 92
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 38 92
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 38 92
Entering state 140
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 191
Reducing stack by rule 25 (line 300):
    $1 = nterm rident ()
    $2 = token S_ASSIGN ()
    $3 = nterm expr ()
    $4 = token S_NL ()
-> $$ = nterm topstatement ()
Stack now 0 30
Entering state 71
Reducing stack by rule 2 (line 186):
    $1 = nterm rootstatement ()
    $2 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token T_KSMPS ()
Shifting token T_KSMPS ()
Entering state 12
Reducing stack by rule 129 (line 592):
    $1 = token T_KSMPS ()
-> $$ = nterm rident ()
Stack now 0 30
Entering state 38
Reading a token: Next token is token S_ASSIGN ()
Shifting token S_ASSIGN ()
Entering state 92
Reading a token: Next token is token T_INTGR ()
Shifting token T_INTGR ()
Entering state 55
Reducing stack by rule 147 (line 616):
    $1 = token T_INTGR ()
-> $$ = nterm constant ()
Stack now 0 30 38 92
Entering state 63
Reducing stack by rule 110 (line 546):
    $1 = nterm constant ()
-> $$ = nterm ifac ()
Stack now 0 30 38 92
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 38 92
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 38 92
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 38 92
Entering state 140
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 191
Reducing stack by rule 25 (line 300):
    $1 = nterm rident ()
    $2 = token S_ASSIGN ()
    $3 = nterm expr ()
    $4 = token S_NL ()
-> $$ = nterm topstatement ()
Stack now 0 30
Entering state 71
Reducing stack by rule 2 (line 186):
    $1 = nterm rootstatement ()
    $2 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token T_NCHNLS ()
Shifting token T_NCHNLS ()
Entering state 13
Reducing stack by rule 130 (line 593):
    $1 = token T_NCHNLS ()
-> $$ = nterm rident ()
Stack now 0 30
Entering state 38
Reading a token: Next token is token S_ASSIGN ()
Shifting token S_ASSIGN ()
Entering state 92
Reading a token: Next token is token T_INTGR ()
Shifting token T_INTGR ()
Entering state 55
Reducing stack by rule 147 (line 616):
    $1 = token T_INTGR ()
-> $$ = nterm constant ()
Stack now 0 30 38 92
Entering state 63
Reducing stack by rule 110 (line 546):
    $1 = nterm constant ()
-> $$ = nterm ifac ()
Stack now 0 30 38 92
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 38 92
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 38 92
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 38 92
Entering state 140
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 191
Reducing stack by rule 25 (line 300):
    $1 = nterm rident ()
    $2 = token S_ASSIGN ()
    $3 = nterm expr ()
    $4 = token S_NL ()
-> $$ = nterm topstatement ()
Stack now 0 30
Entering state 71
Reducing stack by rule 2 (line 186):
    $1 = nterm rootstatement ()
    $2 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token T_0DBFS ()
Shifting token T_0DBFS ()
Entering state 15
Reducing stack by rule 132 (line 595):
    $1 = token T_0DBFS ()
-> $$ = nterm rident ()
Stack now 0 30
Entering state 38
Reading a token: Next token is token S_ASSIGN ()
Shifting token S_ASSIGN ()
Entering state 92
Reading a token: Next token is token T_INTGR ()
Shifting token T_INTGR ()
Entering state 55
Reducing stack by rule 147 (line 616):
    $1 = token T_INTGR ()
-> $$ = nterm constant ()
Stack now 0 30 38 92
Entering state 63
Reducing stack by rule 110 (line 546):
    $1 = nterm constant ()
-> $$ = nterm ifac ()
Stack now 0 30 38 92
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 38 92
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 38 92
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 38 92
Entering state 140
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 191
Reducing stack by rule 25 (line 300):
    $1 = nterm rident ()
    $2 = token S_ASSIGN ()
    $3 = nterm expr ()
    $4 = token S_NL ()
-> $$ = nterm topstatement ()
Stack now 0 30
Entering state 71
Reducing stack by rule 2 (line 186):
    $1 = nterm rootstatement ()
    $2 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token S_NL ()
Shifting token S_NL ()
Entering state 1
Reducing stack by rule 34 (line 371):
    $1 = token S_NL ()
-> $$ = nterm statement ()
Stack now 0 30
Entering state 34
Reducing stack by rule 26 (line 311):
    $1 = nterm statement ()
-> $$ = nterm topstatement ()
Stack now 0 30
Entering state 71
Reducing stack by rule 2 (line 186):
    $1 = nterm rootstatement ()
    $2 = nterm topstatement ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: Next token is token T_INSTR ()
Shifting token T_INSTR ()
Entering state 6
Reading a token: Next token is token T_INTGR ()
Reducing stack by rule 10 (line 211):
-> $$ = nterm @1 ()
Stack now 0 30 6
Entering state 66
Next token is token T_INTGR ()
Shifting token T_INTGR ()
Entering state 134
Reading a token: Next token is token S_NL ()
Reducing stack by rule 9 (line 207):
    $1 = token T_INTGR ()
-> $$ = nterm intlist ()
Stack now 0 30 6 66
Entering state 135
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 188
Reducing stack by rule 11 (line 213):
-> $$ = nterm @2 ()
Stack now 0 30 6 66 135 188
Entering state 216
Reducing stack by rule 24 (line 297):
-> $$ = nterm statementlist ()
Stack now 0 30 6 66 135 188 216
Entering state 227
Reading a token: Next token is token T_IDENT_A ()
Shifting token T_IDENT_A ()
Entering state 20
Reducing stack by rule 138 (line 603):
    $1 = token T_IDENT_A ()
-> $$ = nterm ident ()
Stack now 0 30 6 66 135 188 216 227
Entering state 39
Reading a token: Next token is token T_OPCODE ()
Reducing stack by rule 35 (line 374):
    $1 = nterm ident ()
-> $$ = nterm ans ()
Stack now 0 30 6 66 135 188 216 227
Entering state 35
Next token is token T_OPCODE ()
Shifting token T_OPCODE ()
Entering state 73
Reducing stack by rule 157 (line 636):
    $1 = token T_OPCODE ()
-> $$ = nterm opcode ()
Stack now 0 30 6 66 135 188 216 227 35
Entering state 74
Reading a token: Next token is token T_0DBFS ()
Shifting token T_0DBFS ()
Entering state 53
Reducing stack by rule 155 (line 624):
    $1 = token T_0DBFS ()
-> $$ = nterm constant ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 63
Reducing stack by rule 110 (line 546):
    $1 = nterm constant ()
-> $$ = nterm ifac ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 96
Next token is token S_NL ()
Reducing stack by rule 69 (line 495):
    $1 = nterm expr ()
-> $$ = nterm exprlist ()
Stack now 0 30 6 66 135 188 216 227 35 74
Entering state 138
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 190
Reducing stack by rule 28 (line 331):
    $1 = nterm ans ()
    $2 = nterm opcode ()
    $3 = nterm exprlist ()
    $4 = token S_NL ()
-> $$ = nterm statement ()
Stack now 0 30 6 66 135 188 216 227
Entering state 223
Reducing stack by rule 23 (line 293):
    $1 = nterm statementlist ()
    $2 = nterm statement ()
-> $$ = nterm statementlist ()
Stack now 0 30 6 66 135 188 216
Entering state 227
Reading a token: Next token is token T_OPCODE0 ()
Shifting token T_OPCODE0 ()
Entering state 4
Reducing stack by rule 156 (line 627):
    $1 = token T_OPCODE0 ()
-> $$ = nterm opcode0 ()
Stack now 0 30 6 66 135 188 216 227
Entering state 41
Reading a token: Next token is token T_IDENT_A ()
Shifting token T_IDENT_A ()
Entering state 20
Reducing stack by rule 138 (line 603):
    $1 = token T_IDENT_A ()
-> $$ = nterm ident ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 62
Reducing stack by rule 109 (line 545):
    $1 = nterm ident ()
-> $$ = nterm ifac ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 60
Reading a token: Next token is token S_NL ()
Reducing stack by rule 108 (line 542):
    $1 = nterm ifac ()
-> $$ = nterm iterm ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 59
Next token is token S_NL ()
Reducing stack by rule 101 (line 533):
    $1 = nterm iterm ()
-> $$ = nterm iexp ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 58
Next token is token S_NL ()
Reducing stack by rule 96 (line 526):
    $1 = nterm iexp ()
-> $$ = nterm expr ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 96
Next token is token S_NL ()
Reducing stack by rule 69 (line 495):
    $1 = nterm expr ()
-> $$ = nterm exprlist ()
Stack now 0 30 6 66 135 188 216 227 41
Entering state 95
Next token is token S_NL ()
Shifting token S_NL ()
Entering state 143
Reducing stack by rule 29 (line 344):
    $1 = nterm opcode0 ()
    $2 = nterm exprlist ()
    $3 = token S_NL ()
-> $$ = nterm statement ()
Stack now 0 30 6 66 135 188 216 227
Entering state 223
Reducing stack by rule 23 (line 293):
    $1 = nterm statementlist ()
    $2 = nterm statement ()
-> $$ = nterm statementlist ()
Stack now 0 30 6 66 135 188 216
Entering state 227
Reading a token: Next token is token T_ENDIN ()
Shifting token T_ENDIN ()
Entering state 236
Reading a token: Next token is token S_NL ()
Shifting token S_NL ()
Entering state 243
Reducing stack by rule 12 (line 210):
    $1 = token T_INSTR ()
    $2 = nterm @1 ()
    $3 = nterm intlist ()
    $4 = token S_NL ()
    $5 = nterm @2 ()
    $6 = nterm statementlist ()
    $7 = token T_ENDIN ()
    $8 = token S_NL ()
-> $$ = nterm instrdecl ()
Stack now 0 30
Entering state 69
Reducing stack by rule 3 (line 190):
    $1 = nterm rootstatement ()
    $2 = nterm instrdecl ()
-> $$ = nterm rootstatement ()
Stack now 0
Entering state 30
Reading a token: END OF INPUT
Now at end of input.
Reducing stack by rule 1 (line 179):
    $1 = nterm rootstatement ()
-> $$ = nterm orcfile ()
Stack now 0
Entering state 29
Now at end of input.
Stack now 0 29
Cleanup: popping nterm orcfile ()
Parsing successful!
treqd i, tfound c
xincod = 0
treqd r, tfound r
treqd i, tfound c
xincod = 0
treqd r, tfound r
treqd i, tfound c
xincod = 0
treqd r, tfound r
SETTING 0DBFS: 1.000000
treqd i, tfound c
xincod = 0
treqd r, tfound r
treqd o, tfound c
treqd o, tfound c
treqd v, tfound c
treqd x, tfound r
xincod = 0
treqd s, tfound a
treqd a, tfound a
xincod = 1
poolcount = 5, strpool_cnt = 1
pool:	0	44100	32	1	0.5
strpool:	""
=.r argndxs:	6	2
=.r argndxs:	8	3
=.r argndxs:	9	4
=.r argndxs:	11	4
rand argndxs:	-4	11	5	1	1
out argndxs:	-4
argoff array:
	0	1	6	1	2	1	8	1	3	11	1	4	1	-4	4	11	5	1	1	-4
Elapsed time at end of orchestra compile: real: 0.029s, CPU: 0.011s
sorting score ...
	... done
Elapsed time at end of score sort: real: 0.059s, CPU: 0.025s
Csound version 5.13 (float samples) May 19 2011
Creating search path cache for 'SNAPDIR':
Creating search path cache for 'SFDIR;SSDIR;INCDIR':
     1: "/Users/victor/Desktop/"
     2: "/Users/victor/audio/"
Creating search path cache for 'SFDIR':
     1: "/Users/victor/audio/"
Creating search path cache for 'SADIR':
     1: "/Users/victor/Desktop/"
     2: "/Users/victor/audio/"
Creating search path cache for 'SFDIR;SSDIR':
     1: "/Users/victor/Desktop/"
     2: "/Users/victor/audio/"
esr = 44100.0, ekr =  1378.1, ksmps = 32, nchnls = 1 nchnlsi = -1  
0dbfs = 1.0
lclabeg 4, lclsbeg 4
lclabeg 4, lclsbeg 5
0dBFS level = 1.0
instr 0 allocated at 0x348bf8
	lclbas 0x348c68, opds 0x348c68
op 54 (=.r) allocated at 0x348c68
argptrs:	0x34878c	0x34877c
op 54 (=.r) allocated at 0x348c88
argptrs:	0x348794	0x348780
op 54 (=.r) allocated at 0x348ca8
argptrs:	0x348798	0x348784
op 54 (=.r) allocated at 0x348cc8
argptrs:	0x3487a0	0x348784
orch now loaded
audio buffered in 1024 sample-frame blocks
PortAudio V19-devel (built Feb 12 2010 09:42:54)
PortAudio: available output devices:
    0: Built-in Output
    1: Aggregate Device
    2: mic+audio
PortAudio: selected output device 'Built-in Output'
writing 2048-byte blks of shorts to dac
SECTION 1:
new event:  0.0000000000000  0.0000000000000
activating instr 1 at 0
new alloc for instr 1:
instr 1 allocated at 0x35d938
	lclbas 0x35d9a8, opds 0x35da28
op 278 (rand) allocated at 0x35da28
opadr = 0x17c920
argptrs:	0x35d9a8	0x3487a0	0x348788	0x348778	0x348778
op 305 (out) allocated at 0x35da5c
opadr = 0x141100
argptrs:	0x35d9a8
psave beg at 0x35d99c
    ending at 0x35d9a8
init rand:
instr 1 now active:
insno	instanc	nxtinst	prvinst	nxtact	prvact	nxtoff	actflg	offtim
0	0x348bf8	0x0	0x0	0x0	0x0	0x0	1	0.0
1	0x35d938	0x0	0x0	0x0	0x35118	0x0	1	1.0
removed instance of instr 1
deactivated all notes to time   1.000
frstoff = 0x0
B  0.000 ..  1.000 T  1.000 TT  1.000 M:  1.00000
Score finished in csoundPerform().
removed instance of instr 0
inactive allocs returned to freespace
end of score.		   overall amps:  1.00000
	   overall samples out of range:        0
0 errors in performance
Elapsed time at end of performance: real: 1.594s, CPU: 0.202s
44 2048-byte soundblks of shorts written to dac
PortMIDI real time MIDI plugin for Csound
PortAudio real-time audio module for Csound
virtual_keyboard real time MIDI plugin for Csound
0dBFS level = 32768.0
Csound version 5.13 (float samples) May 19 2011
libsndfile-1.0.21
UnifiedCSD:  lecture1.csd
Environment variable 'SADIR' has been set to '/Users/victor/audio;/ 
Users/victor/Desktop'
Environment variable 'SSDIR' has been set to '/Users/victor/audio;/ 
Users/victor/Desktop'
Environment variable 'INCDIR' has been set to '/Users/victor/Desktop'
Environment variable 'MFDIR' has been set to '/Users/victor/Desktop'
STARTING FILE
Creating options
Creating orchestra
Creating score
decode_long new-parser
orchname:  /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound- 
uBWU1y.orc
scorename: /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound- 
f1nNc2.sco
rtaudio: PortAudio module enabled ... using callback interface
rtmidi: PortMIDI module enabled
********************
* USING NEW PARSER *
********************
Starting parse
Entering state 0
Reading a token: END OF INPUT
Now at end of input.
Csound tidy up: Segmentation fault
Csound tidy up: Bus error




Date2011-05-30 11:22
Fromjpff@cs.bath.ac.uk
SubjectRe: [Cs-dev] reentrancy problem with the new parser.
Of course the parser has a number of staic variables that possibly do not
get reset.  I mentioned this earlier



> Regarding the first program, this is the screendump with -v, showing
> where it goes wrong. It appears to
> happen after all input is read and the parsing is going to start. I am
> attaching the CSD I used.
>
> mu-lap-2h2-1:desktop victor$ ./cstest lecture1.csd -odac --new-parser -v
> PortMIDI real time MIDI plugin for Csound
> PortAudio real-time audio module for Csound
> virtual_keyboard real time MIDI plugin for Csound
> 0dBFS level = 32768.0
> Csound version 5.13 (float samples) May 19 2011
> libsndfile-1.0.21
> UnifiedCSD:  lecture1.csd
> Environment variable 'SADIR' has been set to '/Users/victor/audio;/
> Users/victor/Desktop'
> Environment variable 'SSDIR' has been set to '/Users/victor/audio;/
> Users/victor/Desktop'
> Environment variable 'INCDIR' has been set to '/Users/victor/Desktop'
> Environment variable 'MFDIR' has been set to '/Users/victor/Desktop'
> STARTING FILE
> Creating options
> Creating orchestra
> Creating score
> decode_long new-parser
> orchname:  /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound-
> MXAh5q.orc
> scorename: /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound-
> s2aCj8.sco
> rtaudio: PortAudio module enabled ... using callback interface
> rtmidi: PortMIDI module enabled
> ********************
> * USING NEW PARSER *
> ********************
> Starting parse
> Entering state 0
> Reading a token: Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 1
> Reducing stack by rule 34 (line 371):
>     $1 = token S_NL ()
> -> $$ = nterm statement ()
> Stack now 0
> Entering state 34
> Reducing stack by rule 26 (line 311):
>     $1 = nterm statement ()
> -> $$ = nterm topstatement ()
> Stack now 0
> Entering state 33
> Reducing stack by rule 5 (line 198):
>     $1 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token T_SRATE ()
> Shifting token T_SRATE ()
> Entering state 10
> Reducing stack by rule 127 (line 590):
>     $1 = token T_SRATE ()
> -> $$ = nterm rident ()
> Stack now 0 30
> Entering state 38
> Reading a token: Next token is token S_ASSIGN ()
> Shifting token S_ASSIGN ()
> Entering state 92
> Reading a token: Next token is token T_INTGR ()
> Shifting token T_INTGR ()
> Entering state 55
> Reducing stack by rule 147 (line 616):
>     $1 = token T_INTGR ()
> -> $$ = nterm constant ()
> Stack now 0 30 38 92
> Entering state 63
> Reducing stack by rule 110 (line 546):
>     $1 = nterm constant ()
> -> $$ = nterm ifac ()
> Stack now 0 30 38 92
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 38 92
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 38 92
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 38 92
> Entering state 140
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 191
> Reducing stack by rule 25 (line 300):
>     $1 = nterm rident ()
>     $2 = token S_ASSIGN ()
>     $3 = nterm expr ()
>     $4 = token S_NL ()
> -> $$ = nterm topstatement ()
> Stack now 0 30
> Entering state 71
> Reducing stack by rule 2 (line 186):
>     $1 = nterm rootstatement ()
>     $2 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token T_KSMPS ()
> Shifting token T_KSMPS ()
> Entering state 12
> Reducing stack by rule 129 (line 592):
>     $1 = token T_KSMPS ()
> -> $$ = nterm rident ()
> Stack now 0 30
> Entering state 38
> Reading a token: Next token is token S_ASSIGN ()
> Shifting token S_ASSIGN ()
> Entering state 92
> Reading a token: Next token is token T_INTGR ()
> Shifting token T_INTGR ()
> Entering state 55
> Reducing stack by rule 147 (line 616):
>     $1 = token T_INTGR ()
> -> $$ = nterm constant ()
> Stack now 0 30 38 92
> Entering state 63
> Reducing stack by rule 110 (line 546):
>     $1 = nterm constant ()
> -> $$ = nterm ifac ()
> Stack now 0 30 38 92
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 38 92
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 38 92
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 38 92
> Entering state 140
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 191
> Reducing stack by rule 25 (line 300):
>     $1 = nterm rident ()
>     $2 = token S_ASSIGN ()
>     $3 = nterm expr ()
>     $4 = token S_NL ()
> -> $$ = nterm topstatement ()
> Stack now 0 30
> Entering state 71
> Reducing stack by rule 2 (line 186):
>     $1 = nterm rootstatement ()
>     $2 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token T_NCHNLS ()
> Shifting token T_NCHNLS ()
> Entering state 13
> Reducing stack by rule 130 (line 593):
>     $1 = token T_NCHNLS ()
> -> $$ = nterm rident ()
> Stack now 0 30
> Entering state 38
> Reading a token: Next token is token S_ASSIGN ()
> Shifting token S_ASSIGN ()
> Entering state 92
> Reading a token: Next token is token T_INTGR ()
> Shifting token T_INTGR ()
> Entering state 55
> Reducing stack by rule 147 (line 616):
>     $1 = token T_INTGR ()
> -> $$ = nterm constant ()
> Stack now 0 30 38 92
> Entering state 63
> Reducing stack by rule 110 (line 546):
>     $1 = nterm constant ()
> -> $$ = nterm ifac ()
> Stack now 0 30 38 92
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 38 92
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 38 92
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 38 92
> Entering state 140
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 191
> Reducing stack by rule 25 (line 300):
>     $1 = nterm rident ()
>     $2 = token S_ASSIGN ()
>     $3 = nterm expr ()
>     $4 = token S_NL ()
> -> $$ = nterm topstatement ()
> Stack now 0 30
> Entering state 71
> Reducing stack by rule 2 (line 186):
>     $1 = nterm rootstatement ()
>     $2 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token T_0DBFS ()
> Shifting token T_0DBFS ()
> Entering state 15
> Reducing stack by rule 132 (line 595):
>     $1 = token T_0DBFS ()
> -> $$ = nterm rident ()
> Stack now 0 30
> Entering state 38
> Reading a token: Next token is token S_ASSIGN ()
> Shifting token S_ASSIGN ()
> Entering state 92
> Reading a token: Next token is token T_INTGR ()
> Shifting token T_INTGR ()
> Entering state 55
> Reducing stack by rule 147 (line 616):
>     $1 = token T_INTGR ()
> -> $$ = nterm constant ()
> Stack now 0 30 38 92
> Entering state 63
> Reducing stack by rule 110 (line 546):
>     $1 = nterm constant ()
> -> $$ = nterm ifac ()
> Stack now 0 30 38 92
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 38 92
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 38 92
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 38 92
> Entering state 140
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 191
> Reducing stack by rule 25 (line 300):
>     $1 = nterm rident ()
>     $2 = token S_ASSIGN ()
>     $3 = nterm expr ()
>     $4 = token S_NL ()
> -> $$ = nterm topstatement ()
> Stack now 0 30
> Entering state 71
> Reducing stack by rule 2 (line 186):
>     $1 = nterm rootstatement ()
>     $2 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 1
> Reducing stack by rule 34 (line 371):
>     $1 = token S_NL ()
> -> $$ = nterm statement ()
> Stack now 0 30
> Entering state 34
> Reducing stack by rule 26 (line 311):
>     $1 = nterm statement ()
> -> $$ = nterm topstatement ()
> Stack now 0 30
> Entering state 71
> Reducing stack by rule 2 (line 186):
>     $1 = nterm rootstatement ()
>     $2 = nterm topstatement ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: Next token is token T_INSTR ()
> Shifting token T_INSTR ()
> Entering state 6
> Reading a token: Next token is token T_INTGR ()
> Reducing stack by rule 10 (line 211):
> -> $$ = nterm @1 ()
> Stack now 0 30 6
> Entering state 66
> Next token is token T_INTGR ()
> Shifting token T_INTGR ()
> Entering state 134
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 9 (line 207):
>     $1 = token T_INTGR ()
> -> $$ = nterm intlist ()
> Stack now 0 30 6 66
> Entering state 135
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 188
> Reducing stack by rule 11 (line 213):
> -> $$ = nterm @2 ()
> Stack now 0 30 6 66 135 188
> Entering state 216
> Reducing stack by rule 24 (line 297):
> -> $$ = nterm statementlist ()
> Stack now 0 30 6 66 135 188 216
> Entering state 227
> Reading a token: Next token is token T_IDENT_A ()
> Shifting token T_IDENT_A ()
> Entering state 20
> Reducing stack by rule 138 (line 603):
>     $1 = token T_IDENT_A ()
> -> $$ = nterm ident ()
> Stack now 0 30 6 66 135 188 216 227
> Entering state 39
> Reading a token: Next token is token T_OPCODE ()
> Reducing stack by rule 35 (line 374):
>     $1 = nterm ident ()
> -> $$ = nterm ans ()
> Stack now 0 30 6 66 135 188 216 227
> Entering state 35
> Next token is token T_OPCODE ()
> Shifting token T_OPCODE ()
> Entering state 73
> Reducing stack by rule 157 (line 636):
>     $1 = token T_OPCODE ()
> -> $$ = nterm opcode ()
> Stack now 0 30 6 66 135 188 216 227 35
> Entering state 74
> Reading a token: Next token is token T_0DBFS ()
> Shifting token T_0DBFS ()
> Entering state 53
> Reducing stack by rule 155 (line 624):
>     $1 = token T_0DBFS ()
> -> $$ = nterm constant ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 63
> Reducing stack by rule 110 (line 546):
>     $1 = nterm constant ()
> -> $$ = nterm ifac ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 96
> Next token is token S_NL ()
> Reducing stack by rule 69 (line 495):
>     $1 = nterm expr ()
> -> $$ = nterm exprlist ()
> Stack now 0 30 6 66 135 188 216 227 35 74
> Entering state 138
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 190
> Reducing stack by rule 28 (line 331):
>     $1 = nterm ans ()
>     $2 = nterm opcode ()
>     $3 = nterm exprlist ()
>     $4 = token S_NL ()
> -> $$ = nterm statement ()
> Stack now 0 30 6 66 135 188 216 227
> Entering state 223
> Reducing stack by rule 23 (line 293):
>     $1 = nterm statementlist ()
>     $2 = nterm statement ()
> -> $$ = nterm statementlist ()
> Stack now 0 30 6 66 135 188 216
> Entering state 227
> Reading a token: Next token is token T_OPCODE0 ()
> Shifting token T_OPCODE0 ()
> Entering state 4
> Reducing stack by rule 156 (line 627):
>     $1 = token T_OPCODE0 ()
> -> $$ = nterm opcode0 ()
> Stack now 0 30 6 66 135 188 216 227
> Entering state 41
> Reading a token: Next token is token T_IDENT_A ()
> Shifting token T_IDENT_A ()
> Entering state 20
> Reducing stack by rule 138 (line 603):
>     $1 = token T_IDENT_A ()
> -> $$ = nterm ident ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 62
> Reducing stack by rule 109 (line 545):
>     $1 = nterm ident ()
> -> $$ = nterm ifac ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 60
> Reading a token: Next token is token S_NL ()
> Reducing stack by rule 108 (line 542):
>     $1 = nterm ifac ()
> -> $$ = nterm iterm ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 59
> Next token is token S_NL ()
> Reducing stack by rule 101 (line 533):
>     $1 = nterm iterm ()
> -> $$ = nterm iexp ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 58
> Next token is token S_NL ()
> Reducing stack by rule 96 (line 526):
>     $1 = nterm iexp ()
> -> $$ = nterm expr ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 96
> Next token is token S_NL ()
> Reducing stack by rule 69 (line 495):
>     $1 = nterm expr ()
> -> $$ = nterm exprlist ()
> Stack now 0 30 6 66 135 188 216 227 41
> Entering state 95
> Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 143
> Reducing stack by rule 29 (line 344):
>     $1 = nterm opcode0 ()
>     $2 = nterm exprlist ()
>     $3 = token S_NL ()
> -> $$ = nterm statement ()
> Stack now 0 30 6 66 135 188 216 227
> Entering state 223
> Reducing stack by rule 23 (line 293):
>     $1 = nterm statementlist ()
>     $2 = nterm statement ()
> -> $$ = nterm statementlist ()
> Stack now 0 30 6 66 135 188 216
> Entering state 227
> Reading a token: Next token is token T_ENDIN ()
> Shifting token T_ENDIN ()
> Entering state 236
> Reading a token: Next token is token S_NL ()
> Shifting token S_NL ()
> Entering state 243
> Reducing stack by rule 12 (line 210):
>     $1 = token T_INSTR ()
>     $2 = nterm @1 ()
>     $3 = nterm intlist ()
>     $4 = token S_NL ()
>     $5 = nterm @2 ()
>     $6 = nterm statementlist ()
>     $7 = token T_ENDIN ()
>     $8 = token S_NL ()
> -> $$ = nterm instrdecl ()
> Stack now 0 30
> Entering state 69
> Reducing stack by rule 3 (line 190):
>     $1 = nterm rootstatement ()
>     $2 = nterm instrdecl ()
> -> $$ = nterm rootstatement ()
> Stack now 0
> Entering state 30
> Reading a token: END OF INPUT
> Now at end of input.
> Reducing stack by rule 1 (line 179):
>     $1 = nterm rootstatement ()
> -> $$ = nterm orcfile ()
> Stack now 0
> Entering state 29
> Now at end of input.
> Stack now 0 29
> Cleanup: popping nterm orcfile ()
> Parsing successful!
> treqd i, tfound c
> xincod = 0
> treqd r, tfound r
> treqd i, tfound c
> xincod = 0
> treqd r, tfound r
> treqd i, tfound c
> xincod = 0
> treqd r, tfound r
> SETTING 0DBFS: 1.000000
> treqd i, tfound c
> xincod = 0
> treqd r, tfound r
> treqd o, tfound c
> treqd o, tfound c
> treqd v, tfound c
> treqd x, tfound r
> xincod = 0
> treqd s, tfound a
> treqd a, tfound a
> xincod = 1
> poolcount = 5, strpool_cnt = 1
> pool:	0	44100	32	1	0.5
> strpool:	""
> =.r argndxs:	6	2
> =.r argndxs:	8	3
> =.r argndxs:	9	4
> =.r argndxs:	11	4
> rand argndxs:	-4	11	5	1	1
> out argndxs:	-4
> argoff array:
> 	0	1	6	1	2	1	8	1	3	11	1	4	1	-4	4	11	5	1	1	-4
> Elapsed time at end of orchestra compile: real: 0.029s, CPU: 0.011s
> sorting score ...
> 	... done
> Elapsed time at end of score sort: real: 0.059s, CPU: 0.025s
> Csound version 5.13 (float samples) May 19 2011
> Creating search path cache for 'SNAPDIR':
> Creating search path cache for 'SFDIR;SSDIR;INCDIR':
>      1: "/Users/victor/Desktop/"
>      2: "/Users/victor/audio/"
> Creating search path cache for 'SFDIR':
>      1: "/Users/victor/audio/"
> Creating search path cache for 'SADIR':
>      1: "/Users/victor/Desktop/"
>      2: "/Users/victor/audio/"
> Creating search path cache for 'SFDIR;SSDIR':
>      1: "/Users/victor/Desktop/"
>      2: "/Users/victor/audio/"
> esr = 44100.0, ekr =  1378.1, ksmps = 32, nchnls = 1 nchnlsi = -1
> 0dbfs = 1.0
> lclabeg 4, lclsbeg 4
> lclabeg 4, lclsbeg 5
> 0dBFS level = 1.0
> instr 0 allocated at 0x348bf8
> 	lclbas 0x348c68, opds 0x348c68
> op 54 (=.r) allocated at 0x348c68
> argptrs:	0x34878c	0x34877c
> op 54 (=.r) allocated at 0x348c88
> argptrs:	0x348794	0x348780
> op 54 (=.r) allocated at 0x348ca8
> argptrs:	0x348798	0x348784
> op 54 (=.r) allocated at 0x348cc8
> argptrs:	0x3487a0	0x348784
> orch now loaded
> audio buffered in 1024 sample-frame blocks
> PortAudio V19-devel (built Feb 12 2010 09:42:54)
> PortAudio: available output devices:
>     0: Built-in Output
>     1: Aggregate Device
>     2: mic+audio
> PortAudio: selected output device 'Built-in Output'
> writing 2048-byte blks of shorts to dac
> SECTION 1:
> new event:  0.0000000000000  0.0000000000000
> activating instr 1 at 0
> new alloc for instr 1:
> instr 1 allocated at 0x35d938
> 	lclbas 0x35d9a8, opds 0x35da28
> op 278 (rand) allocated at 0x35da28
> opadr = 0x17c920
> argptrs:	0x35d9a8	0x3487a0	0x348788	0x348778	0x348778
> op 305 (out) allocated at 0x35da5c
> opadr = 0x141100
> argptrs:	0x35d9a8
> psave beg at 0x35d99c
>     ending at 0x35d9a8
> init rand:
> instr 1 now active:
> insno	instanc	nxtinst	prvinst	nxtact	prvact	nxtoff	actflg	offtim
> 0	0x348bf8	0x0	0x0	0x0	0x0	0x0	1	0.0
> 1	0x35d938	0x0	0x0	0x0	0x35118	0x0	1	1.0
> removed instance of instr 1
> deactivated all notes to time   1.000
> frstoff = 0x0
> B  0.000 ..  1.000 T  1.000 TT  1.000 M:  1.00000
> Score finished in csoundPerform().
> removed instance of instr 0
> inactive allocs returned to freespace
> end of score.		   overall amps:  1.00000
> 	   overall samples out of range:        0
> 0 errors in performance
> Elapsed time at end of performance: real: 1.594s, CPU: 0.202s
> 44 2048-byte soundblks of shorts written to dac
> PortMIDI real time MIDI plugin for Csound
> PortAudio real-time audio module for Csound
> virtual_keyboard real time MIDI plugin for Csound
> 0dBFS level = 32768.0
> Csound version 5.13 (float samples) May 19 2011
> libsndfile-1.0.21
> UnifiedCSD:  lecture1.csd
> Environment variable 'SADIR' has been set to '/Users/victor/audio;/
> Users/victor/Desktop'
> Environment variable 'SSDIR' has been set to '/Users/victor/audio;/
> Users/victor/Desktop'
> Environment variable 'INCDIR' has been set to '/Users/victor/Desktop'
> Environment variable 'MFDIR' has been set to '/Users/victor/Desktop'
> STARTING FILE
> Creating options
> Creating orchestra
> Creating score
> decode_long new-parser
> orchname:  /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound-
> uBWU1y.orc
> scorename: /var/folders/5P/5PSrqM3mGnCIxRlBhio0cE+++TM/-Tmp-//csound-
> f1nNc2.sco
> rtaudio: PortAudio module enabled ... using callback interface
> rtmidi: PortMIDI module enabled
> ********************
> * USING NEW PARSER *
> ********************
> Starting parse
> Entering state 0
> Reading a token: END OF INPUT
> Now at end of input.
> Csound tidy up: Segmentation fault
> Csound tidy up: Bus error
>
>
>
> ------------------------------------------------------------------------------
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> http://p.sf.net/sfu/quest-d2dcopy1_______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>



------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-05-30 12:54
FromVictor Lazzarini
SubjectRe: [Cs-dev] reentrancy problem with the new parser.
You probably did and I forgot.

Victor
On 30 May 2011, at 11:22, jpff@cs.bath.ac.uk wrote:

> Of course the parser has a number of staic variables that possibly  
> do not
> get reset.  I mentioned this earlier
>


------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net