dmd thrashes fedora

2012-02-10 Thread Ellery Newcomer
when I run dmd -gc -oftopo topo.d multi_index.d replace.d on the contents of http://personal.utulsa.edu/~ellery-newcomer/bad.zip in fedora 16 x86_64 with dmd 2.057 64 bit dmd starts thrashing like there is no tomorrow and generally locks up my entire system. Can anyone confirm

toString multiple overrides

2012-02-10 Thread Ellery Newcomer
dmd 2.057 Two mixin templates, each define toString, mix them in to your class and .. Error: function test.X.T2!().toString multiple overrides of same function So this behavior is new, but is it sensical? Sample code: mixin template T1(){ string toString(){ return 1; } } mixin

Re: shifting array slices

2012-02-11 Thread Ellery Newcomer
http://d.puremagic.com/issues/show_bug.cgi?id=7484 On 02/11/2012 12:09 PM, Ellery Newcomer wrote: I'm pretty sure this used to work: import std.algorithm; int[] ra; copy(ra[5 .. 10], ra[4 .. 9]); and would correctly shift the range [5 .. 10] down one (unlike ra[4 .. 9] = ra[5 .. 10], which

Re: dmd thrashes fedora

2012-02-12 Thread Ellery Newcomer
On 02/12/2012 08:34 AM, Timon Gehr wrote: It is a bug in your code: - ForEachIndex!(N+1, L).result; + ForEachIndex!(N+1, L[1..$]).result; The diagnostic DMD spits out is quite bad. Wow. In my defense, the original code is right; apparently dustmite did this to the reduced case. I know I

warning: size of symbol changed

2012-02-15 Thread Ellery Newcomer
has anyone else gotten warnings of the nature /usr/bin/ld: Warning: size of symbol `{875charlongsymbol}' changed from 107 in multi_index.o to 99 in multi_index.o

Re: warning: size of symbol changed

2012-02-15 Thread Ellery Newcomer
On 02/15/2012 10:03 PM, Ali Çehreli wrote: On 02/15/2012 06:35 PM, Ellery Newcomer wrote: has anyone else gotten warnings of the nature /usr/bin/ld: Warning: size of symbol `{875charlongsymbol}' changed from 107 in multi_index.o to 99 in multi_index.o This can happen if there are two object

Re: warning: size of symbol changed

