Commit Graph
2140 Commits
Author SHA1 Message Date
David Nadlinger 470323233a Merged build system patches by Jonathan Mercier.
In detail, this commit:
 - Changes the default version that is built to D2, use D_VERSION to override.
 - Reverts back to building static libs by default until we are certain shared libs work fine everywhere.
 - Fixes installation pathes so that CMAKE_INSTALL_PREFIX is respected; /etc as sysconf dir for /usr prefix is special-cased.
 - Fixes out-of-source builds again, and causes temporary files (idgen, …) not to be written to the source directory anymore.

This is a slightly cleaned up version of the changes from https://github.com/ldc-developers/ldc/pull/12.
2011-11-09 20:40:39 +01:00
David Nadlinger 5e18625266 Define MinGW in addition to mingw32 for consistency with GDC.
When we get Win64 support, it should be defined there as well.
2011-11-08 21:27:02 +01:00
Alexey Prokhin 4ab6869c50 Fix a crash which occurs when compiling std/conv.d with unittests 2011-11-01 17:06:13 +04:00
Alexey Prokhin 6ef7ee6d32 Unimplemented toConstElem is not a fatal error if errors are gagged.
Because ldc uses gagging to check whether an expression is constant.
2011-11-01 14:35:28 +04:00
Alexey Prokhin 22d0f00027 Rewritten DtoArrayInit().
It does not create calls to runtime functions and generates a faster code, especially if optimizations are on.
2011-11-01 14:31:00 +04:00
Alexey Prokhin 40fa7653e2 Sync TypeInfoClass flags with dmd 2011-11-01 12:07:59 +04:00
Alexey Prokhin b52c224d57 Merge v2.056 2011-11-01 11:44:03 +04:00
Alexey Prokhin 7431d58702 Rewritten initialization of global variables. 2011-10-25 15:43:49 +04:00
Alexey Prokhin 66a30803f3 Fixed an assert in DtoNewClass when initializing an inner-class outer reference 2011-10-25 15:43:49 +04:00
Alexey Prokhin bf463d61da Readded 'relocation-model' and 'code-model' options 2011-10-25 15:43:49 +04:00
Alexey Prokhin 45426ca60d Implemented atomic intrinsics for llvm 3.0
Unline older versions, llvm 3.0 provides atomic instructions, not intrinsics.
The patch wraps the instructions into intrinsics, so they will be accessible
from d code.
2011-10-25 15:43:49 +04:00
Alexey Prokhin 81426b8cc8 Fix DelegateExp::toElem return type 2011-10-25 15:43:49 +04:00
Alexey Prokhin 0b159f635d Fix an assert in IrStruct::getClassInfoInterfaces() due to mismatched types 2011-10-25 15:43:49 +04:00
Alexey Prokhin b97b32759e Use LLVM Machine Code (MC) to emit object files. Finilize debug info 2011-10-25 15:43:49 +04:00
Alexey Prokhin aee896f85b Port exceptions to llvm 3.0 2011-10-25 15:43:49 +04:00
Alexey Prokhin 629f13929e WIP: port to llvm 3.0 2011-10-25 15:43:39 +04:00
Jonathan MERCIER 52c6347ef7 now conf files have right value 2011-10-12 03:27:23 +02:00
Jonathan MERCIER 350d4a0629 By default buils as shared lib 2011-10-12 03:07:42 +02:00
Jonathan MERCIER 32cbc798c0 Install lib could go to lib or lib64 directory by example for follow os rules 2011-10-12 03:03:42 +02:00
Jonathan MERCIER 3fa4311371 quote string var 2011-10-10 15:10:56 +02:00
Jonathan MERCIER ebe55afa97 now we can choose llvm config header's filename 2011-10-10 14:32:57 +02:00
Jonathan MERCIER 7cd248dd75 add suffix for libdir is usefull is on your system lib 64bit need to got to /usr/lib64 2011-10-10 14:02:37 +02:00
Jonathan MERCIER 4bbd23b287 Set directory where lib will be put default lib 2011-10-10 13:56:59 +02:00
Jonathan MERCIER c5a3ec9d1d Set default configuration path for install to /etc 2011-10-10 13:52:40 +02:00
Jonathan MERCIER a8903c0795 configuration file follow system rules 2011-10-10 13:49:34 +02:00
Jonathan MERCIER 30d2a6c08c Add comment in CMakeLists.txt 2011-10-10 13:23:01 +02:00
Jonathan MERCIER 07d90e334e Replace PROJECT_BINARY_DIR by PROJECT_SOURCE_DIR for to be more cohesive 2011-10-10 13:18:31 +02:00
Jonathan MERCIER 8803990d2f remove exrta tab for use 4 spaces 2011-10-10 13:16:04 +02:00
Alexey Prokhin 423076dd82 CMakeLists: look for host target in llvm's config.h 2011-09-15 16:23:26 +04:00
Alexey Prokhin 2dd73874ac Fixed druntime and phobos paths in CMakeLists 2011-09-15 14:45:40 +04:00
Alexey Prokhin 9f37747789 Update submodules 2011-09-15 14:23:04 +04:00
Alexey Prokhin fb77c05dfd DMD Issue 3632 - modify float is float to do a bitwise compare 2011-09-15 13:56:22 +04:00
Alexey Prokhin 3a0e3635a6 Added druntime and phobos as submodules 2011-09-14 09:27:18 +04:00
Alexey Prokhin c09aa779ea Fixed a crash inside TraitsExp::semantic when compiling typecons.d with unittests 2011-09-13 21:01:39 +04:00
Alexey Prokhin a75b08bc00 Fixed accessing struct members via alias this 2011-09-13 21:01:39 +04:00
Alexey Prokhin 4879a8bc17 Fixed initialization of nested structs 2011-09-13 21:01:39 +04:00
Alexey Prokhin a0e4737c2e Treat warnings as errors like dmd does 2011-09-13 21:01:39 +04:00
Alexey Prokhin 93eeccaf81 ldmd2: always pass --singleobj option 2011-09-13 21:01:38 +04:00
Alexey Prokhin 9a9999854f Named Return Value Optimization 2011-09-13 21:01:38 +04:00
Alexey Prokhin 0e754b5acd Merge dmd v2.055 2011-09-13 21:01:32 +04:00
Alexey Prokhin 8f4a15c868 Fix ldc1 regressions 2011-09-10 13:24:29 +04:00
Alexey Prokhin f3c901af9d Use _d_arraycatT to append an element to an array instead of reallocating the array 2011-09-10 13:23:47 +04:00
Alexey Prokhin 0caba6672d Call postblit on a struct when appending it to an array. Use _d_arraycatnT to concatenate multiple arrays.
Before, _d_arraycatT was used to concatenate multiple arrays. That caused an issue when postblit
was called on a struct multiple times. The next code asserted due to the issue:

