This page is a collection of API changes we intend to make as soon as we drop BeOS backward compatibility. Feel free to add comments concerning any API removal/change/addition to be done.


  • Redo shared libraries: there should be one library per kit and corresponding names for each. (possible conventions are "", "", "")
  • Stop supporting the GCC2 ABI
  • Switch to LLVM?


  • Drop stat_beos in favor of stat.
  • More breakage to fully switch to a 64-bit time_t (there is one syscall that needs to be tweaked, and 32-bit Haiku is still on 32-bit time_t)
  • Replace glibc (use parts of musl? it's MIT licensed).
  • Multiuser! (some general things that need to be cleaned up at the same time: Tracker's ConfirmChangeIfWellKnownDirectory).
  • Get rid of R5 compat stuff in Network Kit.

Application Kit:

  • Integrate the functionality of BInvoker::InvokeNotify() into BInvoker::Invoke().

Support Kit:

  • Replace BAutolock with a proper template based AutoLocker, like the one we have in shared already.
  • convert_encoding_open() convert_encoding_close() with respect to UTF-8, #976 (or perhaps drop textencoding altogether and create a ByteArray class in the Support Kit that can handle encodings?)

Interface Kit:

  • Derive BView from BLayoutItem and drop BViewLayoutItem?
  • Remove GetPreferredSize() from BView and child classes in favor of PreferredSize()
  • Remove copy constructors on BRect, rgb_color and other small classes that do not need it, so they can be passed in registers.
  • Create a model/view infrastructure for the column list view and OutlineListView. (see Debugger's MVC wrapper over current CLV) (maybe look at Qt's [rejected] Model/Views 2.0?)
  • BAlerts should be layout-aware along with all other rich text views.
  • All rich text views should accept (simple) style markup as input and as output (maybe HTML).
  • Add a BToolbar API (the currently-shared BToolBar should be a good basis, it needs support to add arbitrary BViews)
  • Cleanup BTabView -- get rid of the non-layout version. (Terminal may need a rewrite...)
    • Decouple tab label from its name.
  • Don't eat all Cmd key combos even if they don't have any action assigned.

Media Kit:

  • The API uses add_on and AddOn, but also addon - the latter should be faded out.
  • Get rid of R5 compatibility stuff (and R3 (!) compatibility stuff).


  • FilePanel does not use layouts due to the Be Book's recommendation for developers to mess with the layout if they needed to.
Last modified 16 months ago Last modified on Nov 17, 2021, 11:39:15 PM
Note: See TracWiki for help on using the wiki.