Re: Cleaning up FILE in stdio..



On Tue, 26 Feb 2008, Garrett Wollman wrote:

In article <200802261524.30384.jhb@xxxxxxxxxxx> you write:

This is assuming that the contents and layout of FILE are not a
public ABI (i.e. we malloc the things internally and consumers should
just treat the pointer value as a cookie and not grub around in the
internals).

Most interpreted languages grub around in the internals, as
(historically) do a number of <stdio.h> macros. Historically Emacs
did so as well (I suppose you can call it an interpreted language).

Yech. I also forgot about the macros in <stdio.h>, like __sfeof()
and friends.

Comments?

I think you have the right idea but this will break the ABI in a way
that can't be fudged with symbol versioning.

Well, you can if you add compat symbols for all functions with FILE
as an argument.

I'd like us to say that the innards of FILE are not part of our
ABI, but we would still have to do something to keep at least
enough of the ABI for any macros.

--
DE
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Xen & VMI?
    ... it's the Xen ABI or the VMWare ABI or a mesh of the two - everyone can ... the 'hardware is changing fast so we cannot do a sane API' argument ... you /CAN/ do a sane API that lives for quite some time. ... interfaces are sane and we quickly adopt our internals. ...
    (Linux-Kernel)
  • Re: Cleaning up FILE in stdio..
    ... Most interpreted languages grub around in the internals, ... I think you have the right idea but this will break the ABI in a way ... that can't be fudged with symbol versioning. ... then return that FILE * to a user app that calls fclose (but the user app ...
    (freebsd-arch)
  • Re: Xen & VMI?
    ... it's the Xen ABI or the VMWare ABI or a mesh of the two - everyone can ... map their own internals to that /one/ ABI. ... hypervisor side is changing. ...
    (Linux-Kernel)