You need to provide a template parameter explicitly:

fill_list<char>

Strictly speaking, template parameters are always needed.
Some heuristics are currently used to synthesize template parameters but
unfortunately they do not always succeed.


On Sun, Dec 3, 2017 at 5:43 PM, aditya siram <aditya.si...@gmail.com> wrote:

> Hi all,
> I have a simple program that fills a list with a bunch of characters and a
> driver:
> #include "share/atspre_staload.hats"
>
> fun {t:t0p} fill_list
>   {n:nat}
>   (
>     size:ssize_t n,
>     c: t
>   ): list_vt(t,n) =
>   let
>     fun loop
>       {i:nat | i <= n}
>       .<i>.
>       (
>         size : ssize_t i,
>         c: t,
>         res: list_vt(t, n-i)
>       ): list_vt(t,n) =
>       if (size = i2ssz(0))
>       then res
>       else loop(pred size, c, list_vt_cons(c,res))
>   in
>     loop(size,c,list_vt_nil())
>   end
>
> implement main0(argc, argv) =
>   let
>     val x = fill_list(i2ssz(10), 'x')
>   in
>     begin
>       println! (" testing: ", x);
>       list_vt_free(x)
>     end
>   end
>
> Running this should print 10 'x's instead I get:
> > patscc -g -D_GNU_SOURCE -DATS_MEMALLOC_LIBC -g -I/home/deech/Downloads/
> ATS/ATS2/contrib -o xs xs.dats -latslib
>
> In file included from xs_dats.c:15:0:
> xs_dats.c: In function ‘ATSLIB_056_prelude__fprint_val__31__1’:
> xs_dats.c:2292:22: error: ‘PMVtmpltcstmat’ undeclared (first use in this
> function)
> ATSINSmove(tmp60__1, PMVtmpltcstmat[0](tostrptr_val<[1]>)(arg1)) ;
> [1]: S2EVar(5259)
> ^
> /home/deech/Downloads/ATS/ATS2/ccomp/runtime/pats_ccomp_instrset.h:276:37:
> note: in definition of macro ‘ATSINSmove’
> #define ATSINSmove(tmp, val) (tmp = val)
> ^~~
> xs_dats.c:2292:22: note: each undeclared identifier is reported only once
> for each function it appears in
> ATSINSmove(tmp60__1, PMVtmpltcstmat[0](tostrptr_val<[1]>)(arg1)) ;
> [1]: S2EVar(5259)
>
>
> Any idea what I'm doing wrong?
> Thanks!
> -deech
>
> --
> 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 post to this group, send email to ats-lang-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/ats-lang-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ats-lang-users/f53efa09-3260-46b2-b915-e7859d167d88%
> 40googlegroups.com
> <https://groups.google.com/d/msgid/ats-lang-users/f53efa09-3260-46b2-b915-e7859d167d88%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 post to this group, send email to ats-lang-users@googlegroups.com.
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/CAPPSPLo8baWObPCP7%3DXxRoemuNkRf5MxguXkACSoN3be2We61g%40mail.gmail.com.

Reply via email to