Alexey Prokhin
4c22a76f07
Fixed missing symbols in druntime library. Fixed a druntime crash in _d_invariant().
2010-10-31 12:42:15 +03:00
Alexey Prokhin
d143966b6a
Updated druntime.patch and added phobos.patch
2010-10-29 12:14:24 +04:00
Alexey Prokhin
b1e5993873
Started work on phobos
2010-10-27 18:13:46 +04:00
Alexey Prokhin
4d7a6eda23
Different fixes for d2
2010-10-07 22:35:32 +04:00
Alexey Prokhin
df87607ba2
Updated to 2.049
2010-09-30 21:54:45 +04:00
Kelly Wilson
badb597962
Change the ldc.conf file output to match the newer Tango directory structure and only use libtango-user-ldc for the libs to match the 0.99.9 build instructions.
2010-03-10 20:21:05 -07:00
Christian Kamm
ff69db3b37
Fix definition of _Unwind_Action.
...
Thanks to Garrison.
2009-12-18 18:59:14 +01:00
Christian Kamm
f84bddc8d0
Hack to make compiling the tango 0.99.8 runtime work.
...
The gc has no module statements and the new frontend fails to find
the imports. So I add an explicit include path to the runtime gc
directory.
2009-11-07 10:54:40 +01:00
Tomas Lindquist Olsen
84a319ad23
Fixed issue in exception runtime with recent LLVM revisions, with this in place EH seems to work properly on x86-64. These fixes need to be merged into tango trunk still!
2009-10-21 05:46:56 +02:00
Christian Kamm
265cbea170
Make == for associative arrays test for equality, not identity.
...
_aaEq was added to runtime/internal/aaA.d which forwards to
TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals
was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp.
I assume that the frontend will produce an error if == is used on associative
arrays of different type.
This fixes DMD bug 1429.
2009-06-21 19:05:24 +02:00
Frits van Bommel
465f15eda0
Return void* from _d_allocclass so LLVM doesn't do weird things with it...
...
This allows `-instcombine` followed by `-gvn` to do devirtualization, so add
`-gvn` in strategic places in the default pass order.
2009-06-20 11:39:13 +02:00
Christian Kamm
8357777440
Set the default RUNTIME_DIR to be side-by-side of the ldc source dir.
2009-06-14 14:28:11 +02:00
Frits van Bommel
f79e40a491
Use llvm.memset instead of _d_array_init_i1 and _d_array_init_i8.
...
This exposes what's happening to LLVM, and memset is probably faster than the
runtime functions we were using anyway.
2009-06-07 13:57:59 +02:00
Frits van Bommel
46cd6504fa
Adjust some more code that was depending on the function and delegate calling
...
conventions being equal.
There's also an instance in `tango.text.convert.Layout` that should be adjusted:
{{{
Index: tango/text/convert/Layout.d
===================================================================
--- tango/text/convert/Layout.d (revision 4578)
+++ tango/text/convert/Layout.d (working copy)
-660,8 +660,12 @@
case TypeCode.STRUCT:
auto s = cast(TypeInfo_Struct) type;
- if (s.xtoString)
- return Utf.fromString8 (s.xtoString(p), result);
+ if (s.xtoString) {
+ char[] delegate() toString;
+ toString.ptr = p;
+ toString.funcptr = cast(char[] function()) s.xtoString;
+ return Utf.fromString8 (toString(), result);
+ }
goto default;
case TypeCode.INTERFACE:
}}}
2009-05-31 15:27:01 +02:00
Frits van Bommel
a517adb426
Adjust runtime for recent ABI change on x86-64, since member functions are no
...
longer equivalent to regular functions with `this` as their first argument.
(They weren't anyway, but it happened to work as long as there was no `sret`
parameter)
2009-05-31 14:27:01 +02:00
Kelly Wilson
cab7aeb843
just a simple change to cmake for mingw
2009-05-27 12:41:41 -06:00
Frits van Bommel
e7b3f5415f
Make "aa[key]" use the same runtime call as "key in aa". The runtime calls
...
these were using were different, but with equivalent definitions.
With `ldc -O3`, the following functions now all compile to the exact same code:
{{{
int[int] y;
void foo(int x) {
if (x in y) {
auto z = x in y;
sink(*z);
}
}
void bar(int x) {
if (x in y) {
sink(y[x]);
}
}
void baz(int x) {
if (auto p = x in y) {
sink(*p);
}
}
}}}
2009-05-25 12:50:40 +02:00
Tomas Lindquist Olsen
e8780d50e8
Merged DMD 1.045 !!!
2009-05-16 22:21:31 +02:00
Frits van Bommel
541f3723cd
Intrinsics shouldn't see struct padding, so use a special TargetABI for them
...
that removes it.
This unbreaks the `llvm_*_with_overflow` intrinsics.
2009-05-16 13:06:49 +02:00
Tomas Lindquist Olsen
3fb2cb0322
Okay... Fix the assertion as well, since 20 really is enough yet it wanted MORE... Despite the message.
2009-05-10 17:31:56 +02:00
Tomas Lindquist Olsen
0ab77de246
Increased a buffer size in TypeInfo_StaticArray from 10 to 20 to avoid assertion failures! Thanks LeoD.
2009-05-10 17:25:47 +02:00
Tomas Lindquist Olsen
dfea022a86
Changed array slice copying to call a runtime function when assertions or array bound checks are enabled instead of just doing a memcpy. This makes sure an exception is thrown if the copy is invalid (ie. different lengths or overlap). Fixes ticket #283 . Rebuilding the runtime is necessary.
2009-05-10 02:23:05 +02:00
Benjamin Kramer
0cc01f160f
Add runtime support for darwin x86_64
2009-05-02 16:39:26 +02:00
Tomas Lindquist Olsen
ea2279b11a
Updated the interal runtime's ClassInfo type to match the one in object.di .
...
Runtime now compiles and runminitest is back to normal except for typeinfo10.d .
2009-04-17 02:54:16 +02:00
Christian Kamm
18baa5c40b
Remove unnecessary GCC_EXE CMake flag. Closes #208 , thanks impulze.
2009-04-12 13:50:18 +02:00
Christian Kamm
253e743d05
Apply fawzi's stacktracing update from #254 .
2009-04-05 15:02:44 +02:00
Christian Kamm
1bf5934519
Fix path to llvmasm.di in runtime CMakeList
2009-03-28 10:50:44 +01:00
Tomas Lindquist Olsen
14b8aff809
Fixed issue with runtime supplied typeinfo generating multiple symbols.
...
Added new ldc.llvmasm import in runtime cmake file.
2009-03-28 09:45:33 +01:00
Tomas Lindquist Olsen
e61562033d
Added support for tuple return with __asmtuple!(int,int) etc.
2009-03-28 08:25:58 +01:00
Tomas Lindquist Olsen
1809214995
Added support for single D type register return from __asm.
2009-03-28 07:24:53 +01:00
Tomas Lindquist Olsen
99b863e2b1
Added initial support for raw LLVM inline asm.
2009-03-28 06:32:06 +01:00
Tomas Lindquist Olsen
36f6ebc77f
- Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM.
...
- Eliminated the DLRValue DValue.
- Implemented proactive handling of l-value CastExpS.
- Minor tweak in runtime memory.d .
2009-03-28 05:00:43 +01:00
Christian Kamm
ef62f7965c
Bring FrameInfo definition up to date with recent Tango developments. Thanks fawzi!
2009-03-22 14:51:03 +01:00
Christian Kamm
490549e65c
Add dmd-style configuration file for rebuild usage. See #236 and thanks to ccuter for the patch!
2009-03-21 09:47:48 +01:00
Frits van Bommel
d1911d40d6
Fix some issues with fawzi's patch.
...
- It now actually compiles:
- import stdc.stdio for string formatting functions)
- remove extra '{'
- Use snprintf() instead of sprintf().
- Use return value from snprintf instead of strlen().
- Don't print the filename in Exception.writeOut() if it has zero length and
the line number is 0
(It would previously only skip these if the filename was null, but not if it
was a different empty string)
- Ignore empty filename + line number 0 in FrameInfo.writeOut() as well.
2009-03-18 15:33:19 +01:00
Frits van Bommel
e847f60fb1
Apply fawzi's patch from #235 .
...
This has some issues which are addressed in my next commit.
2009-03-18 15:20:07 +01:00
Christian Kamm
bb0eab009d
Fix imports copying for out-of-source build.
2009-03-15 23:04:58 +01:00
Frits van Bommel
5d9bd5d139
Intrinsics overhaul:
...
- More error checking for pragma(intrinsic)
- Properly handle templating for real (use actual nr of bits, not .sizeof * 8)
- Template all .i* and .f* intrinsics
- The old names are deprecated aliases now
I also added a preliminary patch to make tango.math.Math use the new versions.
(I think it looks a lot nicer now)
2009-03-10 04:45:32 +01:00
Frits van Bommel
9bbab8a342
Change the way imports are copied to the (Tango) runtime dir.
2009-03-09 21:38:31 +01:00
Frits van Bommel
545d85a057
Reformat intrinsics.di a bit.
2009-03-09 21:38:24 +01:00
Frits van Bommel
7ccbe58e08
Factor out some common code between X86 and X86_64, and supply *_real versions
...
of all floating point intrinsics that exist whether reals are 80-bit or 64-bit.
2009-03-09 21:38:06 +01:00
Frits van Bommel
dc20834473
Update runtime CMakeList.txt for new command line syntax regarding PIC
2009-03-08 09:58:26 +01:00
Tomas Lindquist Olsen
f84a2fb84a
Updated lifetime.d with a 32bit faster codepath for overflow checks.
2009-03-03 19:47:39 +01:00
Tomas Lindquist Olsen
d845b11dbd
Removed inline asm for overflow checking in runtime that wasn't working.
2009-03-03 19:37:47 +01:00
Frits van Bommel
4f51adc810
Implement support for intrinsics returning struct types
...
(such as llvm.*.with.overflow)
2009-02-26 22:47:06 +01:00
Frits van Bommel
9259089c2b
Removing ldc.conf. (IMPORTANT: run 'cmake .' after pull)
...
Added it to .hgignore.
This gets rid of spurious differences caused by CMake regenerating it differently.
Just run 'cmake .' to get it back in your local checkout.
2009-02-19 13:50:05 +01:00
Frits van Bommel
ad7ad71e11
Fix out-ouf-source build for runtime as well.
...
To build out-of-source, follow these steps:
# [[Insert LLVM build instructions here]]
mkdir my_build_dir
cd my_build_dir
svn co http://svn.dsource.org/projects/tango/trunk tango
ccmake <PATH_TO_SOURCE>
# (Regular ccmake stuff, press 'c' a few times followed by 'g')
make
make runtime
# add `PWD`/bin to PATH
closes #213
2009-02-19 11:01:34 +01:00
Christian Kamm
07649678db
_d_delarray also had one of the array consistency asserts mentioned in #184
...
and dmd2632.
2009-01-30 07:51:50 +01:00
Christian Kamm
d958535969
Remove asserts on array consistancy in arraysetlength. Fixes #184 , thanks Deewiant.
2009-01-29 17:45:12 +01:00
Christian Kamm
921a326865
Applied doob's patch to port GDC's Dyld data segment tracking for Mac.
2009-01-24 00:33:06 +01:00