i will test that , for now i'm testing under Linux on another system
(previous one was Mac OS)
and the same code works :

GNU Guile 3.0.1
Copyright (C) 1995-2020 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (load "start-λογικι-guile+.scm")
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/mattei/Dropbox/git/library-FunctProg/start-λογικι-guile+.scm
;;; compiling /usr/share/guile/site/3.0/Scheme+.scm
;;; compiling /usr/share/guile/site/3.0/growable-vector.scm
;;; compiled 
/home/mattei/.cache/guile/ccache/3.0-LE-8-4.2/usr/share/guile/site/3.0/growable-vector.scm.go
;;; assignment.scm:903:12: warning: macro `when' used before definition
;;; assignment.scm:935:2: warning: macro `when' used before definition
;;; assignment.scm:941:6: warning: macro `when' used before definition
;;; assignment.scm:947:6: warning: macro `when' used before definition
;;; compiled 
/home/mattei/.cache/guile/ccache/3.0-LE-8-4.2/usr/share/guile/site/3.0/Scheme+.scm.go
;;; guile/logiki+.scm:3661:28: warning: possibly unbound variable
`string->pointer'
;;; guile/logiki+.scm:3661:2: warning: possibly unbound variable `forfunct'
;;; guile/logiki+.scm:3641:26: warning: possibly unbound variable
`string->pointer'
;;; guile/logiki+.scm:3641:2: warning: possibly unbound variable `openmp'
;;; guile/logiki+.scm:3765:6: warning: possibly unbound variable `openmp'
;;; guile/logiki+.scm:3765:25: warning: possibly unbound variable
`string->pointer'
;;; guile/logiki+.scm:3869:6: warning: possibly unbound variable `openmp'
;;; guile/logiki+.scm:3869:25: warning: possibly unbound variable
`string->pointer'
;;; guile/logiki+.scm:3965:32: warning: possibly unbound variable
`parallel-vector-map'
;;; guile/logiki+.scm:4059:6: warning: possibly unbound variable `forfunct'
;;; guile/logiki+.scm:4059:27: warning: possibly unbound variable
`string->pointer'
;;; compiled 
/home/mattei/.cache/guile/ccache/3.0-LE-8-4.2/home/mattei/Dropbox/git/library-FunctProg/start-λογικι-guile+.scm.go
scheme@(guile-user)> (logic-test)

test 1
((¬a ∧ b ∧ d) ∨ (¬b ∧ ¬c) ∨ (c ∧ ¬d))
EXACT

test 2
((¬a ∧ b ∧ d) ∨ (¬b ∧ ¬c) ∨ (c ∧ ¬d))
EXACT

test 3
((A ∧ B) ∨ (A ∧ C) ∨ (B ∧ C))
EXACT

test 4
((B0 ∧ B1) ∨ (B0 ∧ C1) ∨ (B1 ∧ C1))
EXACT

test 5
(or (and B2 B3) (and B2 B4) (and B3 (not B12)))
EXACT

test 6
(or (and (not a) (not b) (not c) (not d)) (and (not a) (not b) (not c)
d) (and (not a) (not b) c (not d)) (and (not a) b (not c) d) (and (not
a) b c (not d)) (and (not a) b c d) (and a (not b) (not c) (not d))
(and a (not b) (not c) d) (and a (not b) c (not d)) (and c (not d))) =
((¬a ∨ ¬b ∨ c) ∧ (¬a ∨ ¬b ∨ ¬d) ∧ (¬a ∨ ¬c ∨ ¬d) ∧ (b ∨ ¬c ∨ ¬d) ∧ (¬b
∨ c ∨ d))
EXACT

test 7
(or (and (and A B) (not (and C (or (and A (not B)) (and (not A) B)))))
(and (not (and A B)) (and C (or (and A (not B)) (and (not A) B))))) =
(or (and A B C) (and A B (not C)) (and A (not B) C) (and (not A) B C))
EXACT

test 8
(or (and B₂ B₃) (and B₂ B₄) (and B₃ (not B₁₂)))
EXACT

#t

with the same code shared between system via Dropbox

later i removed a debug info and the compilation was sticked on:
(load "start-λογικι-guile+.scm")

so i did in a terminal :
 mattei@pc-mattei:~$ zd .cache/guile/ccache/
total 16
drwxr-xr-x 4 mattei mattei 4096 juin   8  2021 .
drwxr-xr-x 3 mattei mattei 4096 mars   4  2020 ..
drwxr-xr-x 4 mattei mattei 4096 juil. 23  2020 2.2-LE-8-3.A
drwxrwxr-x 4 mattei mattei 4096 nov.  19  2021 3.0-LE-8-4.2
(base) mattei@pc-mattei:~$ rm -rf  .cache/guile/ccache/*

and it compiles well

no problem on the PC linux till now,for info the call of the macro in
previous message is from this instruction:

{iepi[{x + 1} 0] ← vct-prime-implicants[x]}

it assign the RHS a two dimension array (vector of vector) iepi[{x +
1} 0] with the LHS (left hand s-expression) vct-prime-implicants[x]
which the value of a one dimension vector

i will test again on the MacOS laptop , i remembered i had cleaned the
cache too ,so it is very strange... if it still fail i will activate
your debug info i never used but problem does not seems to come only
from my code.


On Tue, Aug 1, 2023 at 1:46 PM Jean Abou Samra <j...@abou-samra.fr> wrote:
>
> Le mardi 01 août 2023 à 12:46 +0200, Damien Mattei a écrit :
> > probably ,as you say , 'match' is used in other place but i 'grep-ed'
> > all the directory and can not find where, i'm only using match this 2
> > months  i even do not know it exists  before... i almost sure i never
> > use it in other place in the code,so i'm still not understand....
>
>
> I don't think we're on the same page. I'm saying that match is also
> used a lot internally in Guile's own code, so you should get a backtrace
> to find which one failed.
>
> ~/repos/guile $ rg "\(match" -g '*.scm' -g '!gc-benchmarks' | wc -l
> 1620
>
>

Reply via email to