October 03, 2004
I've finally finished cleaning up MinTL for dmd-102. Since this version is a good cutting point I'm calling it MinTL 2.0

new stuff:
- deque
- circular linked lists (double and single): CList and CSList
- more concurrent containers: ConcurrentQueue, ConcurrentStack, DualQueue,
DualStack, LinkedQueue, ConcurrentPriorityQueue, ConcurrentAA
- added Exchanger and better doc to Locks library

more use of mixins for code reuse. Also replaced assembly files in Locks with inline assembly.

http://home.comcast.net/~benhinkle/mintl/

I still get wierd linking errors (eg - sometimes I get typeinfos not found on win32) and/or seg-v's depending on various compiler flags (eg - if I specify -O then I need to insert some printfs in various places to prevent a seg-v presumably because of an optimization bug) but it seems to basically work.

have fun!
-Ben
October 04, 2004
> I still get wierd linking errors (eg - sometimes I get typeinfos not found on win32) and/or seg-v's depending on various compiler flags (eg - if I specify -O then I need to insert some printfs in various places to prevent a seg-v presumably because of an optimization bug) but it seems to basically work.

I'm trying to narrow these bugs down and it looks like the one about TypeInfo's not being found (with -g or -unittest) goes away if the file mintl/share.d the function add is changed from

  void add(...) {
    va_list argptr = cast(va_list)_argptr;
    for (int k=0;k<_arguments.length;k++) {
      if (_arguments[k] is typeid(Value)) {
  etc

to

  void add(...) {
    va_list argptr = cast(va_list)_argptr;
    for (int k=0;k<_arguments.length;k++) {
      TypeInfo ti = typeid(Value);
      if (_arguments[k] is ti) {

I have no idea why explicitly making a variable for the TypeInfo makes the compiler happy. I'm trying to get smaller reproduction steps but my basic tests end up passing. So.. if you get missing TypeInfo's try that trick.