[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unable to simply compile gprolog
From: |
Hugo Costelha |
Subject: |
Re: Unable to simply compile gprolog |
Date: |
Sat, 8 May 2004 21:32:33 +0100 |
User-agent: |
KMail/1.6.2 |
My Linux knowledge is still very limited. Can you please tell me how can I
apply the patch. Have tried, but it keeps saying the it can find the file to
apply the patch.
Thanks.
Hugo Costelha
On Friday 07 May 2004 19:37, Salvador Abreu wrote:
> Apparently both gcc 3.3.3 and gcc 3.4.0 (but not 3.3.2) are a bit
> stricter on declarations; they assume that __attribute(...)__ must occur
> in the function definition as well as in the forward declarations.
>
> Apply the attached patch and it should work (tested on Debian sid w/ gcc
> 3.4.0). Patch relative to today's CVS.
>
> This will make it into Debian shortly as gprolog_1.2.18-10.
>
> (you may safely ignore the "watermark" patch)
>
> Regards,
> --
> ../salvador
>
> --- ../gprolog-cvs/src/src/./BipsPl/arith_inl_c.c 2004-04-19
> 12:31:15.000000000 +0100 +++ src/src/./BipsPl/arith_inl_c.c 2004-05-07
> 19:18:42.000000000 +0100 @@ -172,7 +172,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Math_Load_Value(WamWord start_word, WamWord *word_adr)
> {
> WamWord word, tag_mask;
> @@ -193,7 +193,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Math_Fast_Load_Value(WamWord start_word, WamWord *word_adr)
> {
> WamWord word, tag_mask;
> @@ -406,28 +406,28 @@
>
> /* fast-math version */
>
> -WamWord
> +WamWord FC
> Fct_Fast_Neg(WamWord x)
> {
> long vx = UnTag_INT(x);
> return Tag_INT(-vx);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Inc(WamWord x)
> {
> long vx = UnTag_INT(x);
> return Tag_INT(vx + 1);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Dec(WamWord x)
> {
> long vx = UnTag_INT(x);
> return Tag_INT(vx - 1);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Add(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -435,7 +435,7 @@
> return Tag_INT(vx + vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Sub(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -443,7 +443,7 @@
> return Tag_INT(vx - vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Mul(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -451,7 +451,7 @@
> return Tag_INT(vx * vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Div(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -463,7 +463,7 @@
> return Tag_INT(vx / vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Rem(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -475,7 +475,7 @@
> return Tag_INT(vx % vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Mod(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -493,32 +493,32 @@
> return Tag_INT(m);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_And(WamWord x, WamWord y)
> {
> return x & y;
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Or(WamWord x, WamWord y)
> {
> return x | y;
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Xor(WamWord x, WamWord y)
> {
> return (x ^ y) | TAG_INT_MASK;
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Not(WamWord x)
> {
> long vx = UnTag_INT(x);
> return Tag_INT(~vx);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Shl(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -526,7 +526,7 @@
> return Tag_INT(vx << vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Shr(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -534,14 +534,14 @@
> return Tag_INT(vx >> vy);
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Abs(WamWord x)
> {
> long vx = UnTag_INT(x);
> return (vx < 0) ? Tag_INT(-vx) : x;
> }
>
> -WamWord
> +WamWord FC
> Fct_Fast_Sign(WamWord x)
> {
> long vx = UnTag_INT(x);
> @@ -552,115 +552,115 @@
>
> /* standard version */
>
> -WamWord
> +WamWord FC
> Fct_Neg(WamWord x)
> {
> IFtoIF(x, C_Neg, Fct_Fast_Neg);
> }
>
> -WamWord
> +WamWord FC
> Fct_Inc(WamWord x)
> {
> IFtoIF(x, DInc, Fct_Fast_Inc);
> }
>
> -WamWord
> +WamWord FC
> Fct_Dec(WamWord x)
> {
> IFtoIF(x, DDec, Fct_Fast_Dec);
> }
>
> -WamWord
> +WamWord FC
> Fct_Add(WamWord x, WamWord y)
> {
> IFxIFtoIF(x, y, C_Add, Fct_Fast_Add);
> }
>
> -WamWord
> +WamWord FC
> Fct_Sub(WamWord x, WamWord y)
> {
> IFxIFtoIF(x, y, C_Sub, Fct_Fast_Sub);
> }
>
> -WamWord
> +WamWord FC
> Fct_Mul(WamWord x, WamWord y)
> {
> IFxIFtoIF(x, y, C_Mul, Fct_Fast_Mul);
> }
>
> -WamWord
> +WamWord FC
> Fct_Div(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Div);
> }
>
> -WamWord
> +WamWord FC
> Fct_Float_Div(WamWord x, WamWord y)
> {
> IFxIFtoF(x, y, C_Div);
> }
>
> -WamWord
> +WamWord FC
> Fct_Rem(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Rem);
> }
>
> -WamWord
> +WamWord FC
> Fct_Mod(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Mod);
> }
>
> -WamWord
> +WamWord FC
> Fct_And(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_And);
> }
>
> -WamWord
> +WamWord FC
> Fct_Or(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Or);
> }
>
> -WamWord
> +WamWord FC
> Fct_Xor(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Xor);
> }
>
> -WamWord
> +WamWord FC
> Fct_Not(WamWord x)
> {
> ItoI(x, Fct_Fast_Not);
> }
>
> -WamWord
> +WamWord FC
> Fct_Shl(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Shl);
> }
>
> -WamWord
> +WamWord FC
> Fct_Shr(WamWord x, WamWord y)
> {
> IxItoI(x, y, Fct_Fast_Shr);
> }
>
> -WamWord
> +WamWord FC
> Fct_Abs(WamWord x)
> {
> IFtoIF(x, fabs, Fct_Fast_Abs);
> }
>
> -WamWord
> +WamWord FC
> Fct_Sign(WamWord x)
> {
> IFtoIF(x, DSign, Fct_Fast_Sign);
> }
>
> -WamWord
> +WamWord FC
> Fct_Min(WamWord x, WamWord y)
> {
> double dx = To_Double(x);
> @@ -675,7 +675,7 @@
> return Tag_Is_INT(x) ? x : y;
> }
>
> -WamWord
> +WamWord FC
> Fct_Max(WamWord x, WamWord y)
> {
> double dx = To_Double(x);
> @@ -690,103 +690,103 @@
> return Tag_Is_INT(x) ? x : y;
> }
>
> -WamWord
> +WamWord FC
> Fct_Pow(WamWord x, WamWord y)
> {
> IFxIFtoF(x, y, pow);
> }
>
> -WamWord
> +WamWord FC
> Fct_Sqrt(WamWord x)
> {
> IFtoF(x, sqrt);
> }
>
> -WamWord
> +WamWord FC
> Fct_Atan(WamWord x)
> {
> IFtoF(x, atan);
> }
>
> -WamWord
> +WamWord FC
> Fct_Cos(WamWord x)
> {
> IFtoF(x, cos);
> }
>
> -WamWord
> +WamWord FC
> Fct_Acos(WamWord x)
> {
> IFtoF(x, acos);
> }
>
> -WamWord
> +WamWord FC
> Fct_Sin(WamWord x)
> {
> IFtoF(x, sin);
> }
>
> -WamWord
> +WamWord FC
> Fct_Asin(WamWord x)
> {
> IFtoF(x, asin);
> }
>
> -WamWord
> +WamWord FC
> Fct_Exp(WamWord x)
> {
> IFtoF(x, exp);
> }
>
> -WamWord
> +WamWord FC
> Fct_Log(WamWord x)
> {
> IFtoF(x, log);
> }
>
> -WamWord
> +WamWord FC
> Fct_Float(WamWord x)
> {
> IFtoF(x, Identity);
> }
>
> -WamWord
> +WamWord FC
> Fct_Ceiling(WamWord x)
> {
> FtoI(x, ceil);
> }
>
> -WamWord
> +WamWord FC
> Fct_Floor(WamWord x)
> {
> FtoI(x, floor);
> }
>
> -WamWord
> +WamWord FC
> Fct_Round(WamWord x)
> {
> FtoI(x, rint);
> }
>
> -WamWord
> +WamWord FC
> Fct_Truncate(WamWord x)
> {
> FtoI(x, Identity);
> }
>
> -WamWord
> +WamWord FC
> Fct_Float_Fract_Part(WamWord x)
> {
> FtoF(x, DFract);
> }
>
> -WamWord
> +WamWord FC
> Fct_Float_Integ_Part(WamWord x)
> {
> FtoF(x, DInteg);
> }
>
> -WamWord
> +WamWord FC
> Fct_Identity(WamWord x)
> {
> return x;
> @@ -803,19 +803,19 @@
>
> /* fast-math version */
>
> -Bool
> +Bool FC
> Blt_Fast_Eq(WamWord x, WamWord y)
> {
> return x == y;
> }
>
> -Bool
> +Bool FC
> Blt_Fast_Neq(WamWord x, WamWord y)
> {
> return x != y;
> }
>
> -Bool
> +Bool FC
> Blt_Fast_Lt(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -823,7 +823,7 @@
> return vx < vy;
> }
>
> -Bool
> +Bool FC
> Blt_Fast_Lte(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -831,7 +831,7 @@
> return vx <= vy;
> }
>
> -Bool
> +Bool FC
> Blt_Fast_Gt(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -839,7 +839,7 @@
> return vx > vy;
> }
>
> -Bool
> +Bool FC
> Blt_Fast_Gte(WamWord x, WamWord y)
> {
> long vx = UnTag_INT(x);
> @@ -850,32 +850,32 @@
>
> /* standard version */
>
> -Bool
> +Bool FC
> Blt_Eq(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, ==, Blt_Fast_Eq);
> }
> -Bool
> +Bool FC
> Blt_Neq(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, !=, Blt_Fast_Neq);
> }
> -Bool
> +Bool FC
> Blt_Lt(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, <, Blt_Fast_Lt);
> }
> -Bool
> +Bool FC
> Blt_Lte(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, <=, Blt_Fast_Lte);
> }
> -Bool
> +Bool FC
> Blt_Gt(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, >, Blt_Fast_Gt);
> }
> -Bool
> +Bool FC
> Blt_Gte(WamWord x, WamWord y)
> {
> Cmp_IFxIF(x, y, >=, Blt_Fast_Gte);
> --- ../gprolog-cvs/src/src/./BipsPl/error_supp.c 2004-04-19
> 12:31:16.000000000 +0100 +++ src/src/./BipsPl/error_supp.c 2004-05-07
> 19:16:20.000000000 +0100 @@ -278,7 +278,7 @@
> * SET_C_BIP_NAME
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Set_C_Bip_Name(char *func_str, int arity)
> {
> c_bip_func_str = func_str;
> --- ../gprolog-cvs/src/src/./BipsPl/g_var_inl_c.c 2004-04-19
> 12:31:17.000000000 +0100 +++ src/src/./BipsPl/g_var_inl_c.c 2004-05-07
> 19:20:36.000000000 +0100 @@ -58,7 +58,7 @@
>
> typedef struct /* Global variable element */
> { /* ------------------------------ */
> - int size; /* <0:-array dim, 0:link, >0:copy */
> + long size; /* <0:-array dim, 0:link, >0:copy */
> WamWord val; /* ptr to GVarElt or term or adr */
> PGUndo undo; /* ptr to 1st undo for this elem */
> }
> @@ -179,7 +179,7 @@
> * BLT_G_ASSIGN
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Assign(WamWord x, WamWord y)
> {
> Set_C_Bip_Name("g_assign", 2);
> @@ -194,7 +194,7 @@
> * BLT_G_ASSIGNB
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Assignb(WamWord x, WamWord y)
> {
> Set_C_Bip_Name("g_assignb", 2);
> @@ -209,7 +209,7 @@
> * BLT_G_LINK
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Link(WamWord x, WamWord y)
> {
> Set_C_Bip_Name("g_link", 2);
> @@ -224,7 +224,7 @@
> * BLT_G_READ
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Read(WamWord x, WamWord y)
> {
> Bool res;
> @@ -242,7 +242,7 @@
> * BLT_G_ARRAY_SIZE
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Array_Size(WamWord x, WamWord y)
> {
> Bool res;
> @@ -260,7 +260,7 @@
> * BLT_G_INC
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Inc(WamWord x)
> {
> Set_C_Bip_Name("g_inc", 1);
> @@ -275,7 +275,7 @@
> * BLT_G_INCO
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Inco(WamWord x, WamWord y)
> {
> Bool res;
> @@ -293,7 +293,7 @@
> * BLT_G_INC_2
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Inc_2(WamWord x, WamWord y)
> {
> Bool res;
> @@ -311,7 +311,7 @@
> * BLT_G_INC_3
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Inc_3(WamWord x, WamWord y, WamWord z)
> {
> Bool res;
> @@ -329,7 +329,7 @@
> * BLT_G_DEC
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Dec(WamWord x)
> {
> Set_C_Bip_Name("g_dec", 1);
> @@ -344,7 +344,7 @@
> * BLT_G_DECO
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Deco(WamWord x, WamWord y)
> {
> Bool res;
> @@ -362,7 +362,7 @@
> * BLT_G_DEC_2
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Dec_2(WamWord x, WamWord y)
> {
> Bool res;
> @@ -380,7 +380,7 @@
> * BLT_G_DEC_3
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Dec_3(WamWord x, WamWord y, WamWord z)
> {
> Bool res;
> @@ -398,7 +398,7 @@
> * BLT_G_SET_BIT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Set_Bit(WamWord x, WamWord y)
> {
> Set_C_Bip_Name("g_set_bit", 2);
> @@ -413,7 +413,7 @@
> * BLT_G_RESET_BIT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Blt_G_Reset_Bit(WamWord x, WamWord y)
> {
> Set_C_Bip_Name("g_reset_bit", 2);
> @@ -428,7 +428,7 @@
> * BLT_G_TEST_SET_BIT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Test_Set_Bit(WamWord x, WamWord y)
> {
> Bool res;
> @@ -446,7 +446,7 @@
> * BLT_G_TEST_RESET_BIT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_G_Test_Reset_Bit(WamWord x, WamWord y)
> {
> Bool res;
> --- ../gprolog-cvs/src/src/./BipsPl/term_inl_c.c 2004-04-19
> 12:31:18.000000000 +0100 +++ src/src/./BipsPl/term_inl_c.c 2004-05-07
> 19:19:39.000000000 +0100 @@ -56,7 +56,7 @@
> * BLT_TERM_EQ
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Eq(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) == 0;
> @@ -69,7 +69,7 @@
> * BLT_TERM_NEQ
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Neq(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) != 0;
> @@ -82,7 +82,7 @@
> * BLT_TERM_LT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Lt(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) < 0;
> @@ -95,7 +95,7 @@
> * BLT_TERM_LTE
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Lte(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) <= 0;
> @@ -108,7 +108,7 @@
> * BLT_TERM_GT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Gt(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) > 0;
> @@ -121,7 +121,7 @@
> * BLT_TERM_GTE
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Term_Gte(WamWord x, WamWord y)
> {
> return Term_Compare(x, y) >= 0;
> @@ -134,7 +134,7 @@
> * BLT_COMPARE
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Compare(WamWord cmp_word, WamWord x, WamWord y)
> {
> int cmp;
> @@ -160,7 +160,7 @@
> * BLT_ARG
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Arg(WamWord arg_no_word, WamWord term_word, WamWord sub_term_word)
> {
> WamWord *arg_adr;
> @@ -185,7 +185,7 @@
> * BLT_FUNCTOR
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Functor(WamWord term_word, WamWord functor_word, WamWord arity_word)
> {
> WamWord word, tag_mask;
> @@ -266,7 +266,7 @@
> * BLT_UNIV
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Univ(WamWord term_word, WamWord list_word)
> {
> WamWord word, tag_mask;
> @@ -428,7 +428,7 @@
> * COPY_TERM_2
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Copy_Term_2(WamWord u_word, WamWord v_word)
> {
> WamWord word;
> @@ -454,7 +454,7 @@
> * SETARG_4
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Setarg_4(WamWord arg_no_word, WamWord term_word, WamWord new_value_word,
> WamWord undo_word)
> {
> @@ -490,7 +490,7 @@
> * TERM_REF_2
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Term_Ref_2(WamWord term_word, WamWord ref_word)
> {
> WamWord word, tag_mask;
> --- ../gprolog-cvs/src/src/./BipsPl/type_inl_c.c 2004-04-19
> 12:31:19.000000000 +0100 +++ src/src/./BipsPl/type_inl_c.c 2004-05-07
> 19:19:11.000000000 +0100 @@ -87,79 +87,79 @@
>
>
>
> -Bool
> +Bool FC
> Blt_Var(WamWord x)
> {
> Type_Test(Tag_Is_Var, x);
> }
>
> -Bool
> +Bool FC
> Blt_Non_Var(WamWord x)
> {
> Type_Test(Tag_Is_Nonvar, x);
> }
>
> -Bool
> +Bool FC
> Blt_Atom(WamWord x)
> {
> Type_Test(Tag_Is_Atom, x);
> }
>
> -Bool
> +Bool FC
> Blt_Integer(WamWord x)
> {
> Type_Test(Tag_Is_Integer, x);
> }
>
> -Bool
> +Bool FC
> Blt_Float(WamWord x)
> {
> Type_Test(Tag_Is_Float, x);
> }
>
> -Bool
> +Bool FC
> Blt_Number(WamWord x)
> {
> Type_Test(Tag_Is_Number, x);
> }
>
> -Bool
> +Bool FC
> Blt_Atomic(WamWord x)
> {
> Type_Test(Tag_Is_Atomic, x);
> }
>
> -Bool
> +Bool FC
> Blt_Compound(WamWord x)
> {
> Type_Test(Tag_Is_Compound, x);
> }
>
> -Bool
> +Bool FC
> Blt_Callable(WamWord x)
> {
> Type_Test(Tag_Is_Callable, x);
> }
>
> -Bool
> +Bool FC
> Blt_Fd_Var(WamWord x)
> {
> Type_Test(Tag_Is_Fd_Var, x);
> }
>
> -Bool
> +Bool FC
> Blt_Non_Fd_Var(WamWord x)
> {
> Type_Test(Tag_Is_Non_Fd_Var, x);
> }
>
> -Bool
> +Bool FC
> Blt_Generic_Var(WamWord x)
> {
> Type_Test(Tag_Is_Generic_Var, x);
> }
>
> -Bool
> +Bool FC
> Blt_Non_Generic_Var(WamWord x)
> {
> Type_Test(Tag_Is_Non_Generic_Var, x);
> @@ -172,7 +172,7 @@
> * BLT_LIST
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_List(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -198,7 +198,7 @@
> * BLT_PARTIAL_LIST
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_Partial_List(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -224,7 +224,7 @@
> * BLT_LIST_OR_PARTIAL_LIST
> * *
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Blt_List_Or_Partial_List(WamWord start_word)
> {
> WamWord word, tag_mask;
> --- ../gprolog-cvs/src/src/./EnginePl/atom.c 2004-04-19 12:31:21.000000000
> +0100 +++ src/src/./EnginePl/atom.c 2004-05-07 19:15:32.000000000 +0100
> @@ -225,7 +225,7 @@
> * CREATE_ALLOCATE_ATOM
> * *
> *
> *-------------------------------------------------------------------------*
>/ -int
> +int FC
> Create_Allocate_Atom(char *name)
> {
> AtomInf *patom;
> @@ -252,7 +252,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -int
> +int FC
> Create_Atom(char *name)
> {
> AtomInf *patom;
> @@ -346,7 +346,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Create_Atom_Tagged(char *name)
> {
> return Tag_ATM(Create_Atom(name));
> @@ -360,7 +360,7 @@
> *
> * * return the atom key or -1 if not exist.
> *
> *-------------------------------------------------------------------------*
>/ -int
> +int FC
> Find_Atom(char *name)
> {
> AtomInf *patom;
> @@ -450,7 +450,7 @@
> * Find a new atom (gensym) beginning by a given prefix.
> * * hash<0 for any input or the index of the free atom to produce.
> *
> *-------------------------------------------------------------------------*
>/ -int
> +int FC
> Gen_New_Atom(char *prefix, int hash)
> {
> AtomInf *patom;
> @@ -532,7 +532,7 @@
> *
> * * returns the atom next after 'last_atom' (-1 to start) or -1 at the end
> *
> *-------------------------------------------------------------------------*
>/ -int
> +int FC
> Find_Next_Atom(int last_atom)
> {
> while (++last_atom < MAX_ATOM)
> --- ../gprolog-cvs/src/src/./EnginePl/pred.c 2004-04-19 12:31:22.000000000
> +0100 +++ src/src/./EnginePl/pred.c 2004-05-07 19:16:01.000000000 +0100
> @@ -73,7 +73,7 @@
> * Called by compiled prolog code, by dynamic predicate support and by
> * * byte-code support.
> *
> *-------------------------------------------------------------------------*
>/ -PredInf *
> +PredInf * FC
> Create_Pred(int func, int arity, int pl_file, int pl_line, int prop,
> long *codep)
> {
> @@ -107,7 +107,7 @@
> * LOOKUP_PRED
> * *
> *
> *-------------------------------------------------------------------------*
>/ -PredInf *
> +PredInf * FC
> Lookup_Pred(int func, int arity)
> {
> long key = Functor_Arity(func, arity);
> @@ -122,7 +122,7 @@
> * DELETE_PRED
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Delete_Pred(int func, int arity)
> {
> long key = Functor_Arity(func, arity);
> --- ../gprolog-cvs/src/src/./EnginePl/unify.c 2004-04-19 12:31:22.000000000
> +0100 +++ src/src/./EnginePl/unify.c 2004-05-07 19:13:07.000000000 +0100 @@
> -33,7 +33,7 @@
> * - to define the Unify function (classical unification).
> * * - to define the Unify_Occurs_Check function (+ occurs check).
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> UNIFY_FCT_NAME(WamWord start_u_word, WamWord start_v_word)
> {
> WamWord u_word, u_tag_mask;
> --- ../gprolog-cvs/src/src/./EnginePl/wam_inst.c 2004-04-19
> 12:31:22.000000000 +0100 +++ src/src/./EnginePl/wam_inst.c 2004-05-07
> 19:12:07.000000000 +0100 @@ -68,7 +68,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Create_Functor_Arity_Tagged(char *func_str, int arity)
> {
> int func = Create_Atom(func_str);
> @@ -85,7 +85,7 @@
> * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/
>
> -SwtTbl
> +SwtTbl FC
> Create_Swt_Table(int size)
> {
> SwtTbl t;
> @@ -105,7 +105,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Create_Swt_Atm_Element(SwtTbl t, int size, int atom, CodePtr codep)
> {
> SwtInf *swt = Locate_Swt_Element(t, size, atom);
> @@ -122,7 +122,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Create_Swt_Stc_Element(SwtTbl t, int size, int func, int arity,
> CodePtr codep)
> {
> @@ -176,7 +176,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Atom_Tagged(WamWord w, WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -199,7 +199,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Atom(int atom, WamWord start_word)
> {
> return Get_Atom_Tagged(Tag_ATM(atom), start_word);
> @@ -213,7 +213,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Integer_Tagged(WamWord w, WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -241,7 +241,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Integer(long n, WamWord start_word)
> {
> return Get_Integer_Tagged(Tag_INT(n), start_word);
> @@ -255,7 +255,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Float(double n, WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -279,7 +279,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Nil(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -302,7 +302,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_List(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -332,7 +332,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Structure_Tagged(WamWord w, WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -371,7 +371,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Get_Structure(int func, int arity, WamWord start_word)
> {
> return Get_Structure_Tagged(Functor_Arity(func, arity), start_word);
> @@ -385,7 +385,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_X_Variable(void)
> {
> WamWord res_word;
> @@ -406,7 +406,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Y_Variable(WamWord *y_adr)
> {
> return *y_adr = Make_Self_Ref(y_adr);
> @@ -420,7 +420,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Unsafe_Value(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -448,7 +448,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Atom_Tagged(WamWord w)
> {
> return w;
> @@ -462,7 +462,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Atom(int atom)
> {
> return Tag_ATM(atom);
> @@ -476,7 +476,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Integer_Tagged(WamWord w)
> {
> return w;
> @@ -490,7 +490,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Integer(long n)
> {
> return Tag_INT(n);
> @@ -504,7 +504,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Float(double n)
> {
> WamWord res_word;
> @@ -522,7 +522,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Nil(void)
> {
> return NIL_WORD;
> @@ -536,7 +536,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_List(void)
> {
> S = WRITE_MODE;
> @@ -551,7 +551,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Structure_Tagged(WamWord w)
> {
> WamWord *cur_H = H;
> @@ -569,7 +569,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Put_Structure(int func, int arity)
> {
> return Put_Structure_Tagged(Functor_Arity(func, arity));
> @@ -583,7 +583,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Unify_Variable(void)
> {
> WamWord tag_mask, word;
> @@ -614,7 +614,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Unify_Void(int n)
> {
> WamWord *cur_H;
> @@ -643,7 +643,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Value(WamWord start_word)
> {
> if (S != WRITE_MODE)
> @@ -661,7 +661,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Local_Value(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -691,7 +691,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Atom_Tagged(WamWord w)
> {
> WamWord word, tag_mask;
> @@ -722,7 +722,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Atom(int atom)
> {
> return Unify_Atom_Tagged(Tag_ATM(atom));
> @@ -736,7 +736,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Integer_Tagged(WamWord w)
> {
> WamWord word, tag_mask;
> @@ -771,7 +771,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Integer(long n)
> {
> return Unify_Integer_Tagged(Tag_INT(n));
> @@ -785,7 +785,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Nil(void)
> {
> WamWord word, tag_mask;
> @@ -815,7 +815,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_List(void)
> {
> WamWord *cur_H;
> @@ -838,7 +838,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Structure_Tagged(WamWord w)
> {
> WamWord *cur_H;
> @@ -862,7 +862,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -Bool
> +Bool FC
> Unify_Structure(int func, int arity)
> {
> return Unify_Structure_Tagged(Functor_Arity(func, arity));
> @@ -875,7 +875,7 @@
> * GLOBALIZE_IF_IN_LOCAL
> * *
> *
> *-------------------------------------------------------------------------*
>/ -WamWord
> +WamWord FC
> Globalize_If_In_Local(WamWord start_word)
> {
> WamWord word, tag_mask;
> @@ -900,7 +900,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Allocate(int n)
> {
> WamWord *old_E = E;
> @@ -933,7 +933,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Deallocate(void)
> {
> WamWord *cur_E = E;
> @@ -951,7 +951,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -CodePtr
> +CodePtr FC
> Switch_On_Term(CodePtr c_var, CodePtr c_atm, CodePtr c_int,
> CodePtr c_lst, CodePtr c_stc)
> {
> @@ -978,7 +978,7 @@
>
>
>
> -CodePtr
> +CodePtr FC
> Switch_On_Term_Var_Atm(CodePtr c_var, CodePtr c_atm)
> {
> WamWord word, tag_mask;
> @@ -1002,7 +1002,7 @@
>
>
>
> -CodePtr
> +CodePtr FC
> Switch_On_Term_Var_Stc(CodePtr c_var, CodePtr c_stc)
> {
> WamWord word, tag_mask;
> @@ -1026,7 +1026,7 @@
>
>
>
> -CodePtr
> +CodePtr FC
> Switch_On_Term_Var_Atm_Lst(CodePtr c_var, CodePtr c_atm, CodePtr c_lst)
> {
> WamWord word, tag_mask;
> @@ -1053,7 +1053,7 @@
>
>
>
> -CodePtr
> +CodePtr FC
> Switch_On_Term_Var_Atm_Stc(CodePtr c_var, CodePtr c_atm, CodePtr c_stc)
> {
> WamWord word, tag_mask;
> @@ -1089,7 +1089,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -CodePtr
> +CodePtr FC
> Switch_On_Atom(SwtTbl t, int size)
> {
> SwtInf *swt;
> @@ -1111,7 +1111,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -long
> +long FC
> Switch_On_Integer(void)
> {
> return UnTag_INT(A(0));
> @@ -1129,7 +1129,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -CodePtr
> +CodePtr FC
> Switch_On_Structure(SwtTbl t, int size)
> {
> SwtInf *swt;
> @@ -1142,12 +1142,55 @@
>
>
>
> +#ifdef USE_WATERMARK
> +
> +/*------------------------------------------------------------------------
>-*/ +/* CREATE_WATER_MARK
> */ +/*
> */ +/* Request warning if backtracking is not complete.
> */
> +/*------------------------------------------------------------------------
>-*/ +
> +int wmark_count = 0; /* number of active watermarks */
> +Watermark wmark[MAXWMARK]; /* The stack of watermarks */
> +WatermarkP wmp = wmark-1; /* Top of watermark stack */
> +
> +void Create_Water_Mark (void (*fun)(), void *par)
> +{
> + if (++wmark_count >= MAXWMARK) {
> + Fatal_Error ("Watermark stack size (%d) exceeded! - aborting",
> MAXWMARK); + }
> + ++wmp;
> + wmp->Bvalue = B;
> + wmp->destructor = fun;
> + wmp->parameter = par;
> +
> +#ifdef DEBUG
> + fprintf(stderr,"Water Mark at: %d Position: %d %dB
> %dBB(B)\n",B,Wqty,WMark[Wqty],BB(B)); +#endif
> +}
> +
> +void Update_Water_Mark (void (*fun)(), void *par)
> +{
> + if (wmark_count > 0) {
> + wmp->destructor = fun;
> + wmp->parameter = par;
> + }
> + else {
> + fprintf(stderr, "Update_Water_Mark called with empty stack!\n");
> + }
> +#ifdef DEBUG
> + fprintf(stderr,"Water Mark at: %d Position: %d %dB
> %dBB(B)\n",B,Wqty,WMark[Wqty],BB(B)); +#endif
> +}
> +#endif /* USE_WATERMARK */
> +
> +
>
> /*-------------------------------------------------------------------------
>* * LOAD_CUT_LEVEL
> * *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Load_Cut_Level(WamWord *word_adr)
> {
> *word_adr = From_B_To_WamWord(B);
> @@ -1161,7 +1204,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Cut(WamWord b_word)
> {
> Assign_B(From_WamWord_To_B(b_word));
> @@ -1178,7 +1221,7 @@
> * GLOBAL_PUSH_FLOAT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Global_Push_Float(double n)
> {
> DblInt di;
> @@ -1198,7 +1241,7 @@
> * OBTAIN_FLOAT
> * *
> *
> *-------------------------------------------------------------------------*
>/ -double
> +double FC
> Obtain_Float(WamWord *adr)
> {
> DblInt di;
> @@ -1270,7 +1313,7 @@
>
>
>
> -void
> +void FC
> Create_Choice_Point(CodePtr codep_alt, int arity)
> {
> int i;
> @@ -1283,7 +1326,7 @@
>
>
>
> -void
> +void FC
> Create_Choice_Point1(CodePtr codep_alt)
> {
> CREATE_CHOICE_COMMON_PART(1);
> @@ -1294,7 +1337,7 @@
>
>
>
> -void
> +void FC
> Create_Choice_Point2(CodePtr codep_alt)
> {
> CREATE_CHOICE_COMMON_PART(2);
> @@ -1306,7 +1349,7 @@
>
>
>
> -void
> +void FC
> Create_Choice_Point3(CodePtr codep_alt)
> {
> CREATE_CHOICE_COMMON_PART(3);
> @@ -1319,7 +1362,7 @@
>
>
>
> -void
> +void FC
> Create_Choice_Point4(CodePtr codep_alt)
> {
> CREATE_CHOICE_COMMON_PART(4);
> @@ -1339,7 +1382,7 @@
> * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/
>
> -void
> +void FC
> Update_Choice_Point(CodePtr codep_alt, int arity)
> {
> int i;
> @@ -1352,7 +1395,7 @@
>
>
>
> -void
> +void FC
> Update_Choice_Point1(CodePtr codep_alt)
> {
> UPDATE_CHOICE_COMMON_PART;
> @@ -1363,7 +1406,7 @@
>
>
>
> -void
> +void FC
> Update_Choice_Point2(CodePtr codep_alt)
> {
> UPDATE_CHOICE_COMMON_PART;
> @@ -1375,7 +1418,7 @@
>
>
>
> -void
> +void FC
> Update_Choice_Point3(CodePtr codep_alt)
> {
> UPDATE_CHOICE_COMMON_PART;
> @@ -1388,7 +1431,7 @@
>
>
>
> -void
> +void FC
> Update_Choice_Point4(CodePtr codep_alt)
> {
> UPDATE_CHOICE_COMMON_PART;
> @@ -1407,7 +1450,7 @@
> *
> * * Called by compiled prolog code.
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Delete_Choice_Point(int arity)
> {
> int i;
> @@ -1420,7 +1463,7 @@
>
>
>
> -void
> +void FC
> Delete_Choice_Point1(void)
> {
> DELETE_CHOICE_COMMON_PART;
> @@ -1431,7 +1474,7 @@
>
>
>
> -void
> +void FC
> Delete_Choice_Point2(void)
> {
> DELETE_CHOICE_COMMON_PART;
> @@ -1443,7 +1486,7 @@
>
>
>
> -void
> +void FC
> Delete_Choice_Point3(void)
> {
> DELETE_CHOICE_COMMON_PART;
> @@ -1456,7 +1499,7 @@
>
>
>
> -void
> +void FC
> Delete_Choice_Point4(void)
> {
> DELETE_CHOICE_COMMON_PART;
> @@ -1474,7 +1517,7 @@
> * UNTRAIL
> * *
> *
> *-------------------------------------------------------------------------*
>/ -void
> +void FC
> Untrail(WamWord *low_adr)
> {
> WamWord word;