Menu

Tree [7436cd] objc-3.3.26 /
 History

HTTPS access


File Date Author Commit
 CVS 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 DependencyGraph 2020-05-10 stes stes [c22264] Update 3.3.19
 examples 2020-05-10 stes stes [c22264] Update 3.3.19
 html 2020-05-10 stes stes [c22264] Update 3.3.19
 include 2020-09-20 stes stes [27a062] Update to 3.3.20
 man 2020-05-10 stes stes [c22264] Update 3.3.19
 pkg 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 rtf 2020-05-10 stes stes [c22264] Update 3.3.19
 src 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 util 2021-11-26 stes stes [576576] Update to 3.3.25
 words 2020-09-20 stes stes [27a062] Update to 3.3.20
 Amiga.txt 2020-12-25 stes stes [25c64c] Add AmigaOS 4 for PowerPC to Platforms.txt
 Beos.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Books.txt 2021-03-23 stes stes [f09139] Fix build on x86_64-unknown-cygwin gcc 10.2
 Changes.txt 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 Ibmvac.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Install.txt 2021-03-23 stes stes [f09139] Fix build on x86_64-unknown-cygwin gcc 10.2
 Intro.txt 2020-05-10 stes stes [c22264] Update 3.3.19
 Lcc.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 License.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Make.bat 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Makefile.in 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 Mpw.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Platform.txt 2022-05-12 stes stes [5e4c23] add OpenBSD 7.1 to platforms file
 Readme.txt 2021-11-26 stes stes [3a25fb] Update readme
 Setup.bat 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Visual.txt 2020-09-30 stes stes [6cf827] Add example PATH in Watcom/VisualC++ readme
 Vms.txt 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 Watcom.txt 2020-09-30 stes stes [6cf827] Add example PATH in Watcom/VisualC++ readme
 block98.html 2020-09-20 stes stes [27a062] Update to 3.3.20
 bootSrc 2021-11-26 stes stes [576576] Update to 3.3.25
 browse.h 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 config.h.in 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 config.vms 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 configure 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 configure.in 2022-09-24 stes stes [7436cd] Change Makefile to support out of source tree b...
 ctags.awk 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 indent-patch 2019-10-15 David Stes David Stes [f696b2] Import to GIT
 manual.html 2020-05-10 stes stes [c22264] Update 3.3.19

Read Me

Portable Object Compiler (c) 1997-2021.  All Rights Reserved.


GETTING HELP
------------

For help and reporting bugs : send email to me (stes@telenet.be)
or to the objc-discuss@lists.sourceforge.net mailing list.

Subscribe to the mailing list at https://sourceforge.net/p/objc/mailman/

INSTALL
-------

Read the Install.txt file.

If this is a first-time installation, you have to start by installing a bootstrap package; do not install this package until you have installed a bootstrap package.  This can be either a binary package of the Portable Object Compiler, or in some cases when no binary "port" exists an objc-bootstrap.tar.gz source package.

LICENSE
-------

Read the License.txt file (the "GNU Library General Public License").

The license file explains the difference between,

 (a) "software using the Portable Object Compiler", and 
 (b) "software based upon the Portable Object Compiler".


LATEST VERSION
--------------

The latest sources of the Portable Object Compiler are available at:

	https://sourceforge.net/projects/objc/

WHAT'S INCLUDED
---------------

The "objc" distribution consists of the following parts :

	0. "VICI", interactive Objective-C debugger and interpreter
	It doesn't currently work but may be an interesting project for someone.

	1. "objc", the actual compiler

	Consists of driver script ("objc") and binary ("objc1").
	"objc1" is a precompiler for C.
	The binary "postlink" is used
	for preparing tables for runtime initialization.

	2. "objcrt", the Objective C Runtime Library for "objc"

	This is a modern, portable, "all C" Objective C runtime
	There's absolutely no assembly language needed, nor is there
	a dependency on stack layout, register allocation conventions etc.

	Most other runtimes, were derived from pre-"all C"-Stepstone 
	runtimes, so this is an important point of difference.

	3. "objpak", the "Object Pak" Objective C Collection Classes

	Simple, powerful set of classes.  Very portable.
	Can be used to develop with different compilers, then
	port with 'objc'.  Compatible with ICpak101, the collection class
	library described in Brad Cox book, and used by existing
	Objective-C packages that were developed with Stepstone objc.

	4. "cakit", the "Computer Algebra Kit" Objective C classes

	Small, concise, interface to a large set of classes for
	polynomial computing and arbitrary precision integer arithmetic.

	5. Source of compiler and "oclib", a set of Objective C classes for
        parsing C (and the Objective C extensions to C)
  
"objc" and "vici" are written in Objective C itself.  It's all
written in portable Objective C : any Objective C compiler
should be able to compile the "objc" compiler.  From time to time,
we try a configure with other Objective-C compilers, to ensure that our
sources are still compatible with e.g. Stepstone Objective C compiler.

NOT included is a C compiler : in order to be able to use "objc", you will
need to elsewhere find a compatible C compiler.  This should be no problem
since one of our goals - see below - is to make "objc" work with as many C
compilers as possible.  On UNIX systems, the (free) "gcc" compiler is a
possibility (not needed, but possible).  Another possibility, is to use
the (free) "lcc" compiler or the "tcc" TDF compiler system.


NICE FEATURES
-------------

	1.Easy to install or to modify.

	2.Works on many systems with the native cc, debugger, profiler etc.
	(Unix, Windows, Macintosh, Beos, OpenVMS etc. see Platforms.txt file)

	2a. Option for reference counted memory management (-refcnt).
	This uses the native malloc(), free() etc. but the compiler generates
	statements for keeping track of references.
	(Tested on a few platforms, such as IRIX 5.2 with the SGI malloc).

	3.Built-in possibility of tracing Objective C messages. (OBJCRTMSG)

	4.Straightforward "C" messenger; "inline cache" messenger.
	Forwarding C messenger (to support -doesNotUnderstand:).
	
	5.All classes get a +initialize message at start-up, rather than
	'each class receives a +initialize before it receives its first
	message'.

	6.Some support for translating Objective-C to Smalltalk (-st80 option)

	7.Automatic archiver.  Compiler generates code for classes to save
	and load objects to and from disk (for all instance variables of
	type "id").

	8.Option for Garbage Collection (using Boehm gc package).  Tested
	on some UNIXes and WIN32.   Option for reference counted memory
	management (doesn't require Boehm).

	9.Exception handling scheme (using Objective-C Blocks) that allows
	to specify a default handler to be executed.

	10.Supports dynamically loading Objective-C modules on Windows,
	FreeBSD, HP-UX, Solaris, Linux, IRIX, Digital Unix etc.

	11.Has a switch for double indirection for Object identifiers (id as
	a handle instead of a pointer). (-become: method)

	12.Supports forwarding messages (-doesNotUnderstand: method)

        13.Support for Embedded SQL in Objective-C (Informix only for now)  

	14.Great system for experimentation with your own additions/extensions
	to Objective C !


WANT TO HELP?
-------------

If you like "objc", feel free to send e-mail to, "stes@pandora.be".
I'm especially interested in bug-fixes, of course.  And in ports
to machines that I don't have access to (e.g. CP/M, Atari).