sean [Fri, 31 Oct 2008 23:13:27 +0000 (23:13 +0000)]
* Reclassified most runtime-generated errors as Errors rather than Exceptions. This involved both a parent reasignment and a name change. At this point, the only remaining Exception is UnicodeException.
* Renamed ArrayBoundsException to RangeError in an attempt to be more general.
* Renamed onArrayBoundsError callback to onRangeError to make handling of these conditions more general as well. Ideally, this will allow the same callback to be used for other purposes in the future.
sean [Wed, 29 Oct 2008 00:15:37 +0000 (00:15 +0000)]
Added static data segment support to the new Runtime.loadLibrary() features. This also replaces static data segment scanning for all apps by dropping rt_scanStaticData() in favor of a new initialization step that calls gc_addRange() for each static data segment. The upshot of this is that all GCs must track add/remove Root and Range calls so the info can be passed to a proxy if gc_setProxy() is called. See src/gc/stub/gc.d for a simple implementation of this.
sean [Mon, 27 Oct 2008 22:15:16 +0000 (22:15 +0000)]
First attempt at support for dynamic library loading and unloading. Currently, only Windows is supported, and information on static data ranges still needs to be passed to the application GC (see "TODO" in gc/basic and gc/stub).
sean [Sat, 25 Oct 2008 00:15:55 +0000 (00:15 +0000)]
* Moved sys into core.sys
* Moved stdc.posix into core.sys.posix
* Moved stdc into core.stdc
* Added initial support for Runtime.loadLibrary() and Runtime.unloadLibrary() in D2. The same functions are exposed in D1, but they are stubbed out for the moment. The basic library loading and unloading should theoretically work, but the GC handle swapping code still needs a look, etc. I left the D1 version stubbed out to make finding GC diffs easier for when I look at the handle swapping code (which is in D2 but not D1). Still not sure about the function naming either... may just switch to load() and unload().
sean [Fri, 17 Oct 2008 03:06:32 +0000 (03:06 +0000)]
Fixed a few build script issues on posix, including a bug in looking for some of the core modules in the wrong place, and a hack to eliminate filename collision with the dmd compiler runtime. This latter issue really needs to be addressed in a better way, but at this point my priority is just to get the build working.
sean [Wed, 15 Oct 2008 21:33:55 +0000 (21:33 +0000)]
* Changed top-level exception class name from 'Exception' to 'Throwable'.
* Created a new class 'Exception' which derives from 'Throwable'.
* Created a new class 'Error' which derives from 'Throwable'.
* Moved core modules from the top level into a package named 'core'.
* Added onHiddenFuncError() routine to pass hidden function error handling from the runtime to core.exception.
* Renamed _d_getErrno to getErrno and moved it to src/common/stdc. The idea is that druntime may eventually generate a lib for the stdc modules, and this definition is necessary. The comparable function will have to be removed from Phobos as well.
* Moved the GC code into a package named 'gc', which is in accordance with the spec defined for druntime library integration (as yet unpublished).
sean [Mon, 13 Oct 2008 19:44:27 +0000 (19:44 +0000)]
Fixed a potential issue with building druntime. src/core will now be a part of the import path. This is necessary if any of the core modules import one another--not the case now, but better safe than sorry.
sean [Tue, 30 Sep 2008 19:50:33 +0000 (19:50 +0000)]
Added "invariant" module to fix link issues because DMD generates references to an extern (D) function it contains. Hopefully, this is only temporary and the routine will be made extern (C), thus allowing the use of "invariant_" instead. The rationale being that it's not a good thing to have modules with the same name as reserved words.
sean [Sat, 20 Sep 2008 02:53:43 +0000 (02:53 +0000)]
The next batch of updates towards D2 support. The lib should be pretty close to compiling with D2 now, and the D2 runtime changes have been reduced to a compact set of pure additions (few/no alterations). Next update will be aimed at finishing the process of getting the lib to build with -w set under D2, which will mean adding "override" where necessary to the compiler runtime as well as figuring out how to deal with the use of 'volatile' in the thread code.