[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [help-3dldf] installation problem with 3DLDF
From: |
Laurence Finston |
Subject: |
Re: [help-3dldf] installation problem with 3DLDF |
Date: |
Mon, 18 Feb 2008 14:07:11 +0100 (CET) |
On Mon, 18 Feb 2008, address@hidden wrote:
> My mistake. I forgot to insert the appropriate code at the beginning of
> `~Complex'. It's in `prelims.web', but there are a few lines that need to
> be deleted. I'll fix it and upload new versions in a few minutes.
I've fixed it. It works on my system, but it shouldn't. You're probably
using a newer version of GCC which catches the error. If you get it
again, it can probably be fixed by inserting the code found in
`prelims.web', which should be more-or-less self-explanatory, at the
beginning of the function that fails to compile.
There is some conditionally compiled code in `prelims.web' that should be
deleted or commented-out, depending on the arguments of the function.
There are comments indicating this code.
Many functions in 3DLDF take a `Scanner_Node scanner_node' argument. The
`Scanner_Node' is the parameter passed to `yyparse' and `yylex', the
parser and scanner functions, respectively. A single run of 3DLDF can
have multiple "parses", i.e., calls to `yyparse', in different
threads. `yyparse' and `yylex' must therefore be reentrant and cannot
contain static local variables. That is one reason for
`Scanner_Nodes'. In addition, a `Scanner_Node' stores the state of a
single parse. That is, it stores the information about what variables
have been declared by the user and the values they contain, etc.
Some functions, such as `yyparse' and `yylex' themselves, take a
`void*' argument which points to a `Scanner_Type' object.
`Scanner_Node' is just a typedef for `Scanner_Type*'.
Other functions don't take either kind of argument, but the
`Scanner_Type' object for that thread can be recovered from "thread
specific data". You can look up how this works in `pspglb.web'.
Search for `struct Thread_Info_Type'. It wraps the data type
`pthread_key_t' and several functions from the `pthread' (Posix
thread) library. If you don't know about this, there are man pages
for `pthread_getspecific', `pthread_key_create', etc.
Laurence
- [help-3dldf] installation problem with 3DLDF, arnuld, 2008/02/18
- Re: [help-3dldf] installation problem with 3DLDF, lfinsto1, 2008/02/18
- Re: [help-3dldf] installation problem with 3DLDF,
Laurence Finston <=
- Re: [help-3dldf] installation problem with 3DLDF, arnuld, 2008/02/19
- Re: [help-3dldf] installation problem with 3DLDF, lfinsto1, 2008/02/19
- Re: [help-3dldf] installation problem with 3DLDF, arnuld, 2008/02/19
- Re: [help-3dldf] installation problem with 3DLDF, lfinsto1, 2008/02/20
- Re: [help-3dldf] installation problem with 3DLDF, arnuld, 2008/02/21
- Re: [help-3dldf] installation problem with 3DLDF, lfinsto1, 2008/02/21
Re: [help-3dldf] installation problem with 3DLDF, arnuld, 2008/02/18