Commit Graph

127 Commits

Author SHA1 Message Date
Tomas Lindquist Olsen
32ebd9617e [svn r130] fixed #28 2007-11-28 05:04:38 +01:00
Tomas Lindquist Olsen
5ab2166b05 [svn r129] Started AA literals.
Fixed #15, passing -O will now invoke the optimizer before writing bitcode.
2007-11-28 04:52:35 +01:00
Tomas Lindquist Olsen
c4d1ae5d54 [svn r128] function local typedefs were not working 2007-11-28 03:34:37 +01:00
Tomas Lindquist Olsen
667b6339f3 [svn r127] Updated the lphobos build scripts a little. Created a new rebuild profile.
Removed some potentially very long logging lines.
Added support for inner classes.
2007-11-28 03:01:51 +01:00
Tomas Lindquist Olsen
0665531549 [svn r126] String switch is now implemented.
A few other fixes.
2007-11-27 09:19:07 +01:00
Tomas Lindquist Olsen
ea362d8402 [svn r125] Renamed/moved a few backend member inside DMD structures for consistency.
Unit tests are now implemented.
2007-11-27 03:09:36 +01:00
Tomas Lindquist Olsen
935dfae9c8 [svn r124] Fixed another D vararg + return in ptr bug.
Fixed some nested function calls failed to resolve the context ptr.
2007-11-26 07:26:21 +01:00
Tomas Lindquist Olsen
282f60e4a0 [svn r123] Fixed some typeinfo module name mismatches.
Fixed D-style varargs returning through pointer.
Fixed converting nested function to delegate.
Added std.string and std.format to Phobos.
2007-11-26 06:45:13 +01:00
Tomas Lindquist Olsen
26beb7f43d [svn r122] Fixed temporary delegates can now alloca their own storage. 2007-11-26 05:50:33 +01:00
Tomas Lindquist Olsen
e0176785c7 [svn r121] Finished ModuleInfo implementation.
Static ctors/dtors now work according to spec.
Changed class vtable types slightly in some cases. Overridden functions now always take the the type of the first class declaring the method as this parameter. This helps when using headers (w. implementation somewhere else)
2007-11-26 04:49:23 +01:00
Tomas Lindquist Olsen
cb37aab93b [svn r120] ModuleInfo implementation is now almost complete.
Fixed some nasty static array-initializer bugs.
Fixed bug in DtoArrayLen and DtoArrayPtr for full slices of static arrays.
2007-11-25 18:55:52 +01:00
Tomas Lindquist Olsen
c08b0918cc [svn r119] Added the monitor data field that comes after the vtable pointer to all classes. Represented as a void* initialized to zero. 2007-11-25 03:58:55 +01:00
Tomas Lindquist Olsen
541a677a54 [svn r118] Fixed dynamic casts.
Fixed a few interface bugs.
2007-11-25 00:19:13 +01:00
Tomas Lindquist Olsen
b43f5729b0 [svn r117] Initial working implementation of interfaces.
Groundwork for all the different types of class/interface casts laid out.
2007-11-24 06:33:00 +01:00
Tomas Lindquist Olsen
0a8ff5931a [svn r116] Implemented the ClassInfo.destructor field. 2007-11-22 22:30:10 +01:00
Tomas Lindquist Olsen
ccaf229830 [svn r115] Implemented the ClassInfo.defaultConstructor member. 2007-11-22 21:17:54 +01:00
Tomas Lindquist Olsen
be1fcd6a24 [svn r114] Implemented the ClassInfo.offTi member. 2007-11-22 21:01:01 +01:00
Tomas Lindquist Olsen
d51e392b8d [svn r113] Added initial support for associative arrays (AAs).
Fixed some problems with the string runtime support functions.
Fixed initialization of array of structs.
Fixed slice assignment where LHS is slice but RHS is dynamic array.
Fixed problems with result of assignment expressions.
Fixed foreach problems with key type mismatches.
2007-11-21 04:13:15 +01:00
Tomas Lindquist Olsen
a807cbfc91 [svn r112] Fixed 'case 1,2,3:' style case statements.
Fixed a bunch of bugs with return/break/continue in loops.
Fixed support for the DMDFE hidden implicit return value variable. This can be needed for some foreach statements where the loop body is converted to a nested delegate, but also possibly returns from the function.
Added std.math to phobos.
Added AA runtime support code, done ground work for implementing AAs.
Several other bugfixes.
2007-11-20 05:29:20 +01:00
Tomas Lindquist Olsen
adab52fad9 [svn r111] Fixed most problems with complex number support and added typeinfo for them.
Added typeinfo ti_C.
Did some changes to the way expressions that have both lvalue and rvalue LLVM values are handled.
2007-11-20 00:02:35 +01:00
Tomas Lindquist Olsen
2af443b045 [svn r110] Fixed typeinfo for classes. 2007-11-19 06:01:48 +01:00
Tomas Lindquist Olsen
b347fd8a50 [svn r109] Fixed support for static array TypeInfo 2007-11-19 03:39:46 +01:00
Tomas Lindquist Olsen
5e9f5034ff [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported. 2007-11-19 02:58:58 +01:00
Tomas Lindquist Olsen
6da09c01b3 [svn r107] Getting .classinfo on a class instance now works (classinfo is stored in vtable) 2007-11-18 08:25:07 +01:00
Tomas Lindquist Olsen
c99938debf [svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
Basically it tries to do the following in order: Resolve types, Declare symbols, Create constant initializers, Apply initializers, Generate functions bodies.
ClassInfo is now has the most useful(biased?) members working.
Probably other stuf...
2007-11-18 06:52:57 +01:00
Tomas Lindquist Olsen
1c4cfc21ac [svn r105] -inline does nothing for now, the -On setting can already be used to trigger it.
Fixed a rare bug in AddrExp.
2007-11-16 10:01:24 +01:00
Tomas Lindquist Olsen
d1cfe9524c [svn r104] TONS OF FIXES.
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
2007-11-16 08:21:47 +01:00
Tomas Lindquist Olsen
7d6bbcd87d [svn r103] Array comparisons are now fully implemented, that is - to the extent that TypeInfo is. 2007-11-15 00:24:44 +01:00
Tomas Lindquist Olsen
302015d7e8 [svn r102] Further delayed emission of function bodies to avoid problems with circular-forward-references.
Now uses the DMD _adEq(void[], void[], TypeInfo) runtime function for array equality comparison.
2007-11-14 23:39:10 +01:00
Tomas Lindquist Olsen
46d8929fb6 [svn r101] Split up CastExp into several smaller utility functions. 2007-11-14 20:18:01 +01:00
Tomas Lindquist Olsen
feff45cadd [svn r100] Moved test/ray.d to demos/ray.d.
Cleanups.
2007-11-12 07:58:44 +01:00
Tomas Lindquist Olsen
e39beb1ad9 [svn r99] Removed the ray demo. it's in test already (and not broken there) 2007-11-12 06:43:33 +01:00
Tomas Lindquist Olsen
3b4c818082 [svn r98] Added support for std.c.stdlib.alloca via pragma(LLVM_internal, "alloca").
Added support for array .sort and .reverse properties.
Fixed some bugs with pointer arithmetic.
Disabled some DMD AST optimizations that was messing things up, destroying valuable information.
Added a KDevelop project file, this is what I use for coding LLVMDC now :)
Other minor stuff.
2007-11-12 06:32:46 +01:00
Tomas Lindquist Olsen
b32e04cacd [svn r97] Fixed bug with main(string[] args) on 32 bit systems. 64bit worked. 2007-11-08 19:21:05 +01:00
Tomas Lindquist Olsen
454f50ccbc [svn r96] Updated to DMD 1.023.
Regular bugfixes.
2007-11-08 19:13:28 +01:00
Tomas Lindquist Olsen
ea18cd8e75 [svn r95] added support for mains like:
T main(string[] args)
fixed a bug with slicing a pointer that is an argument with no storage
2007-11-07 04:52:56 +01:00
Tomas Lindquist Olsen
4a5659c04e [svn r94] started on complex support
calling final class methods was being treated as a virtual call failing an assertion.
2007-11-07 03:36:07 +01:00
Tomas Lindquist Olsen
e7a17c2744 [svn r93] a few fixes, some phobos additions.
some very rough groundwork for moduleinfo and classinfo support
2007-11-07 02:45:47 +01:00
Tomas Lindquist Olsen
34d9e12020 [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too. 2007-11-06 10:03:14 +01:00
Tomas Lindquist Olsen
3b2cb94f6e [svn r91] fixed some minor mistakes 2007-11-03 14:48:33 +01:00
Tomas Lindquist Olsen
48492229ec [svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
Lots of bugfixes.
Added support for special foreach on strings.
Added std.array, std.utf, std.ctype and std.uni to phobos.
Changed all the .c files in the gen dir to .cpp (it *is* C++ after all)
2007-11-03 14:44:58 +01:00
Tomas Lindquist Olsen
1b867a0588 [svn r89] Fixed a bunch of problems with template instance across multiple modules.
Fixed initialization of function local static variables, with a non const initializer (now happens on first call using a global to make sure it only happens once.)
2007-11-02 06:32:32 +01:00
Tomas Lindquist Olsen
3e3579da22 [svn r88] fixed global given initializers when they don't deserve 2007-11-02 02:27:41 +01:00
Tomas Lindquist Olsen
6cdf99f01e [svn r87] Fixed some memory bloat when passing string literals as char[] params (double temporary before) 2007-11-02 02:03:13 +01:00
Tomas Lindquist Olsen
d58ce84169 [svn r86] Changed the way arguments are given storage. It is now detected if they will need it during semantic passes.
Initial support for debug information. Very limited, but MUCH better than nothing :)
2007-11-02 01:17:26 +01:00
Tomas Lindquist Olsen
6bb534fb2a [svn r85] Fixed: if a return statement appeared in the try block of a nested try-finally, only the inner-most finally block would be executed.
Changed: Renamed all the LLVM_Dto... helper function to just Dto...
2007-11-01 17:27:18 +01:00
Tomas Lindquist Olsen
947bba2b48 [svn r84] Fixed: Returning from a void function from inside the try of a try-finally block was broken. 2007-10-31 22:35:39 +01:00
Tomas Lindquist Olsen
44d2104eec [svn r83] Fixed: Returning a struct from within the try block of a try-finally was broken. 2007-10-31 22:20:19 +01:00
Tomas Lindquist Olsen
d8f021d63f [svn r82] Fixed: Fall-through switch cases were broken. 2007-10-31 20:50:21 +01:00
Tomas Lindquist Olsen
0979d55d26 [svn r81] Fixed: Union support was very buggy. Should be fairly solid now. 2007-10-31 09:34:18 +01:00