After taking a quick look at dict.sats, I spotted the following line:

absvtype bucket(a:vt@ype)

which should be change to the following one:

absvtype bucket(a:vt@ype) = ptr // ptr takes the compiler the size of bucket

The simple reason is that the compiler needs to know the size of an 
abstract type in order to compile it to a type in C.


On Wednesday, December 1, 2021 at 12:16:34 AM UTC-5 gmhwxi wrote:

> I don't quite understand.
> Templates in ATS2 are supposed to be working with abstract types.
>
> If I could try precisely what you did on your machine, then I may be able 
> to suggest something.
>
>
>
> On Tue, Nov 30, 2021 at 8:27 PM d4v3y_5c0n3s <tmj...@gmail.com> wrote:
>
>> Update 2:
>> After investigating the prelude, I've determined that templates in ATS2 
>> just conflict with abstract types in some instances.  For this reason, it 
>> seems that in many parts of the prelude avoided the use of the "assume" 
>> keyword with template-heavy code.
>>
>> On Tuesday, November 30, 2021 at 7:08:48 PM UTC-5 d4v3y_5c0n3s wrote:
>>
>>> Update:
>>> I was able to get the code I provided above running by staloading the 
>>> dict.dats file from the dict_test.dats file using " staload _ = 
>>> "./dict.dats" ".  Now, my only problem is that if I make the "dict" & 
>>> bucket types abstract, the templates stop working.
>>>
>>> On Tuesday, November 30, 2021 at 1:39:39 PM UTC-5 d4v3y_5c0n3s wrote:
>>>
>>>> You are right, including " share/atspre_staload.hats" causes the code 
>>>> to compile.  However, I'm still having issues.  You see, the code I 
>>>> provided I had taken from a static (.sats) and dynamic (.dats) file in 
>>>> order to make it more presentable when asking for help.  Your fix only 
>>>> fixes the issue in the single-file version, and when including the 
>>>> external 
>>>> static file it doesn't work.  Do you know what might be going wrong?  I'll 
>>>> provide the (simplified) contents of each of these files below.
>>>>
>>>> *dict.sats*:
>>>> #include "share/atspre_staload.hats"
>>>>
>>>>
>>>> datavtype BUCKET (a:vt@ype) =
>>>> | bucket_empty of ()
>>>> | bucket_filled of (Strptr1, a, BUCKET(a))
>>>>
>>>> vtypedef bucket(a:vt@ype) = BUCKET(a)
>>>>
>>>> fn{a:vt@ype} bucket_item$delete ( x: a ): void
>>>>
>>>> fun{a:vt@ype} bucket_delete_recursive ( b: bucket(a) ) : void
>>>>
>>>> sortdef dsz = {s:int | s > 0}
>>>>
>>>> vtypedef dict(a:vt@ype, n:int) =
>>>> @{
>>>>     size=int n,
>>>>     buckets=arrayptr(bucket(a), n)
>>>> }
>>>>
>>>> fn{a:vt@ype} dict_new {s:dsz} ( int s ) : dict(a, s)
>>>> fn{a:t@ype} dict_delete {s:dsz} ( d: dict(a, s) ) : void
>>>> fn{a:vt@ype} dict_delete_lin {s:dsz} ( d: dict(a, s) ) : void
>>>>
>>>>
>>>> *dict.dats*:
>>>> #include "share/atspre_staload.hats"
>>>>
>>>> staload "./dict.sats"
>>>>
>>>> local
>>>> in
>>>>
>>>>
>>>> implement{a} dict_new {s} ( size ) = let
>>>>     val size_st = size_of_int(size)
>>>>     val bucket_arr = arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>     implmnt array_initize$init<bucket(a)> (i, x) = x := bucket_empty()
>>>>     val () = arrayptr_initize<bucket(a)>(bucket_arr, size_st)
>>>> in
>>>>     @{size=size, buckets=bucket_arr}:dict(a, s)
>>>> end
>>>>
>>>> implmnt{a} dict_delete ( d ) = let
>>>>   implmnt(a2:t@ype) bucket_item$delete<a2> ( x ) = ()
>>>> in
>>>>   dict_delete_lin<a>(d)
>>>> end
>>>>
>>>> implmnt{a} bucket_delete_recursive ( b ) =
>>>>     case+ b of
>>>>     | ~bucket_empty() => ()
>>>>     | ~bucket_filled(str, x, next_bucket) => let
>>>>         val () = strptr_free(str)
>>>>         val () = bucket_item$delete<a>(x)
>>>>     in
>>>>         bucket_delete_recursive<a>(next_bucket)
>>>>     end
>>>>
>>>> implmnt{a} dict_delete_lin ( d ) = let
>>>>   implmnt array_uninitize$clear<bucket(a)> (i, x) = 
>>>> bucket_delete_recursive<a>(x)
>>>> in
>>>>   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>> end
>>>> end
>>>>
>>>> *dict_test.dats*, where main is:
>>>> #include "share/atspre_staload.hats"
>>>>
>>>> staload "./dict.sats"
>>>>
>>>>
>>>> implmnt main0 () = let
>>>>   var d = dict_new<int>(13)
>>>> in
>>>>   dict_delete(d)
>>>> end
>>>>
>>>> *My output*:
>>>> $ patscc --gline -DATS_MEMALLOC_LIBC dict_test.dats
>>>>
>>>> In file included from dict_test_dats.c:15:
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats: In function 
>>>> ‘mainats_0_void’:
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:21: error: 
>>>> ‘PMVtmpltcstmat’ undeclared (first use in this function)
>>>>    58 |   var d = dict_new<int>(13)
>>>>       |                     ^~~~~~~       
>>>>
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:21: note: 
>>>> each undeclared identifier is reported only once for each function it 
>>>> appears in
>>>>    58 |   var d = dict_new<int>(13)
>>>>       |                     ^~~~~~~       
>>>>
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:39: error: 
>>>> ‘dict_new’ undeclared (first use in this function)
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       |                                       ^       
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:48: warning: 
>>>> implicit declaration of function ‘S2Eapp’ [-Wimplicit-function-declaration]
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       |                                                ^     
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:55: warning: 
>>>> implicit declaration of function ‘S2Ecst’ [-Wimplicit-function-declaration]
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       |                                                       ^     
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:62: error: 
>>>> ‘g0int_t0ype’ undeclared (first use in this function)
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       |                                                              
>>>> ^          
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:74: error: 
>>>> expected ‘)’ before ‘;’ token
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       
>>>> |                                                                          
>>>> ^
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:58:101: error: 
>>>> expected expression before ‘)’ token
>>>>    58 |   var d = dict_new<int>(13)
>>>>
>>>>       
>>>> |                                                                          
>>>>                            
>>>> ^
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove’
>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>       |                                     ^~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:60:44: error: 
>>>> ‘dict_delete’ undeclared (first use in this function); did you mean 
>>>> ‘timer_delete’?
>>>>    60 |   dict_delete(d)
>>>>
>>>>       |                                            ^          
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>       |                                       ^~~~~~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:60:82: error: 
>>>> expected ‘)’ before ‘;’ token
>>>>    60 |   dict_delete(d)
>>>>
>>>>       
>>>> |                                                                          
>>>>         
>>>> ^
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>       |                                       ^~~~~~~
>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:60:109: error: 
>>>> expected expression before ‘)’ token
>>>>    60 |   dict_delete(d)
>>>>
>>>>       
>>>> |                                                                          
>>>>                                    
>>>> ^
>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>  
>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>       |                                       ^~~~~~~
>>>> On Tuesday, November 30, 2021 at 11:28:47 AM UTC-5 gmhwxi wrote:
>>>>
>>>>> I tried your code and it compiled without any issue.
>>>>>
>>>>> Did you have the following line at the top:
>>>>>
>>>>> #include "share/atspre_staload.hats"
>>>>>
>>>>> The error messages you showed indicate that many template 
>>>>> implementations were not
>>>>> available to the compiler (patsopt).
>>>>>
>>>>> --Hongwei
>>>>>
>>>>>
>>>>> On Tue, Nov 30, 2021 at 10:52 AM d4v3y_5c0n3s <tmj...@gmail.com> 
>>>>> wrote:
>>>>>
>>>>>>     Okay, so I've been struggling with my use of templates for a 
>>>>>> while now, and I'm making this post to get some more eyes on the issue.  
>>>>>> I've been getting really frustrated, because nothing I've tried seems to 
>>>>>> work, and I have no way to understand what is going wrong whatsoever 
>>>>>> besides becoming familiar with compiler internals (which could take who 
>>>>>> knows how long to learn.)
>>>>>>
>>>>>> Here's my code:
>>>>>> datavtype BUCKET (a:vt@ype) =
>>>>>> | bucket_empty of ()
>>>>>> | bucket_filled of (Strptr1, a, BUCKET(a))
>>>>>>
>>>>>> vtypedef bucket(a:vt@ype) = BUCKET(a)
>>>>>>
>>>>>> sortdef dsz = {s:int | s > 0}
>>>>>>
>>>>>> vtypedef dict(a:vt@ype, n:int) =
>>>>>> @{
>>>>>>     size=int n,
>>>>>>     buckets=arrayptr(bucket(a), n)
>>>>>> }
>>>>>>
>>>>>> extern fn{a:vt@ype} dict_new {s:dsz} ( int s ) : dict(a, s)
>>>>>> extern fn{a:t@ype} dict_delete {s:dsz} ( d: dict(a, s) ) : void
>>>>>> extern fn{a:vt@ype} dict_delete_lin {s:dsz} ( d: dict(a, s) ) : void
>>>>>>
>>>>>> extern fun{a:vt@ype} bucket_delete_recursive ( b: bucket(a) ) : void
>>>>>> extern fn{a:vt@ype} bucket_item$delete ( x: a ): void
>>>>>>
>>>>>> implement{a} dict_new {s} ( size ) = let
>>>>>>     val size_st = size_of_int(size)
>>>>>>     val bucket_arr = arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>     implmnt array_initize$init<bucket(a)> (i, x) = x := bucket_empty()
>>>>>>     val () = arrayptr_initize<bucket(a)>(bucket_arr, size_st)
>>>>>> in
>>>>>>     @{size=size, buckets=bucket_arr}:dict(a, s)
>>>>>> end
>>>>>>
>>>>>> implmnt{a} dict_delete ( d ) = let
>>>>>>   implmnt(a2:t@ype) bucket_item$delete<a2> ( x ) = ()
>>>>>> in
>>>>>>   dict_delete_lin<a>(d)
>>>>>> end
>>>>>>
>>>>>> implmnt{a} bucket_delete_recursive ( b ) =
>>>>>>     case+ b of
>>>>>>     | ~bucket_empty() => ()
>>>>>>     | ~bucket_filled(str, x, next_bucket) => let
>>>>>>         val () = strptr_free(str)
>>>>>>         val () = bucket_item$delete<a>(x)
>>>>>>     in
>>>>>>         bucket_delete_recursive<a>(next_bucket)
>>>>>>     end
>>>>>>
>>>>>> implmnt{a} dict_delete_lin ( d ) = let
>>>>>>   implmnt array_uninitize$clear<bucket(a)> (i, x) = 
>>>>>> bucket_delete_recursive<a>(x)
>>>>>> in
>>>>>>   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>> end
>>>>>>
>>>>>> implmnt main0 () = let
>>>>>>   var d = dict_new<int>(13)
>>>>>> in
>>>>>>   dict_delete(d)
>>>>>> end
>>>>>>
>>>>>>
>>>>>> Here's the output:
>>>>>> $ patscc --gline dict_test.dats
>>>>>> In file included from dict_test_dats.c:15:
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats: In function 
>>>>>> ‘_057_home_057_tmj90_057_Goldelish_055_Engine_057_source_057_data_057_dict_test_056_dats__dict_new__0__1’:
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:21: error: 
>>>>>> ‘PMVtmpltcstmat’ undeclared (first use in this function)
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       |                     ^~~~~~~~~~~~~~
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:21: note: 
>>>>>> each undeclared identifier is reported only once for each function it 
>>>>>> appears in
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       |                     ^~~~~~~~~~~~~~
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:39: error: 
>>>>>> ‘arrayptr_make_uninitized’ undeclared (first use in this function)
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       |                                       ^~~~~~~~~~~~~~~~~~~~~~~~
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:64: 
>>>>>> warning: implicit declaration of function ‘S2Eapp’ 
>>>>>> [-Wimplicit-function-declaration]
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       
>>>>>> |                                                                ^~    
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:71: 
>>>>>> warning: implicit declaration of function ‘S2Ecst’ 
>>>>>> [-Wimplicit-function-declaration]
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       
>>>>>> |                                                                       
>>>>>> ^     
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:78: error: 
>>>>>> ‘BUCKET’ undeclared (first use in this function)
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       
>>>>>> |                                                                        
>>>>>>       
>>>>>> ^     
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:85: error: 
>>>>>> expected ‘)’ before ‘;’ token
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       
>>>>>> |                                                                        
>>>>>>              
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:24:141: 
>>>>>> error: expected expression before ‘)’ token
>>>>>>    24 |     val bucket_arr = 
>>>>>> arrayptr_make_uninitized<bucket(a)>(size_st)
>>>>>>       
>>>>>> |                                                                        
>>>>>>                                                                      
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove’
>>>>>>   276 | #define ATSINSmove(tmp, val) (tmp = val)
>>>>>>       |                                     ^~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:26:44: error: 
>>>>>> ‘arrayptr_initize’ undeclared (first use in this function)
>>>>>>    26 |     val () = arrayptr_initize<bucket(a)>(bucket_arr, size_st)
>>>>>>       |                                            ^~~~~~~~~~~~~~~~
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:26:82: error: 
>>>>>> expected ‘)’ before ‘;’ token
>>>>>>    26 |     val () = arrayptr_initize<bucket(a)>(bucket_arr, size_st)
>>>>>>       
>>>>>> |                                                                        
>>>>>>           
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:26:138: 
>>>>>> error: expected expression before ‘)’ token
>>>>>>    26 |     val () = arrayptr_initize<bucket(a)>(bucket_arr, size_st)
>>>>>>       
>>>>>> |                                                                        
>>>>>>                                                                   
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats: In function 
>>>>>> ‘_057_home_057_tmj90_057_Goldelish_055_Engine_057_source_057_data_057_dict_test_056_dats__dict_delete_lin__5__1’:
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:50:30: error: 
>>>>>> ‘PMVtmpltcstmat’ undeclared (first use in this function)
>>>>>>    50 |   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>>       |                              ^~~~~~~~~~~~~~
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:50:48: error: 
>>>>>> ‘arrayptr_freelin’ undeclared (first use in this function)
>>>>>>    50 |   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>>       |                                                ^~~            
>>>>>>  
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:50:79: error: 
>>>>>> ‘BUCKET’ undeclared (first use in this function)
>>>>>>    50 |   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>>       
>>>>>> |                                                                        
>>>>>>        
>>>>>> ^     
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:50:86: error: 
>>>>>> expected ‘)’ before ‘;’ token
>>>>>>    50 |   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>>       
>>>>>> |                                                                        
>>>>>>               
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>> /home/tmj90/Goldelish-Engine/source/data/dict_test.dats:50:142: 
>>>>>> error: expected expression before ‘)’ token
>>>>>>    50 |   arrayptr_freelin(d.buckets, size_of_int(d.size))
>>>>>>       
>>>>>> |                                                                        
>>>>>>                                                                       
>>>>>> ^
>>>>>> /usr/local/lib/ats2-postiats-0.4.2/ccomp/runtime/pats_ccomp_instrset.h:284:39:
>>>>>>  
>>>>>> note: in definition of macro ‘ATSINSmove_void’
>>>>>>   284 | #define ATSINSmove_void(tmp, command) command
>>>>>>       |                                       ^~~~~~~
>>>>>>
>>>>>> Any help is greatly appreciated, and let me know if you have any 
>>>>>> questions.  Thank you.
>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "ats-lang-users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to ats-lang-user...@googlegroups.com.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/ats-lang-users/d42e5377-0287-4311-9b39-716235b7a0c3n%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/ats-lang-users/d42e5377-0287-4311-9b39-716235b7a0c3n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ats-lang-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to ats-lang-user...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ats-lang-users/8f8bd20f-8ec3-4008-ae28-e28b013d8069n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ats-lang-users/8f8bd20f-8ec3-4008-ae28-e28b013d8069n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ats-lang-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/d4ea2619-1a22-41e6-9692-258c5afac47fn%40googlegroups.com.

Reply via email to