[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: when GC is permitted

This page is part of the web mail archives of SRFI 50 from before July 7th, 2015. The new archives for SRFI 50 are here. Eventually, the entire history will be moved there, including any new messages.



On Thu 15 Jan 2004 00:16, Tom Lord <lord@xxxxxxx> writes:

>     > - most of scsh
>     > - bindings for ODBC (also for scsh)
>     > - bindings for NIS and LDAP (also for scsh)
>
> I'd appreciate it if you could say more about this: quantities of
> code, filenames and distributions containing them, and what you think
> the effort of migration from native-scsh to draft-ffi would involve.

The scsh CVS repository at sourceforge.net contains ODBC and LDAP
bindings in the modules scsh-ldap[1] and the directory
scsh/scsh/odbc[2].  The LDAP bindings are almost complete and about
1200 LOC C-code and 1100 LOC Scheme-code (about 300 LOC automatically
generated).  The ODBC bindings consist of about 3000 LOC C-code
(partially tricky) and about 2000 LOC Scheme-code.

Currently, I'm busy cleaning up the ODBC bindings and changing them to
use the SRFI 34/35 exception system.  Building the c-stub as a shared
module that can be dlopen()'ed by scsh and Scheme48 is also on my
list.

I'm very confident that migrating those bindings to the SRFI-FFI is
not much work.  Checking whether the GC annotations are (still)
correct and a few search/replace-operations should be enough.  

> I sampled some of the C code in a version of SCSH that I have on hand
> (0.5.2 -- sorry, a download for a more recent version was taking _way_
> too long so I'll risk being embarassed that everything has changed
> since then).  

Actually, that changed completely in the 0.6-series, it's almost
exactly the FFI Scheme48 is using.  That's why migration of the
existing bindings for scsh *0.6-series* and Scheme48 is easy.

-Eric

Footnotes: 
[1]  <http://cvs.sourceforge.net/viewcvs.py/scsh/scsh-ldap/>
[2]  <http://cvs.sourceforge.net/viewcvs.py/scsh/scsh/scsh/odbc/>
-- 
"Excuse me --- Di Du Du Duuuuh Di Dii --- Huh Weeeheeee" (Albert King)