> (2) -> y:Integer == 1
>                                                                    Type: Void

This is a strange way to input in FriCAS, it actually defined a rule for ':'

(1) -> y:Integer == 1
                                                                   Type: Void
(2) -> y:Integer == 1
   1 old definition(s) deleted for function or rule :
                                                                   Type: Void
(3) -> :

   (3)  : (y, Integer) == 1
                                                      Type: FunctionCalled(:)


As for "BOOT::|sayFunctionDeps| is undefined" error, it can be fixed
by following patch,
after the patch, ")display properties" works:

(1) -> z == 2
                                                                   Type: Void
(2) -> )display properties z
Properties of z :
   This is an interpreter rule.
   Definition:   z () == 2


diff --git a/src/interp/i-syscmd.boot b/src/interp/i-syscmd.boot
index 24bdc499..f25e88fb 100644
--- a/src/interp/i-syscmd.boot
+++ b/src/interp/i-syscmd.boot
@@ -913,26 +913,7 @@ displayProperties(option,l) ==
           sayMSG '"   This is recursive."
         prop = 'isInterpreterFunction =>
           sayMSG '"   This is an interpreter function."
-          sayFunctionDeps v where
-            sayFunctionDeps x ==
-              if dependents := GETALIST($dependentAlist,x) then
-                null rest dependents =>
-                  sayMSG ['"   The following function or rule ",
-                    '"depends on this:",:bright first dependents]
-                sayMSG
-                  '"   The following functions or rules depend on this:"
-                msg := ["%b",'"     "]
-                for y in dependents repeat msg := ['" ",y,:msg]
-                sayMSG [:nreverse msg,"%d"]
-              if dependees := GETALIST($dependeeAlist,x) then
-                null rest dependees =>
-                  sayMSG ['"   This depends on the following function ",
-                    '"or rule:",:bright first dependees]
-                sayMSG
-                  '"   This depends on the following functions or rules:"
-                msg := ["%b",'"     "]
-                for y in dependees repeat msg := ['" ",y,:msg]
-                sayMSG [:nreverse msg,"%d"]
+          sayFunctionDeps v
         prop = 'isInterpreterRule =>
           sayMSG '"   This is an interpreter rule."
           sayFunctionDeps v
@@ -947,6 +928,26 @@ displayProperties(option,l) ==
     sayKeyedMsg("S2IZ0068",[option])
   terminateSystemCommand()

+sayFunctionDeps x ==
+  if dependents := GETALIST($dependentAlist,x) then
+    null rest dependents =>
+      sayMSG ['"   The following function or rule ",
+        '"depends on this:",:bright first dependents]
+    sayMSG
+      '"   The following functions or rules depend on this:"
+    msg := ["%b",'"     "]
+    for y in dependents repeat msg := ['" ",y,:msg]
+    sayMSG [:nreverse msg,"%d"]
+  if dependees := GETALIST($dependeeAlist,x) then
+    null rest dependees =>
+      sayMSG ['"   This depends on the following function ",
+        '"or rule:",:bright first dependees]
+    sayMSG
+      '"   This depends on the following functions or rules:"
+    msg := ["%b",'"     "]
+    for y in dependees repeat msg := ['" ",y,:msg]
+    sayMSG [:nreverse msg,"%d"]
+
 displayModemap(v,val,giveVariableIfNil) ==
   for mm in val repeat g(v,mm,giveVariableIfNil) where
     g(v,mm,giveVariableIfNil) ==


On Tue, Jul 10, 2018 at 11:51 PM, Riccardo GUIDA
<riccardo.gu...@gmail.com> wrote:
> Hi
>
> Command line interpreter: I realize that type declaration is ignored in
> delayed assignment == even for variables (see [1] for a similar behavior for
> functions)
>
> Same behavior from .input file.
>
> AND
>
> At the same occasion I get a weird system error in )display properties,
> which might interest Waldek...
>
> cheers,
> riccardo
>
> (1) -> x:Integer := 1
>
>    (1)  1
>                                                                 Type:
> Integer
> (2) -> y:Integer == 1
>                                                                    Type:
> Void
> (3) -> z == 1
>                                                                    Type:
> Void
> (4) -> [x,y,z]
>    Compiling body of rule z to compute value of type PositiveInteger
>
>    (4)  [1, y, 1]
>                                               Type:
> List(Polynomial(Integer))
> (5) -> )display properties x y z
> Properties of x :
>    Declared type or mode:   Integer
>    Value (has type Integer):  1
> Properties of y :
>    none
> Properties of z :
>    This is an interpreter rule.
>     >> System error:
>    The function BOOT::|sayFunctionDeps| is undefined.
>
>
>
> (5) -> )read test.input
> )clear completely
>     All user variables and function definitions have been cleared.
>    All )browse facility databases have been cleared.
>    Internally cached functions and constructors have been cleared.
>    )clear completely is finished.
> x2:Integer := 1
>
>    (1)  1
>                                                                 Type:
> Integer
> y2:Integer == 1
>                                                                     Type:
> Void
> z2 == 1
>                                                                     Type:
> Void
> [x2,y2,z2]
>     Compiling body of rule z2 to compute value of type PositiveInteger
>
>    (4)  [1, y2, 1]
>                                               Type:
> List(Polynomial(Integer))
> )display properties x2 y2 z2
>  Properties of x2 :
>    Declared type or mode:   Integer
>    Value (has type Integer):  1
> Properties of y2 :
>    none
> Properties of z2 :
>    This is an interpreter rule.
>     >> System error:
>    The function BOOT::|sayFunctionDeps| is undefined.
>
>
>
>
> [1]
> https://www.mail-archive.com/fricas-devel@googlegroups.com/msg12308.html
>
> --
> You received this message because you are subscribed to the Google Groups
> "FriCAS - computer algebra system" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to fricas-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to fricas-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/fricas-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to