[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: gnetlist: ERROR: Unbound variable: primitive-fork



Thank you for your reply and hints.

By using grep, as you suggested, I think I found which script is causing the
error ... but it is written in a (to me) foreign language: guile :-)
The file is /usr/share/guile/1.6/ice-9/popen.scm, see below.


On Sat, Apr 10, 2004 at 07:58:36AM -0400, Dan McMahill wrote:
> what about
> 
> gnetlist -g gsch2pcb -o tmp.pcb cmeter.sch
> 
> Is that broken as well?

Yes, same message: ERROR: Unbound variable: primitive-fork


> Do you have GUILE_LOAD_PATH set by any chance?

No, what should I set it to?
I have tried: export GUILE_LOAD_PATH=/usr/share/guile/1.6/
but still get the same error message.

> 
> Take a look at your gnetlist.log file and look for the lines which
> look like:
> 
> Read init scm file [/opt/geda/geda-20030901/share/gEDA/scheme/gnetlist.scm]
> Read PCB scm file [/opt/geda/geda-20030901/share/gEDA/scheme/gnet-PCB.scm]
> 
> Then use grep to look for 'primitive-fork' in that area.  For example
> 
> grep primitive /opt/geda/geda-20030901/share/gEDA/scheme/*
> 

No results obtained by grepping within the files mentioned in the log.
But grepping a little further gives one hit:
$ find /usr/share/guile -type f -exec grep -l primitive-fork {} \;
/usr/share/guile/1.6/ice-9/popen.scm

The "primitive-fork" reference is found in that file looks like a procedure
named open-process .. but I don't really understand guile so I may have misread
the following:

.  ;; run a process connected to an input or output port.
.  ;; mode: OPEN_READ or OPEN_WRITE.
.  ;; returns port/pid pair.
.  (define (open-process mode prog . args)
.    (let ((p (pipe))
.          (reading (string=? mode OPEN_READ)))
.      (setvbuf (cdr p) _IONBF) 
.      (let ((pid (primitive-fork)))
.        (cond ((= pid 0)
.               ;; child
.               (set-batch-mode?! #t)


Does this mean anything to you?

I have guile vesion 1.6.4

> 
> You can also take a look in the gnet-PCB.scm file look for the line which
> looks something like:
> 
> (let ((pipe (open-output-pipe (string-append "gm4 -d .........
> 
> In particular, what is the 'gm4' or 'm4' command there?  Is that in your
> PATH.  Try running
> 
>    m4 --version
> 
> using 'gm4' if thats what you have in that spot.  I probably don't care
> so much about the exact version but that m4 is installed and working.

$ m4 --version
GNU m4 1.4.1



Thanks for any hints.
Berni