void main()
{
    static struct S
    {
        int x;
        int pad;
        this(this)
        {
            ++x;
        }
    }

    auto sarr = new S[1];
    auto sarr2 = sarr ~ sarr ~ sarr;
    assert(sarr2[0].x == 1);
    assert(sarr2[1].x == 1);
    assert(sarr2[2].x == 1);
    assert(sarr[0].x == 0);
}
2011-09-10 13:22:05 +04:00
David Nadlinger 9864129fb8 Merge branch 'master' into merge-2.054
Conflicts:
	gen/statements.cpp (returning void from main() was fixed on both branches)
2011-08-17 16:09:28 +02:00
David Nadlinger 3f448afa37 Another nested context crash fix.
The test case that would previously crash:

a.d
---
module a;

@property bool empty(T)(in T[] a) {
  return !a.length;
}

void find(alias pred,R1)(R1 haystack) {
  simpleMindedFind!pred(haystack);
}

void simpleMindedFind(alias pred, R1)(R1 haystack) {
  bool haystackTooShort() {
    return haystack.empty;
  }
}
---

b.d
---
module b;

import c;

void getTimeZone() {
  indexOf();
}
---

c.d
---
module c;

import a;

void indexOf()() {
  find!({})("");
}
---
2011-08-17 02:33:33 +02:00
David Nadlinger 11f19eec5a D1: Don't crash when returning a void expression from void main(). 2011-08-12 20:14:55 +02:00
David Nadlinger 5fdbce2de4 Merge pull request #3 from bioinfornatics/master
Bash autocompletion improvements.
2011-08-12 02:40:57 -07:00
Jonathan MERCIER ad2eaa9ea1 enhance autocompletion 2011-08-12 11:30:05 +02:00
David Nadlinger 777c1e3530 Merge pull request #2 from bioinfornatics/master
add autocompletion for ldc2 with bash-completion
2011-08-09 15:53:39 -07:00
Jonathan MERCIER 775736bfb0 add bash script for autocompletion 2011-08-10 00:46:14 +02:00