xref: /haiku/docs/user/compatibility.dox (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1/*
2 * Copyright 2011 Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Axel Dörfler <axeld@pinc-software.de>
7 *		Niels Sascha Reedijk <niels.reedijk@gmail.com>
8 *		Ingo Weinhold <ingo_weinhold@gmx.de>
9 *		Alex Wilson <yourpalal2@gmail.com>
10 */
11
12/*!
13\page compatibility Application Level API Incompatibilities with BeOS
14
15Haiku R1 (x86) was designed and is being implemented to be binary and source
16compatible with applications written for BeOS R5 (x86) to a large extent, but
17not the other way around. In some cases we deliberately broke source
18compatibility while at the same time maintaining binary compatibility. Here are
19some specific examples:
20
21- The \c "be" header path is gone - it's called \c "os" in Haiku; since it is
22  always part of the default header search path anyway, you can always just
23  remove it to let your software compile on both platforms, ie. replace:
24\code
25#include <be/interface/View.h>
26\endcode
27  with:
28\code
29#include <interface/View.h>
30\endcode
31  or rather use the preferred method of omitting the first part and use:
32\code
33#include <View.h>
34\endcode
35
36- BeOS contains a deprecated \c add-ons/TrackerAddons.h header, and a
37  header called \c add-ons/TrackerAddOns.h - Haiku only contains the
38  latter.
39- Likewise, you'll find \c support/byteorder.h and \c support/ByteOrder.h
40  in BeOS; Haiku only has ByteOrder.h.
41- If you have subclassed BString and if you are using its \c _privateData
42  member, you might notice that it is no longer mentioned in the documentation.
43  This is because it has been marked as private.
44- The undocumented functions defined in Alias.h from the storage kit are not
45  implemented.
46- The private Device Map API (used by OpenTracker) has been replaced by a
47  different API (Disk Device API).
48- The application debugging interface is conceptually similar, but nevertheless
49  source and binary incompatible.
50- The file system API has changed; file systems that worked on BeOS will no
51  longer work on Haiku.
52- Haiku is binary compatible with the Network Kit in BeOS R5 as well as BONE,
53  ie. the BSD socket API as well as Be's proprietary C++ API.
54  However, the ioctl() interface is not compatible with BONE (BeOS R5 did not
55  have such an interface in the first place).
56- In several places we also dropped compatibility support for older BeOS
57  versions (PR2, R3, R4), which BeOS R5 still featured.
58- The BArchivable class has been updated, and for some classes, unarchiving
59  is slightly different.
60*/
61