2012-02-16 Thread Ellery Newcomer
On 02/16/2012 01:32 AM, Jacob Carlborg wrote: On 2012-02-16 03:35, Ellery Newcomer wrote: has anyone else gotten warnings of the nature /usr/bin/ld: Warning: size of symbol `{875charlongsymbol}' changed from 107 in multi_index.o to 99 in multi_index.o Sounds like you should do a clean build

RedBlackTree.lowerBound

2012-02-19 Thread Ellery Newcomer
Is it just me or are lowerBound and upperBound really unintuitively named? From DDOC: c.lowerBound(v) Returns a range of all elements strictly less than v c.upperBound(v) Returns a range of all elements strictly greater than v. So c.lowerBound(v) will return a range for which v is the ..

Re: mixin template FAIL

2012-02-21 Thread Ellery Newcomer
On 02/21/2012 01:53 PM, Ali Çehreli wrote: According to the docs, template mixins can have only declarations but helpMe above has a statement. http://dlang.org/template-mixin.html Ali come to think of it, I've occasionally wished for statement mixins. This would make a good enhancement

fedora/ldc where are druntime headers?

2012-02-23 Thread Ellery Newcomer
looking for core.stuff I would have thought they would be in ldc-druntime-devel, but they don't seem to be, and I can't find them elsewhere

Re: fedora/ldc where are druntime headers?

2012-02-23 Thread Ellery Newcomer
On 02/23/2012 05:08 PM, bioinfornatics wrote: Le jeudi 23 février 2012 à 16:29 -0600, Ellery Newcomer a écrit : looking for core.stuff I would have thought they would be in ldc-druntime-devel, but they don't seem to be, and I can't find them elsewhere in ldc-druntime-devel see above command

Re: mixin template FAIL

2012-02-23 Thread Ellery Newcomer
Thanks for your reply. You're right about the statement. But I still think something's wrong. For example, even this program produces the errors: import std.stdio; mixin template helpMe() { writeln(Satisfying!); } does it do that if you replace the statement with a declaration? like this:

Re: fedora/ldc where are druntime headers?

2012-02-23 Thread Ellery Newcomer
grumph. is it not possible to fix the packages in repo? On 02/23/2012 05:17 PM, bioinfornatics wrote: get latest ldc build here: http://koji.fedoraproject.org/koji/buildinfo?buildID=299767 install it with yum install after dowloading these rpm

Re: SONAME and D

2012-02-24 Thread Ellery Newcomer
On 02/24/2012 06:27 AM, Jordi Sayol wrote: It compiles to 32-bit but fails for 64-bit, maybe due to compiled libphobos2 (64-bit) without -fPIC argument? What? -shared works with 32-bit? Holy crap, it does! this is awesome! maybe make a bug report for 64 bit?

deh_end

2012-02-24 Thread Ellery Newcomer
So I'm all trying out this hot new shared switch, and it works just dandy for -m32 when d has the main function. But now I want to be able to call my shared lib from C. my little shared lib, tup.d: import std.stdio; extern(C) void xyz(int i){ writeln(i); } compiled like so: dmd

Re: Is empty array null?

2012-02-27 Thread Ellery Newcomer
On 02/27/2012 03:12 PM, Pedro Lacerda wrote: Ouch, I just found http://d.puremagic.com/issues/show_bug.cgi?id=3889 So how would I differ from an empty array and a null value? Pedro Lacerda If you know your type is an array, just use a.length to test if the array is empty. The concept of

Re: Is empty array null?

2012-02-27 Thread Ellery Newcomer
On 02/27/2012 03:17 PM, Justin Whear wrote: null makes sense to me. If the length is null, where can the ptr member point to other than null? In the case of empty array slices, ptr can point to anywhere. But then, empty array slices aren't null.

Re: Is empty array null?

2012-02-28 Thread Ellery Newcomer
On 02/28/2012 05:25 AM, Mikael Lindsten wrote: This means that I can doif (someString.length) { ... }without worrying about the null case (?). That's great! Correct

Re: 0 negative loop condition bug or misunderstanding on my part

2012-03-07 Thread Ellery Newcomer
On 03/07/2012 12:23 AM, Ali Çehreli wrote: There are probably hundreds of discussions about that over the years on many different language newsgroups and forums. :) There is no clear winner: Both sides of the arguments seem to have good points. Ali know any good ones off the top of your

Re: Remarks on std.container

2012-03-08 Thread Ellery Newcomer
On 03/08/2012 03:21 AM, Matthias Walter wrote: Hi, I wanted to have a binary heap where I can update entries and restore the heap structure. shameless plug I totally built this functionality in to multi_index's red black tree, hash table, and heap indeces.

optlink

2012-05-13 Thread Ellery Newcomer
Hey, a while back I was messing around with some winapi calls in D, and I had occasion to want to link to crypt32.dll, but dmd doesn't seem to ship with a crypt32.lib. I tried downloading the platform sdk or whatever the thing is called, but, um... dmd ssl_client.d C:\Program

compile time regex

2012-06-16 Thread Ellery Newcomer
There is a ctRegex; is there a compile time equivalent for match?

aa.remove in a destructor

2012-06-23 Thread Ellery Newcomer
this code: class X{ string[string] s; this() { s[s] = S; } ~this() { s.remove(s); } } void main() { X x = new X(); } produces this: core.exception.InvalidMemoryOperationError because the aa is calling gc_free during a collection, apparently. Should I

Re: aa.remove in a destructor

2012-06-24 Thread Ellery Newcomer
On 06/24/2012 02:53 AM, Dmitry Olshansky wrote: I think no, as any with operation involving GC. For instance while you are removing elements table may decide to rehash itself and that means it may trigger allocation. okay, it looks like my [inherited] code is using aa's to map D objects to

Re: aa.remove in a destructor

2012-06-26 Thread Ellery Newcomer
On 06/24/2012 01:56 PM, Ellery Newcomer wrote: Come to think of it, though, shouldn't the standard library provide an aa implementation that doesn't rely on the gc? ah, screw it, I'll just write my own.

Re: aa.remove in a destructor

2012-06-28 Thread Ellery Newcomer
On 06/26/2012 12:41 PM, Steven Schveighoffer wrote: I want to red flag this code for another reason. You must *never* access GC-allocated references in a destructor, to do so will make the program crash randomly. The docs should be so assertive (not that I read them or anything). The

Re: using GC needs particular skills?

2012-07-15 Thread Ellery Newcomer
On 07/15/2012 09:01 AM, Alexandr Druzhinin wrote: 15.07.2012 22:56, Alexandr Druzhinin пишет: 15.07.2012 22:33, Alex Rønne Petersen пишет: test case: class A { } __gshared A a; void main(string[] args) { a = new A; } every time after finishing application I get

Re: Getting a range over a const Container

2012-07-19 Thread Ellery Newcomer
On 07/19/2012 02:51 AM, Artur Skawina wrote: Range!Node opSlice() { return Range!Node(first); } Range!(const Node) opSlice() const { return Range!(const Node)(first); } anyone mind cluing me in on why this is possible?

Re: Getting a range over a const Container

2012-07-19 Thread Ellery Newcomer
On 07/19/2012 06:18 PM, Ali Çehreli wrote: Now the output is different: non-const foo called on a const foo called on b Ali cool beans, thanks.

Re: Getting a range over a const Container

2012-07-20 Thread Ellery Newcomer
On 07/19/2012 06:09 PM, Ellery Newcomer wrote: On 07/19/2012 02:51 AM, Artur Skawina wrote: Range!Node opSlice() { return Range!Node(first); } Range!(const Node) opSlice() const { return Range!(const Node)(first); } it looks like you could almost merge these two into one

Re: sorting failed error

2012-07-30 Thread Ellery Newcomer
On 07/30/2012 05:36 AM, maarten van damme wrote: I have no idea what is wrong with my code and the error is not very informative. Does anyone have any idea as to what the problem could be? Congratulations, it looks like you've hit a compiler bug.

template - aliasing a member function

2012-08-08 Thread Ellery Newcomer
say I have template T(alias fn) { } class Foo { int i(); void i(int); } alias T!(Foo.i) Biz; Is there a way to get a handle to both of the overloads of Foo.i inside T? Actually, all I really need for that is to get 'Foo.i' out of fn. mangleof looks promising..

Re: template - aliasing a member function

2012-08-08 Thread Ellery Newcomer
On 08/08/2012 04:21 PM, Ellery Newcomer wrote: mangleof looks promising.. .. or maybe not. wtf? template Z(string s) { pragma(msg, fn.mangleof 2: ~ s); } struct S(alias fn, string prop) { pragma(msg, fn.mangleof 1: ~ fn.mangleof); alias Z!(fn.mangleof) F; } class Foo

Re: prevent multiple calls to rt_term

2012-08-13 Thread Ellery Newcomer
On 08/13/2012 01:19 PM, Sean Kelly wrote: Sounds like what's needed is a call counter, so if rt_init is called N times, rt_term must be called N times before the runtime really terminates. is it valid to call rt_init more than once?

Re: prevent multiple calls to rt_term

2012-08-13 Thread Ellery Newcomer
On 08/13/2012 03:37 PM, Sean Kelly wrote: On Aug 13, 2012, at 2:07 PM, Ellery Newcomer ellery-newco...@utulsa.edu wrote: On 08/13/2012 01:19 PM, Sean Kelly wrote: Sounds like what's needed is a call counter, so if rt_init is called N times, rt_term must be called N times before the runtime

Re: where is parameterNames?

2012-08-19 Thread Ellery Newcomer
On 08/15/2012 09:46 AM, David Nadlinger wrote: Related: https://github.com/D-Programming-Language/phobos/blob/master/std/traits.d#L510 David That should work nicely. Why does it not show up on dlang.org?

function pointer and default argument

2012-08-22 Thread Ellery Newcomer
hey. is this valid code? void func1(int i, double j = 1.0) { } void main() { auto fn = func1; func1(1); //dmd: ok fn(1); // dmd: not ok }

Re: function pointer and default argument

2012-08-22 Thread Ellery Newcomer
On 08/22/2012 12:03 PM, Ali Çehreli wrote: On 08/22/2012 11:51 AM, Ellery Newcomer wrote: hey. is this valid code? void func1(int i, double j = 1.0) { } void main() { auto fn = func1; func1(1); //dmd: ok fn(1); // dmd: not ok } The type of the function pointer does

call member function alias

2012-08-23 Thread Ellery Newcomer
if I have a member function alias and corresponding object and arguments, is there any way to turn them into a member function call? e.g. class X{ void a(); } auto profit(alias fn, T, Args...)(T t, Args args) { ??? } profit!(X.fn, X)(x); Constraints are: 1) must conserve ability to omit

Re: call member function alias

2012-08-24 Thread Ellery Newcomer
On 08/23/2012 11:47 PM, Jacob Carlborg wrote: How about this: import std.stdio; class Foo { auto forward (alias fn, Args...) (Args args) { return fn(args); } void bar (int a = 3) { writeln(bar , a); } } auto call (alias fn, T, Args...) (T t,

abnormal program termination

2012-08-24 Thread Ellery Newcomer
I am running into an ICE on windows - Assertion Failure on such-and-such line in mtype.c - and I am trying to get a test command for to reduce it with the redoubtable dustmite. Normally, 'abnormal program termination' is printed to the console; however if I try to redirect stderr for greppage

celerid and cygwin

2012-08-25 Thread Ellery Newcomer
I almost have celerid building extension modules with dmd under cygwin. The issue now is linking to python. With normal windows, it's easy enough to convert libs/pythonXY.lib to OMF. With cygwin, we have /usr/lib/pythonX.Y/config/pythonX.Y.dll.a. Don't know what to do with that. My

Re: how to get fully qualified name of a template function (if possible at CT)

2012-08-27 Thread Ellery Newcomer
On 08/24/2012 11:16 PM, timotheecour wrote: how to get fully qualified name of a template function? In the code below I want to get util.mod.mymethod!(double) I tried everything (see below) to no avail, it just returns mymethod; The closest I get is demangle(mangledName!(fun)), which shouldn't

Re: abnormal program termination

2012-08-28 Thread Ellery Newcomer
On 08/28/2012 06:37 AM, Regan Heath wrote: On Sat, 25 Aug 2012 01:10:05 +0100, Ellery Newcomer ellery-newco...@utulsa.edu wrote: I am running into an ICE on windows - Assertion Failure on such-and-such line in mtype.c - and I am trying to get a test command for to reduce

Re: abnormal program termination

2012-08-28 Thread Ellery Newcomer
On 08/28/2012 09:55 AM, Regan Heath wrote: I searched the DMD sources, just in case the message abnormal program termination was DMD specific, and I found nothing. Then I searched all files and the string appears in the dmd.exe binary, making me suspect the compiler used to produce dmd.exe

Re: abnormal program termination

2012-08-29 Thread Ellery Newcomer
On 08/28/2012 01:03 PM, Ellery Newcomer wrote: On 08/28/2012 09:55 AM, Regan Heath wrote: I searched the DMD sources, just in case the message abnormal program termination was DMD specific, and I found nothing. Then I searched all files and the string appears in the dmd.exe binary

Re: abnormal program termination

2012-08-30 Thread Ellery Newcomer
On Thursday, 30 August 2012 at 13:39:30 UTC, Regan Heath wrote: Where did you find that.. I still can't find the blasted thing :p void dmd_51d770(char* msg, char* title) { at address 0x51d770 in the _TEXT section (in a slightly less disassembled form) apparently I'm not the first

segfault

2012-08-31 Thread Ellery Newcomer
hey, is anyone else getting a segfault from dmd on this code? struct a{ static if(i) { }elseenum z = ; } 2.060 x64 linux and if they do, I call dibs on the bug report

Re: segfault

2012-08-31 Thread Ellery Newcomer
On 08/31/2012 03:18 PM, Andrej Mitrovic wrote: On 8/31/12, Ellery Newcomer ellery-newco...@utulsa.edu wrote: hey, is anyone else getting a segfault from dmd on this code? Yep on win32. thanks

Re: Trait to get function parameter names

2012-09-04 Thread Ellery Newcomer
On 08/31/2012 12:48 PM, mist wrote: On Friday, 31 August 2012 at 19:15:14 UTC, Jacob Carlborg wrote: On 2012-08-31 16:24, mist wrote: Subject. Is that possible? I see only parameter type tuple stuff out there. I'm looking into iterating over own parameter name list inside of function. Here:

Re: Trait to get function parameter names

2012-09-04 Thread Ellery Newcomer
On 09/04/2012 12:09 PM, Jacob Carlborg wrote: On 2012-09-04 20:28, Ellery Newcomer wrote: Have fun discovering it isn't implemented. Then use It isn't? Then why is it in the docs. no idea. std.traits.ParameterIdentifierTuple And why is this not in the docs. dlang.org docs seem

modulename

2012-09-04 Thread Ellery Newcomer
anybody know a neat trick to get the module name that a function is being called in a la void foobar(size_t line = __LINE__) { } std.traits.moduleName looks like it almost does it, but it needs a symbol from the module.

Re: modulename

2012-09-04 Thread Ellery Newcomer
On 09/04/2012 12:41 PM, Andrej Mitrovic wrote: __FILE__? It doesn't necessarily have the exact package hierarchy. e.g: // wonka.d module willy.wonka; pragma(msg, __FILE__); // end wonka.d dmd wonka.d gives wonka.d but dmd willy/wonka.d gives willy/wonka.d

Re: modulename

2012-09-04 Thread Ellery Newcomer
On 09/04/2012 01:16 PM, Jonathan M Davis wrote: On Tuesday, September 04, 2012 21:41:24 Andrej Mitrovic wrote: __FILE__? That'll mostly work, but it's perfectly possible to give a module a name which is completely different from the file name. But it looks like we now have

bigint - python long

2012-09-05 Thread Ellery Newcomer
Hey. Investigating the possibility of providing this conversion in pyd. Python provides an api for accessing the underlying bytes. std.bigint seemingly doesn't. Am I missing anything?

Re: bigint - python long

2012-09-05 Thread Ellery Newcomer
On 09/05/2012 05:02 PM, bearophile wrote: Ellery Newcomer: Investigating the possibility of providing this conversion in pyd. Are you updating Pyd? :-) Bye, bearophile Yep. Have any suggestions for supported conversion out of the box? From the standard library, I already have Complex

Re: bigint - python long

2012-09-05 Thread Ellery Newcomer
On 09/05/2012 07:10 PM, bearophile wrote: Some D lazy ranges == Python lazy iterators/generators I'll look into this one. array.array == D arrays just checked, looks like we have it: PyStmts(q{from array import array; a = array('i', [44,33,22,11]);}, testing); assert(PyEval!(int[])(a,

Re: bigint - python long

2012-09-06 Thread Ellery Newcomer
On 09/05/2012 11:19 PM, Jacob Carlborg wrote: On 2012-09-06 04:10, bearophile wrote: There are several important cases, like: Some D lazy ranges == Python lazy iterators/generators array.array == D arrays NumPy arrays == D arrays Associative arrays? check.

Re: bigint - python long

2012-09-06 Thread Ellery Newcomer
On 09/06/2012 04:11 AM, bearophile wrote: Ellery Newcomer: array.array == D arrays just checked, looks like we have it: PyStmts(q{from array import array; a = array('i', [44,33,22,11]);}, testing); assert(PyEval!(int[])(a, testing) == [44,33,22,11]); I think if the python object

offsetof + foreach

2012-09-07 Thread Ellery Newcomer
I have a struct buffer, and I want to print out its members' offsetof. This: foreach(i,_t; buffer.tupleof) { writefln(%s@: %s, _t.stringof, _t.offsetof); } complains Error: undefined identifier 'offsetof' what should I be doing?

Re: offsetof + foreach

2012-09-07 Thread Ellery Newcomer
On 09/07/2012 10:31 AM, Ellery Newcomer wrote: I have a struct buffer, and I want to print out its members' offsetof. This: foreach(i,_t; buffer.tupleof) { writefln(%s@: %s, _t.stringof, _t.offsetof); } complains Error: undefined identifier 'offsetof' what should I

Re: bigint - python long

2012-09-07 Thread Ellery Newcomer
On 09/06/2012 09:48 AM, Ellery Newcomer wrote: On 09/05/2012 11:19 PM, Jacob Carlborg wr Associative arrays? check. eh, that was check as in yes, not check as in look it up yourself. didn't seem ambiguous at the time.

Re: bigint - python long

2012-09-07 Thread Ellery Newcomer
On 09/06/2012 12:07 AM, Russel Winder wrote: I am guessing this is interfacing to CPython, remember there is also PyPy and ActiveState, they have different ways of doing things. Well the ActiveState C API will be very close to the CPython C API, but PyPy (which is the best Python 2.7 just now)

linker @_@

2012-09-07 Thread Ellery Newcomer
playing with some old headers I had lying around, dmd libdw_test.d {{header files}} -L-ldw gives me /usr/bin/ld: /usr/lib64/dmd-2.060/libphobos2.a(memory_4a8_620.o): undefined reference to symbol '_end' /usr/bin/ld: note: '_end' is defined in DSO /lib64/liblzma.so.5 so try adding it to the

int[3][4]*

2012-09-07 Thread Ellery Newcomer
alright what's the deal? void main () { alias int[3][4] fooz; int[3][4]* i = new fooz; } wiz.d(6): Error: new can only create structs, dynamic arrays or class objects, not int[3LU][4LU]'s

Re: linker @_@

2012-09-08 Thread Ellery Newcomer
On 09/08/2012 03:39 AM, Johannes Pfau wrote: -L-llzmadec Woot! it worked!

since when was this valid syntax?

2012-09-08 Thread Ellery Newcomer
alias enum int e;

Re: bigint - python long

2012-09-08 Thread Ellery Newcomer
On 09/08/2012 03:09 AM, Russel Winder wrote: On Fri, 2012-09-07 at 15:21 -0700, Ellery Newcomer wrote: On 09/06/2012 12:07 AM, Russel Winder wrote: […] just used your scons fork to build the pyd embedded unittests. works pretty nice Splendid :-) Okay, here: https://bitbucket.org

Re: since when was this valid syntax?

2012-09-09 Thread Ellery Newcomer
On 09/08/2012 09:01 AM, Timon Gehr wrote: On 09/08/2012 04:11 PM, Ellery Newcomer wrote: alias enum int e; It is valid according to the grammar I don't believe you. Show me the derivation.

Re: bigint - python long

2012-09-10 Thread Ellery Newcomer
On 09/05/2012 07:10 PM, bearophile wrote: NumPy arrays == D arrays I've been thinking about this one a bit more, and I am not sure it belongs in pyd. First, the conversion is not symmetric. One can convert a numpy.ndarray to a d array like so: PyObject* ndarray; double[][] matrix =

Re: bigint - python long

2012-09-10 Thread Ellery Newcomer
On 09/10/2012 12:11 PM, bearophile wrote: I understand. The point of Pyd is to interface D and Python, while NumPy is something external. So if you find difficulties just keep it out. Adding it later is possible. Thing is, pyd will convert a ndarray to d array already, it just won't do it

Re: bigint - python long

2012-09-11 Thread Ellery Newcomer
On 09/10/2012 10:50 PM, Russel Winder wrote: Python 2 and Python 3 are totally different in this regard. I don't have a obvious proposal to make to avoid having PyD for Python 2 and a different PyD for Python 3, but the six package might have some hints as it is intended to support creating

Re: scons and D: flags

2012-09-11 Thread Ellery Newcomer
On 09/11/2012 11:42 AM, Russel Winder wrote: On Tue, 2012-09-11 at 10:40 -0700, Ellery Newcomer wrote: how do you pass compiler flags through scons? e.g. -unittest, -property Depends on the SConstruct (and optionally SConscript), but you need to get a list of the options into the DFLAGS

Re: bigint - python long

2012-09-11 Thread Ellery Newcomer
On 09/05/2012 07:10 PM, bearophile wrote: Ellery Newcomer: Yep. Oh, good. Have any suggestions for supported conversion out of the box? There are several important cases, like: Some D lazy ranges == Python lazy iterators/generators array.array == D arrays NumPy arrays == D arrays

ctfe slicing

2012-09-17 Thread Ellery Newcomer
does it still copy the slice?

undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-17 Thread Ellery Newcomer
With a deimos header file, I expect to need only to pass the dpath to it and the library it references to dmd, e.g. stuff - deimos - python - Python.d dmd otherstuff -Istuff -L-lpython2.7 I should not need to actually pass stuff/deimos/python/Python.d to dmd. Unfortunately, that is

Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-17 Thread Ellery Newcomer
On 09/17/2012 04:16 PM, Ellery Newcomer wrote: With a deimos header file, I expect to need only to pass the dpath to it and the library it references to dmd, e.g. stuff - deimos - python - Python.d dmd otherstuff -Istuff -L-lpython2.7 I should not need to actually pass stuff/deimos

Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-19 Thread Ellery Newcomer
On 09/19/2012 01:30 PM, Jesse Phillips wrote: On Tuesday, 18 September 2012 at 04:56:27 UTC, Ellery Newcomer wrote: In a templated function in my header file, I make a call to enforce. When the function is not called [instantiated], all is well. When the function is called, it generates yon

function is not function

2012-09-21 Thread Ellery Newcomer
solution is to use std.traits, but can someone explain this to me? import std.stdio; void main() { auto a = { writeln(hi); }; pragma(msg, typeof(a)); // void function() pragma(msg, is(typeof(a) == delegate)); // nope! pragma(msg, is(typeof(a) == function)); // nope!

Re: function is not function

2012-09-21 Thread Ellery Newcomer
On 09/21/2012 01:10 PM, Ali Çehreli wrote: You have probably tried the following already: pragma(msg, is(typeof(a) == void function())); No, but that's also not very generic. void main() { auto a = { return 1; }; pragma(msg, is(typeof(a) == void function())); //

Re: function is not function

2012-09-21 Thread Ellery Newcomer
On 09/21/2012 01:17 PM, bearophile wrote: pragma(msg, is(typeof(a) == function)); // nope! code in pyd suggests this evaluated to true once upon a time.

optlink and weak symbols

2012-10-16 Thread Ellery Newcomer
I am interfacing with some C code [python.dll], which has some structs declared like so: PyTypeObject PyType_Type; I wish to be able to link to PyType_Type like so: extern(C) __gshared PyTypeObject PyType_Type; in linux, I can do exactly that, but optlink is generating a new memory location

Re: optlink and weak symbols

2012-10-17 Thread Ellery Newcomer
On 10/16/2012 11:16 PM, Jacob Carlborg wrote: You need to declare the variable as extern if it's defined in the C code: extern(C) extern __gshared PyTypeObject PyType_Type; http://dlang.org/interfaceToC.html#C%20Globals nice tip, but adding extern doesn't change link behavior at all.

Re: optlink and weak symbols

2012-10-18 Thread Ellery Newcomer
On 10/17/2012 11:41 PM, Jacob Carlborg wrote: On 2012-10-18 05:12, Ellery Newcomer wrote: nice tip, but adding extern doesn't change link behavior at all. Hmm, are you linking with the DLL (the import library) ? In not, you need to use dlopen, or what the corresponding Windows function

Re: optlink and weak symbols

2012-10-18 Thread Ellery Newcomer
On 10/18/2012 11:36 AM, Jacob Carlborg wrote: On 2012-10-18 13:55, Ellery Newcomer wrote: I am using python27_digitalmars.lib, which is generated from libs\python27.lib with coffimplib, and it is linking my executables with python.dll. Ok. Do you know how the corresponding C code would look

Re: SFML-D working example

2012-10-20 Thread Ellery Newcomer
On Saturday, 20 October 2012 at 20:25:09 UTC, Zhenya wrote: Hi!I have a little problem with building example.I downloaded SFML-D working example at this adress https://github.com/krzat/SFML-D/downloads.But then I tried to build it myself,I received many errors like that: Symbol Undefined

Re: Ranges and Library and toir.c internal error

2012-10-31 Thread Ellery Newcomer
On 10/31/2012 04:35 PM, StupidIsAsStupidDoes wrote: The char call doesn't compile and I get a toir.c internal error. On a recent dmd build from github, I don't get any ICE, so it may have been fixed. I do get some disconcerting type deduction failures, though... I'm still trying to get

shared lib and __data_start

2012-11-11 Thread Ellery Newcomer
Playing with pypy. I build me a shared library with ldc and try to access it via ctypes, and it gives me a /usr/lib64/libdruntime-ldc.so.60: undefined symbol: __data_start So the natural question is what is __data_start? Am I right in assuming it is a symbol that points to the data section

Re: shared lib and __data_start

2012-11-12 Thread Ellery Newcomer
On 11/12/2012 12:54 AM, Johannes Pfau wrote: How did you link that shared lib? With ld, gcc or g++? If you link via gcc it pulls in some special object files, one of these could contain __data_start. g++ pulls in some more object files for c++ support, but that's probably not necessary here.

safety of move

2012-11-27 Thread Ellery Newcomer
I find myself using [abusing?] move lately: import std.algorithm; import std.stdio; struct A { const(int) i; int j; int k; } void main() { A* a = new A(); // pretend this is malloc or something // *a = A(1) A a2 = A(1); move(a2, *a); A[] arr = new A[](2);

Re: PyD status and tutorials

2013-04-03 Thread Ellery Newcomer
Hi. Yes, the bitbucket repo is up to date (or was, a month ago. I've been a bit busy..). It looks like you want to embed python into D, in which case the situation is better than the main page suggests. Pyd supports * CPython - 2.4 through 3.2 * dmd 2.060+ * ldc {whatever is based on dmdfe

Re: PyD status and tutorials

2013-04-03 Thread Ellery Newcomer
On 04/03/2013 05:58 PM, Ellery Newcomer wrote: Somehow I still haven't gotten around to building gdc yet, but supporting gdc for embedding python would just be a matter of updating the CeleriD configurations and ensuring everything links. Might as well do that tonight. Stay tuned. Actually

foo is not an lvalue

2013-04-17 Thread Ellery Newcomer
void main() { foo!(); } template foo( ) { void foo() { auto a = (foo); } } dmd from master (a few days ago) gives: Error: foo()() is not an lvalue wut?

Re: foo is not an lvalue

2013-04-17 Thread Ellery Newcomer
On 04/17/2013 06:02 PM, bearophile wrote: Ellery Newcomer: dmd from master (a few days ago) gives: Error: foo()() is not an lvalue wut? I think you need to write: auto a = foo!(); Bye, bearophile wouldn't that be infinitely recursing template instantiation?

equivalent of __attribute__((constructor))

2013-05-22 Thread Ellery Newcomer
In the context of shared libraries, with gcc __attribute__((constructor)) void myfunc() { .. } is used to make myfunc be called upon loading of the shared library (you can tell I know what I am talking about here) via some field in the ELF headers, apparently. Is there any way to get our

Re: equivalent of __attribute__((constructor))

2013-05-23 Thread Ellery Newcomer
On 05/22/2013 11:18 PM, Jacob Carlborg wrote: On 2013-05-23 06:27, Ellery Newcomer wrote: I don't know if it's automatically linked but here you go: https://github.com/D-Programming-Language/druntime/blob/master/src/rt/dylib_fixes.c posix.mak makes no reference to it

Re: equivalent of __attribute__((constructor))

2013-05-24 Thread Ellery Newcomer
On 05/23/2013 11:39 PM, Jacob Carlborg wrote: On 2013-05-24 02:02, Ellery Newcomer wrote: posix.mak makes no reference to it Then I guess it's not used. Just compile it manually and link with it. I don't think that D has anything corresponding to __attribute__((constructor)). I also see

more fun with ubuntu

2013-05-25 Thread Ellery Newcomer
I have a project here which fails on link on ubuntu 12.10. It give undefined reference errors for functions in libdl and libutil. For some reason, ld won't cooperate unless you pass -ldl -lutil at the end of the command string. Holy Ubuntu! I can't seem to get dmd to do this though. Any

Re: more fun with ubuntu

2013-05-26 Thread Ellery Newcomer
On 05/25/2013 10:20 PM, estew wrote: On Sunday, 26 May 2013 at 05:01:10 UTC, Ellery Newcomer wrote: I have a project here which fails on link on ubuntu 12.10. It give undefined reference errors for functions in libdl and libutil. For some reason, ld won't cooperate unless you pass -ldl -lutil

Re: more fun with ubuntu

2013-05-26 Thread Ellery Newcomer
On 05/26/2013 07:55 AM, Jesse Phillips wrote: On Sunday, 26 May 2013 at 05:01:10 UTC, Ellery Newcomer wrote: I have a project here which fails on link on ubuntu 12.10. It give undefined reference errors for functions in libdl and libutil. For some reason, ld won't cooperate unless you pass

  1   2   3   4   >