= NOM the Netlabs Object Model = NOM is the object model on which the Voyager desktop is based. == About == The main feature of NOM is a release to release binary compatibility of classes. This means that classes may be enhanced or added to the framework without breaking other classes. These other classes may even be subclasses of the modified class. Thanks to this feature it's possible to create binary only extensions to the object model which won't break when the object model is updated. NOM allows to do object oriented programming with languages which are not designed as OO languages, e.g. C. == How to use NOM == Classes are described in an Interface Definition Language (IDL). An IDL compiler interprets the file and outputs binding and template files for the programming language in question. Right now only C is supported but other bindings are possible e.g. C++ or Pascal. == Getting the source == The source is available in the netlabs.org SVN repository. All development is done in the trunk atm. You have to install a subversion client: * For OS/2 get it from [http://silk.apana.org.au/subversion/]. Just put the binaries in your path and set your HOME directory in config.sys (you need a home dir anyway for most *nix programs). ''SET HOME=x:\my_home_dir'' * For Darwin you're set if you run OS X 10.5.x (Leopard). It comes with a svn client preinstalled. For 10.4 (Tiger) get the client using Macports: ''sudo port install subversion''. See the [wiki:BuildNomDarwin Darwin page] for information about installing Macports. * For Linux you will find it among the development packages in more recent distros. * For FreeBSD see ports. * For Windows get it from [http://subversion.tigris.org/project_packages.html]. Create a working directory on your system, cd into it and check out the source. Note for OS/2: I strongly recommend to put the sources on the same drive your *nix tree is located. ''svn co http://svn.netlabs.org/repos/voyager/nom/'' This will get all the stuff including everything what's deprecated. == Building it == See [wiki:BuildNom this page] for building it on OS/2. See [wiki:BuildNomDarwin this page] for building it on Darwin (OS X). See [wiki:BuildNomWindows this page] for building it on Windows.