8 bit os_f handles
Jonathan Coxhead
jonathan at doves.demon.co.uk
Tue Mar 28 22:00:39 BST 2000
David wrote,
| If source files are not dependant on all headers included
| (automatically generated dependencies using AMU and Acorn Make) and
| the executable isn't dependant on the library the make file is
broken.
Look, you are doing yourself no good at all by repeating, over and
over again, the same damn thing. It's still not true! When a library
is provided by a third party, people just **do not** include
dependencies on that library in their makefiles. If this were true,
every makefile have dendencies on the version of the O S it was
intended for, in case it need to be recompiled when the user did an
upgrade!
| > I know that the point is to supply correct code. The only sense
| > in which the code is "broken" at the moment is a sense that you
| > have defined for yourself. That doesn't make it true!
|
| Sorry but it is the API, not a matter of my opinion.
The A P I is 8-bit. That's true---at the OSLib level, and at the
FileSwitch level as well (as we go to press ...).
If the FileSwitch interface becomes 32-bit, the OSlib interface
will evolve to keep pace.
The fact that the OSLib interface is 8-bit looks like a mistake.
If only I could remember exaclt why I did it, I'd know for sure. :-(
I promise you that, compared to the work of giving FileSwitch 32-
bit handles, the work of adding |os_w| to OSLib will be a walk in the
park, picking the daisies. So will modifying user code to match.
| Again if *might* someone rely on non transportable features such as
| supplying completely unlinked object files, you cannot try and
support
| this, it just doesn't make sense.
It does so make complete sense!!! You seem unable to distinguish
between what you want, and what is!
We *do* support those who rely on features such as supplying
unlinked object files! Also, those who want to write binary
structures to disc and read them back, those who want to do remote
procedure call bindings including arbitrary O S types, and every
other bizarre, baroque and creative use of the library that we
haven't thought of.
*You* may not like what those people do, but we are happy that
they are writing interesting code, and we are committed to keeping it
working!
| > Assuming that 32-bit handles happen, if and when they feel
that
| > they want to fix this bug, they can. Until they do, they get the
| > existing behaviour.
|
| This is unbelievable complacency!
It's not complacency at all, it's a natural consequence of what
happens in an evolving system. When files >2GB started appearing in
UNIX, did anyone say, "let's make lseek() return a |long long|"? No.
Instead, they intruduced llseek(). Same for us.
| > | Dont get me on to Microsoft. They had been shipping versions
of
| > MFC40 | DLL with VC++ 4.0 and 4.1, but when they updated it for
| > release | with VC++ 4.2, found they couldn't recompile the suite
| > with it so had to | change the name to MFC42DLL.
| >
| > But this is **exactly** what you are proposing we do with
| > OSLib!!!
| >
| > Can't you see that? Really?? It's very clear to me!
|
| I'm sorry but yo have completely missed the point. This is what
they
| had to do because its a Dynamic library and cannot change its
binary
| interface, with out breaking all programs that use it. OSLib does
not
| have this constraint.
Of course it does.
| Program A *statically* linked with OSLib X does
| not effect in any way Program B linked with OSLib version Y.
Libraries might not be statically linked (duh!)---a library is
just a collection of object files. Symbols are still unresolved in
them. In the old days, before SharedCLibrary was in ROM, we had
o.Stubs (which linked to the SharedCLibrary module) and also
o.ANSILib, and you could choose either one. o.RISC_OSLib only got a
module version even later (and it was part of SharedCLibrary).
I don't know what the current state of RISC O S shared library
technology is at the moment (poor, I suspect), but others are
perfectly entitled to ship library files which are just that---a
bunch of useful functions, in a library file.
| > Does anyone have any sense of how likely 32-bit file handles
| > are | > going to be?
|
| No but I am under NDA.
We can take that as a "very likely", and do the work for |os_w|, I
think :-)
| Do any of the users in this mailing list have any code which will
| break if os_f is redesigned as a 32 bit, and the application
| recompiled? Its easy to tryout by just modifying the os.h header.
This doesn't matter one bit. Hundreds of copies of OSLib have gone
out, and I have no idea who's using them. Neither does anyone else.
Even if the answer was "none", I'd still argue for compatibility:
it's a professional ideal.
/|
o o o (_|/
/|
(_/
More information about the oslib-user
mailing list