View previous topic :: View next topic |
Author |
Message |
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Fri May 27, 2005 4:26 pm Post subject: |
|
|
ares.zip is now in the downloads area of the SVN tree. I've tried adding it to the downloads link as well, but no luck so far. But as I appear to have gone over the bandwidth limit on my website for the day, you'll have to grab the lib from here.
Last edited by sean on Fri May 27, 2005 4:43 pm; edited 1 time in total |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Sat May 28, 2005 11:09 am Post subject: |
|
|
I made a few final changes for Mango compatibility, most notably adding intrinsic to std. The Windows side is pretty solid now, though non-Windows builds still require some posix definitions before everything will work. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Thu Jun 09, 2005 1:15 pm Post subject: |
|
|
New version is online. This one incorporates DMD .126 changes. Also, I lost some updates I'd made from the 05/18 release involving new Posix code in std.thread. If for some reason someone has old releases laying around and the Posix function headers are commented out in std.thread, I'd appreciate a copy of that file Otherwise, I'm reimplementing the changes and will have an update online in a few days.
The project page now has a link to the Ares zipfile. I will update the version on my website as well, but dsource should now be the primary download location. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Fri Jun 17, 2005 1:08 pm Post subject: |
|
|
New release up. There weren't a ton of changes for this version.
* There were no code changes required for DMD .127, but the lib was recompiled.
* I've made some bugfixes to std.thread. These are for circumstances that I expect no one has ever encountered.
* I'm re-implementing the Posix std.thread code, as my old implementation was lost.
* There is a new module called std.atomic. This module isn't yet included in the build, and is still in development, but it should work just fine on single-CPU systems (the synch. mechanisms aren't yet implemented for SMP, and that portion of the code needs to be fleshed out). |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Tue Jul 19, 2005 12:05 pm Post subject: |
|
|
New release up. This version just merges in the (minimal) DMD .128 changes. I've been pretty busy recently, but hope to be spending a bit more time on Ares before too terribly long. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Tue Aug 02, 2005 11:02 am Post subject: |
|
|
New release up. This version adds std.atomic as a fully usable module (though unsigned atomic values still have compiler issues). std.atomic is included in the build process, and should work for both debug and release builds. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Tue Aug 02, 2005 6:26 pm Post subject: |
|
|
Yet another release online:
* std.atomic - Finalized design and added to the build
* std.atomic - Fixed a bug where code setting the membar template parameter was backwards
* std.atomic - Added temporary code to support atomic pointer types (32-bit only--this is temporary after all)
* std.atomic - Added public atomicLoad, atomicStore, and atomicStoreIf functions. These are inteded to provide some means to perform atomic operations on values outsie the Atomic struct. if template function overloading ends up being supported, these may be replaced with statics within Atomic
Next I'll likely focus on finalizing std.thread. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Fri Aug 12, 2005 10:26 am Post subject: |
|
|
This update may well break a lot of code. I've added a new branch to the Ares source tree: sys. std.c.windows and std.c.linux have been moved to sys.c.*. This was suggested on the D general forum and it seemed a good idea. The contents of these files remains unchanged for the moment however, but expect anything Posix-related to eventually disappear from sys.c.linux. Also, I've cleaned up a few version blocks and am implementing the Posix headers for Interix (Microsoft's Unix implementation). Hopefully, someone with a Linux install will help out with the Linux stuff. The only other changes of note are a small code change in std.thread that was more for self-documentation purposes than anything, and I moved a bunch of signal definitions to std.c.posix.signal (a new file). |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Thu Aug 18, 2005 2:51 pm Post subject: |
|
|
New update online:
* Merged in DMD .129 changes
* Fixed names for moved windows/linux modules (from std to sys prefix) |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Mon Aug 22, 2005 4:25 pm Post subject: |
|
|
Fixed an error where the moved OS modules weren't being linked |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Sat Sep 03, 2005 1:27 pm Post subject: |
|
|
I've checked in some minor tweaks to std atomic (though I haven't rebuilt the .lib file). atomicStore!(msync.none) is now implemented correctly for SMP, and membars for atomicStore have been eliminated in some instances where they appear to be unnecessary (that being msync.rel, msync.ssb, msync.slb). Improved POSIX code is still in progress as I've been a bit overworked recently. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Sat Sep 10, 2005 9:28 am Post subject: |
|
|
Updates the lib with these changes:
* Merged in DMD .131 changes (nothing but a rebuild)
* Added a Posix version of Thread.sleep (untested)
* Fleshed out Posix headers
Without a Linux install to develop against, the Posix stuff is a bit of a pain to develop, so I'm going to consider that done for now and focus on new features (though I plan to remove the few Interix-specific bits of Posix soon as Microsoft is discontinuing it). I want to finish an examination of the interaction between the GC and the Thread class, potentially add some facility to allow sharing stack information between GCs when dynamic libraries are loaded, and finish up the system-level exceptions. And I guess we'll see what comes up after that. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Wed Sep 14, 2005 11:25 am Post subject: |
|
|
Just a quick note regarding what I'm currently working on. I've noticed some bugs in the thread module (specific to GC) and will be fixing them in the next release. Some are in the Windows code and some are in the Posix code, so I will be fixing both. I am also going to (at least) change the following thread functions:
* stackHead - Renamed to stackTop. The function will now always return the logical top of the stack regardless of whether the stack grows up or down.
* stackTail - Renamed to stackBottom. The function will now always return the logical bottom of the stack regardless of whether the stack grows up or down.
I haven't decided how to handle the register functions, but they will be renamed and have their behavior altered as well. Also, I am planning to make the register properties return valid pointers regardless of whether D is running on a Windows or a Posix system, so the stack properties will refer only to stack values and the register properties only to register values. This should offer some minimal use for debugging purposes beyond their GC application.
I am also planning to alter the thread module to support GC across dynamic libraries. The implementation for the current mark/scan GC should be quite simple, though I don't know enough about garbage collectors to generalize a method that will support lock-free GC as well. Either way, the additions will be available for any dynamic loading process to use. |
|
Back to top |
|
|
sean
Joined: 24 Jun 2004 Posts: 609 Location: Bay Area, CA
|
Posted: Fri Sep 16, 2005 11:52 am Post subject: |
|
|
Version 0.1 is online with these changes:
* Renamed Thread.stackHead to Thread.stackTop. Thread.stackTop returns a pointer to the logical top of the execution stack, and on some systems its address may evaluate to less than the stack bottom (x86, for example).
* Renamed Thread.stackTail to Thread.stackBottom. Thread.stackBottom returns a pointer to the logical bottom of the execution stack, and on some systems its address may evaluate to greater than the stack top (x86, for example).
* Renamed Thread.regHead to Thread.regFirst. Thread.regFirst returns a pointer to the beginning of a list of register entries. Entry order (and population) will be such that a PUSHA plus a memcpy can populate the list directly on x86 systems.
* Renamed Thread.regTail to Thread.regLast. Thread.regLast returns a pointer to the last valid element of a list of register entries in the order specified above.
* Added some Posix code in the Thread module to support the aforementioned changes. As with all non-Windows code, these changes are untested.
* Altered the GC support code in the Thread module to use the new conventions. This should also eliminate a bug where pointers to defunct stack data were being used in some cases. Upon review of the GC code, it appears that mark is inteded to operate on the range [pbot..ptop). This is consistent with standard coding practice, but it also implies that the address referenced by ptop will never be used by the GC. In any case, the Thread code has been written such that the entire stack and set of registers will be scanned even though the Thread functions expose an inclusive range.
* Moved reference to onOutOfMemory from dmdrt to dmdgc (where it belongs).
Please note that the filename has changed to correspond to the version number. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|