Hi,

Andy Wingo <[EMAIL PROTECTED]> writes:

> The removal of the scm_i_* functions is an ABI break in the stable 1.8
> series. It should be reverted. (It's a great fix for master though.)

The "i" always stood for "internal", but let's see what can be done...
;-)

Assuming the above, one could say that it's not an ABI break, since no
public function was added, modified nor removed.

Now, since the public API did lack a few necessary functions, we could
probably make a few exceptions, leaving crucial `_i_' functions public.
I suggested such exceptions and asked for more back then:

  http://thread.gmane.org/gmane.lisp.guile.devel/7246
  http://thread.gmane.org/gmane.lisp.guile.devel/7285

> It breaks apps compiled with older versions of guile 1.8. Guile-gnome is
> not affected too much -- a couple instance of scm_i_symbol_length (not
> something that can currently be dealt with with version #ifdeffing, as
> the version is still 1.8.5),

I don't mind leaving `scm_i_symbol_length ()' public for the sake of ABI
compatibility, just like `scm_i_string_chars ()' and a few others.

Eventually, application code should have a configure check, allowing it
to use either `_i_' or `_c_'.

> but more seriously the port table, with the
> scm_i_port_table_mutex. (The port API sucks, I know.)

What do you mean?  What code outside `libguile' uses
`scm_i_port_table_mutex'?

Thanks,
Ludovic.



Reply via email to