That is correct. Mixing libgc with libc is straightfoward, and I did this a few times.
Mixing libgc with another implementation of GC (e.g., libgcj(?) for Java) is a big adventure :) I tried by could not do it successfully. On Sat, Oct 7, 2017 at 9:13 AM, Russoul <[email protected]> wrote: > So if I have ATS running with libgc, a char* allocated with libc in > embedded into ATS C code and then I cast char* to string: > $UN.cast{string}(ptr) . I still have a string that is located in not > garbage collected heap, so i have to free it explicitly, correct ? Same > with strptr but ATS compiler backs me up and ensures that I free it . > > суббота, 7 октября 2017 г., 15:58:08 UTC+3 пользователь gmhwxi написал: >> >> >> What I was trying to say is that malloc/free is external to ATS; >> it is not baked into ATS. >> >> If you use libgc for malloc/free, you get GC from libgc. If you use, >> say, libc for malloc/free, then you don't have GC. >> >> On Saturday, October 7, 2017 at 8:48:53 AM UTC-4, Russoul wrote: >>> >>> Sorry, I'm a bit lost now ) Right, ATS has no GC. But it can generate C >>> code that can be linked with libgc with D_ATS_GCATS, right ? Or I'm >>> still missing something ? >>> суббота, 7 октября 2017 г., 15:04:09 UTC+3 пользователь gmhwxi написал: >>>> >>>> >>>> ATS has no GC. >>>> >>>> You can use libgc to do malloc/free needed in the C code generated >>>> from ATS source. In that way, you get GC from libgc. >>>> >>>> You can also do $UNSAFE.castvwtp0{Strptr1}(pointer) to get a linear >>>> string. >>>> Then you need to explicitly free the linear string at some point in >>>> your program >>>> (or cast it into a non-linear string). >>>> >>>> >>>> On Sat, Oct 7, 2017 at 7:56 AM, Russoul <[email protected]> wrote: >>>> >>>>> And how to correctly convert char* to string ? Just >>>>> $UNSAFE.cast{string}(pointer) ? Will the original char* be GCed by ATS ? >>>>> >>>>> суббота, 7 октября 2017 г., 14:33:13 UTC+3 пользователь gmhwxi написал: >>>>>> >>>>>> >>>>>> Assuming that you are targeting C. I would suggest that you use >>>>>> snprintf >>>>>> (plus $UNSAFE.cast). >>>>>> >>>>>> On Saturday, October 7, 2017 at 5:40:01 AM UTC-4, Russoul wrote: >>>>>>> >>>>>>> convert primitives (int,float,...) to string (or linear string). >>>>>>> Convert native char* to string and reversed ? >>>>>>> >>>>>> -- >>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> 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/db92b4d8-58 >>>>> aa-4033-a446-d4f009c0215c%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/ats-lang-users/db92b4d8-58aa-4033-a446-d4f009c0215c%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 [email protected]. > To post to this group, send email to [email protected]. > 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/099f9297-ce38-428b-b359-3a7275e34425% > 40googlegroups.com > <https://groups.google.com/d/msgid/ats-lang-users/099f9297-ce38-428b-b359-3a7275e34425%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 [email protected]. To post to this group, send email to [email protected]. 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/CAPPSPLooa_wkcFVghQa3by0YyjSrqtEGhdDwyqndHC2BRsBHxA%40mail.gmail.com.
