Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 01:11:22 UTC, Jonathan M Davis wrote: On Sunday, December 16, 2012 16:57:31 Walter Bright wrote: I've done such (precompiled headers for C++), I've done .di files, and I've done Java bytecode. .di files are superior in nearly every way. Given that .di don't work

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Sunday, 16 December 2012 at 23:07:04 UTC, Jonathan M Davis wrote: On Sunday, December 16, 2012 23:32:38 Andrej Mitrovic wrote: On 12/16/12, Paulo Pinto wrote: > If modules are used correctly, a .di should be created with > the public > interface and everything else is already in binary form

Re: Compilation strategy

2012-12-17 Thread Adam Wilson
On Sun, 16 Dec 2012 23:08:49 -0800, Jonathan M Davis wrote: On Sunday, December 16, 2012 22:58:26 Walter Bright wrote: On 12/16/2012 10:27 PM, Jonathan M Davis wrote: > If the entire .d file is there in binary form, then I don't see why it > wouldn't work. .di files fail because they strip o

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 07:39:57 UTC, deadalnix wrote: On Monday, 17 December 2012 at 07:27:49 UTC, Jonathan M Davis wrote: On Monday, December 17, 2012 08:24:27 deadalnix wrote: On Monday, 17 December 2012 at 00:57:30 UTC, Walter Bright wrote: > It doesn't hide the source in any effect

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 07:56:26 UTC, Jonathan M Davis wrote: On Monday, December 17, 2012 08:39:56 deadalnix wrote: On Monday, 17 December 2012 at 07:27:49 UTC, Jonathan M Davis wrote: > On Monday, December 17, 2012 08:24:27 deadalnix wrote: >> On Monday, 17 December 2012 at 00:57:30 UT

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 08:07:10 UTC, Paulo Pinto wrote: As for not being used in companies, well my employer does consulting work for Fortune 500 companies. You only have JVM and .NET everywhere, with anything else considered legacy or stuff that kids play with. That can't be true,

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 08:02:12 UTC, Adam Wilson wrote: On Sun, 16 Dec 2012 23:08:49 -0800, Jonathan M Davis wrote: On Sunday, December 16, 2012 22:58:26 Walter Bright wrote: On 12/16/2012 10:27 PM, Jonathan M Davis wrote: > If the entire .d file is there in binary form, then I don't

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 08:02:12 UTC, Adam Wilson wrote: With respect to those who hold one ideology above others, trying to impose those ideals on another is a great way to ensure animosity. What a business does with their code is entirely up to them, and I would guess that even Richard

Re: Compilation strategy

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 07:56:01 UTC, Paulo Pinto wrote: Similar solutions work for Ada, Modula-3, F#, Haskell, OCaml, just to cite a few languages with generic types and modules. So the issue is how .di files are implemented, not the general concept. -- Paulo If we want to allow

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/16/2012 11:08 PM, Jonathan M Davis wrote: The concept of .di files and their ilk is fundamentally broken precisely because they're trying to strip what's in the file. That's what causes the problems. What is and what isn't in a .di is entirely under the user's control. Object files are

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/16/2012 11:00 PM, H. S. Teoh wrote: Of course, that provide zero theoretical security, because anyone who's desperate enough to reverse-engineer your library will do it even if they only have the final executable. But the casual onlooker factor is not to be dismissed when dealing with manag

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/16/2012 11:24 PM, deadalnix wrote: On Monday, 17 December 2012 at 00:57:30 UTC, Walter Bright wrote: It doesn't hide the source in any effective way. There are enough Java byte code => source translators around to prove that. It only takes one such tool to exist (and it's especially easy t

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/16/2012 11:36 PM, Jacob Carlborg wrote: If a function needs to be template, inline or CTFE it can be manually put in the .di file. I assume that will work. Of course it will. In fact, you can: copy foo.d foo.di and it will always work. .di is really nothing more than a naming convent

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/16/2012 11:27 PM, Jacob Carlborg wrote: On 2012-12-16 22:34, Walter Bright wrote: No "seem" about it! Ok, I see. I'm just taking some precautions since I don't know what you're thinking. I know. I was just taking the opportunity to clarify.

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 12:24 AM, Rob T wrote: If we want to allow D to fit into various niche markets overlooked by C++, for added security, encryption could be added, where the person compiling encrypted .di files would have to supply a key. That would work only for certain situations, not for mass distr

Re: Integer semantic in D, what are the tradeoff ? Do we have numbers ?

2012-12-17 Thread Walter Bright
On 12/16/2012 2:52 PM, deadalnix wrote: How much performances are sacrificed compared to a looser integer semantic (I frankly don't know), and how much programs benefit from it (I suspect very little, but I may be wrong) ? Recall that C is standardized to work on 1's complement machines, which

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 08:34:26 UTC, Walter Bright wrote: On 12/16/2012 11:24 PM, deadalnix wrote: On Monday, 17 December 2012 at 00:57:30 UTC, Walter Bright wrote: It doesn't hide the source in any effective way. There are enough Java byte code => source translators around to prove tha

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 08:11:18 UTC, deadalnix wrote: On Monday, 17 December 2012 at 08:07:10 UTC, Paulo Pinto wrote: As for not being used in companies, well my employer does consulting work for Fortune 500 companies. You only have JVM and .NET everywhere, with anything else considered

Re: Compilation strategy

2012-12-17 Thread eles
On Monday, 17 December 2012 at 07:09:46 UTC, Jonathan M Davis wrote: On Sunday, December 16, 2012 22:58:26 Walter Bright wrote: On 12/16/2012 10:27 PM, Jonathan M Davis wrote: > If the entire .d file is there in binary form, then I don't > see why it > wouldn't work. .di files fail because they

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 08:21:43 UTC, Walter Bright wrote: On 12/16/2012 11:08 PM, Jonathan M Davis wrote: The concept of .di files and their ilk is fundamentally broken precisely because they're trying to strip what's in the file. That's what causes the problems. What is and what isn

explicit castable to bool for predicate restraints?

2012-12-17 Thread monarch_dodra
I had a discussion a little while ago, regarding the validation of predicates. Basically, fearing that someone may write a predicate that returned some weird user-defined type that wasn't bool-able, I wrote: // void foo(Range, S)(Range r, S s) if (isForwardRange!Range && is(typeof(r.f

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 1:15 AM, Paulo Pinto wrote: http://www.hopperapp.com/ I really like the way it generates pseudo-code and basic block graphs out of instruction sequences. I looked at their examples. Sorry, that's just step one of reverse engineering an object file. It's a loong way from turn

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 12:55 AM, Paulo Pinto wrote: Assembly is no different than reversing any other type of bytecode: This is simply not true for Java bytecode. About the only thing you lose with Java bytecode are local variable names. Full type information and the variables themselves are intact.

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 09:29:28 UTC, Walter Bright wrote: On 12/17/2012 1:15 AM, Paulo Pinto wrote: http://www.hopperapp.com/ I really like the way it generates pseudo-code and basic block graphs out of instruction sequences. I looked at their examples. Sorry, that's just step one o

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 12:54 AM, deadalnix wrote: More seriously, I understand that in some cases, di are interesting. Mostly if you want to provide a closed source library to be used by 3rd party devs. You're missing another major use - encapsulation and isolation, reducing the dependencies between pa

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 09:37:48 UTC, Walter Bright wrote: On 12/17/2012 12:55 AM, Paulo Pinto wrote: Assembly is no different than reversing any other type of bytecode: This is simply not true for Java bytecode. About the only thing you lose with Java bytecode are local variable name

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 1:45 AM, Paulo Pinto wrote: Pencil and paper? Yes, as I wrote, you can reverse engineer object files, instruction by instruction, by an expert with pencil and paper. You can't make a tool to do it automatically. You *can* make such a tool for Java bytecode files, and such free

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 09:19, deadalnix wrote: I can't stop myself laughing at people that may think any business can be based on java, PHP or C#. That is a mere dream ! Such technology will simply never get used in companies, because bytecode can be decoded ! Yet there are a lot of business that are b

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 1:35 AM, Paulo Pinto wrote: It suffices to get the general algorithm behind the code, and that is impossible to hide, unless the developer resorts to cryptography. I'll say again, with enough effort, an expert *can* decompile object files by hand. You can't make a tool to do that

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 09:21, Walter Bright wrote: I know what I'm talking about with this. The only time they get reverse engineered is when somebody really really REALLY wants to do it, an expert is necessary to do the job, and it's completely impractical for larger sets of files. You cannot build a to

Re: Compilation strategy

2012-12-17 Thread Iain Buclaw
On 17 December 2012 09:29, Walter Bright wrote: > On 12/17/2012 1:15 AM, Paulo Pinto wrote: > >> http://www.hopperapp.com/ >> >> I really like the way it generates pseudo-code and basic block graphs out >> of >> instruction sequences. >> > > I looked at their examples. Sorry, that's just step one

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 10:13, eles wrote: WRT to all opinions above (ie: binary vs text, what to put etc.) I had some reflection on that some time ago: how about bundling a "header" file (that would be the .di file) and a binary file (the compiled .d file, that is the .obj file) into a single .zip (albe

__traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
Either I do not understand the work of this feature or it is an obvious bug: import std.stdio; import std.conv; void main() { enum string expr = "DMD compiles this garbage ... i - \" $$$"; enum bool bTest = __traits(compiles, expr); enum bool bTest2 = __traits(compi

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread mist
Argument is supposed to be not a string but plain D code. And it is pretty logical that string literal is a valid compiling D code, as well as an existing variable name. On Monday, 17 December 2012 at 10:42:38 UTC, Pavel wrote: Either I do not understand the work of this feature or it is an ob

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Simen Kjaeraas
On 2012-42-17 11:12, Pavel wrote: Either I do not understand the work of this feature or it is an obvious bug: import std.stdio; import std.conv; void main() { enum string expr = "DMD compiles this garbage ... i - \" $$$"; enum bool bTest = __traits(compiles, ex

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread monarch_dodra
On Monday, 17 December 2012 at 10:42:38 UTC, Pavel wrote: Either I do not understand the work of this feature or it is an obvious bug: import std.stdio; import std.conv; void main() { enum string expr = "DMD compiles this garbage ... i - \" $$$"; enum bool bTest = __t

Re: Compilation strategy

2012-12-17 Thread mist
AFAIK those are more like Windows API & ABI reverse engineered and reimplemented and that is a huge difference. On Monday, 17 December 2012 at 10:01:35 UTC, Jacob Carlborg wrote: On 2012-12-17 09:21, Walter Bright wrote: I know what I'm talking about with this. The only time they get reverse

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 10:59:38 UTC, mist wrote: Argument is supposed to be not a string but plain D code. And it is pretty logical that string literal is a valid compiling D code, as well as an existing variable name. On Monday, 17 December 2012 at 10:42:38 UTC, Pavel wrote: Either I

Curl and redirects

2012-12-17 Thread Chris
Hi, I am trying to log into a web application using curl. The web app sends a 302 redirect after posting the data (successful log in - I can see the successful login in the web apps log files). Maybe I am doing something wrong - but I have just copied the code of _basicHTTP form curl.d to my own

Re: Compilation strategy

2012-12-17 Thread eles
Sounds a lot like frameworks and other type of bundles on Mac OS X. A framework is a folder, with the .framework extension, containing a dynamic library, header files and all other necessary resource files like images and so on. I don't know about such frameworks, but the idea that these kind

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
On Monday, 17 December 2012 at 09:58:28 UTC, Walter Bright wrote: On 12/17/2012 1:35 AM, Paulo Pinto wrote: It suffices to get the general algorithm behind the code, and that is impossible to hide, unless the developer resorts to cryptography. I'll say again, with enough effort, an expert *ca

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 11:03:01 UTC, Simen Kjaeraas wrote: On 2012-42-17 11:12, Pavel wrote: Either I do not understand the work of this feature or it is an obvious bug: import std.stdio; import std.conv; void main() { enum string expr = "DMD compiles this garbage ... i - \"

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 12:04:30 UTC, Pavel wrote: On Monday, 17 December 2012 at 11:03:01 UTC, Simen Kjaeraas wrote: On 2012-42-17 11:12, Pavel wrote: Either I do not understand the work of this feature or it is an obvious bug: import std.stdio; import std.conv; void main() { enu

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 10:58, Walter Bright wrote: Google "convert object file to C" A few seconds on Google resulted in this: http://www.hex-rays.com/products/decompiler/index.shtml -- /Jacob Carlborg

Re: Compilation strategy

2012-12-17 Thread jerro
If we want to allow D to fit into various niche markets overlooked by C++, for added security, encryption could be added, where the person compiling encrypted .di files would have to supply a key. That would work only for certain situations, not for mass distribution, but it may be useful to e

Re: Compilation strategy

2012-12-17 Thread Iain Buclaw
On 17 December 2012 12:54, jerro wrote: > If we want to allow D to fit into various niche markets overlooked by C++, >> for added security, encryption could be added, where the person compiling >> encrypted .di files would have to supply a key. That would work only for >> certain situations, not

Re: Compilation strategy

2012-12-17 Thread jerro
It's not as if phobos would be distributed that way. And even it if was, then there'd be an uproar and a fork of the project. I don't think that the FSF would be to happy about adding a front end with DRM support to GCC, even if no encrypted libraries would be added along with it. Of course

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread d coder
Ok. It seems to work with allMembers/getMember traits combination. But should it work with tupleof or not? Regards - Puneet

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 12:20, eles wrote: I don't know about such frameworks, but the idea that these kind of files should be handled by the compiler, not by the operating system. They are not meant to be applications, but libraries. They are handled by the compiler. GCC has the -framework flag. https

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 12:55, d coder wrote: template Tuple(T...) { alias T Tuple; } enum Bar; class Foo { @Bar int a; int b; } void main() { Foo foo = new Foo; foreach(ref l; foo.tupleof) { alias Tuple!(__traits(getAttributes, l)) tp; pragma(msg, tp);// prints nothing }

Re: Curl and redirects

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 12:24, Chris wrote: Hi, I am trying to log into a web application using curl. The web app sends a 302 redirect after posting the data (successful log in - I can see the successful login in the web apps log files). Maybe I am doing something wrong - but I have just copied the code

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread David Nadlinger
On Monday, 17 December 2012 at 14:15:42 UTC, Pavel wrote: It seems to me handier to use it from templates manipulating code as strings than usage of __traits(compiles,...) directly. I'm not quite sure how this is nicer to use than »enum foo = __traits(compiles, { mixin(bar); });«, but tastes d

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 12:20:23 UTC, Pavel wrote: Oops, bad idea - it will work only for self-contained code but will not work when code references some variables from current scope. Template mixin helps to solve the issue, so the utility template can be: mixin template Compiles(st

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 14:18:25 UTC, David Nadlinger wrote: On Monday, 17 December 2012 at 14:15:42 UTC, Pavel wrote: It seems to me handier to use it from templates manipulating code as strings than usage of __traits(compiles,...) directly. I'm not quite sure how this is nicer to use

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread d coder
> Try something like this: > > foreach (i, dummy; foo.tupleof) > { > alias Tuple!(__traits(getAttributes, foo.tupleof[i])) tp; > pragma(msg, tp); > } > > Ok so that is because ref does not work with foreach on tuples. Somehow I thought that got fixed. Anyways, with your suggestion I get a s

Re: __traits(compiles, ...) returns true for syntactic garbage and for semantically incorrect code

2012-12-17 Thread Pavel
On Monday, 17 December 2012 at 14:29:49 UTC, Pavel wrote: Yup, it is only IMHO :) Useful for forgetful people as me: because without the utility template it is easy to forget to use 'mixin' and to put the statements in the block. Corrected template to work with expressions too: mixin template

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 4:38 AM, Jacob Carlborg wrote:> On 2012-12-17 10:58, Walter Bright wrote: > >> Google "convert object file to C" > > A few seconds on Google resulted in this: > > http://www.hex-rays.com/products/decompiler/index.shtml > hex-rays is an interactive tool. It's "decompile" to things l

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 3:02 AM, mist wrote: AFAIK those are more like Windows API & ABI reverse engineered and reimplemented and that is a huge difference. Yup. I'd be very surprised if they were based on decompiled Windows executables. Not only that, I didn't say decompiling by hand was impossible. I

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 15:44, d coder wrote: Error: first argument is not a symbol tuple(false) Regards - Puneet Then I don't know. -- /Jacob Carlborg

Re: Compilation strategy

2012-12-17 Thread Jacob Carlborg
On 2012-12-17 16:01, Walter Bright wrote: Yup. I'd be very surprised if they were based on decompiled Windows executables. Not only that, I didn't say decompiling by hand was impossible. I repeatedly said that it can be done by an expert with a lot of patience. But not automatically. Java .cla

Timsort vs some others

2012-12-17 Thread bearophile
Regarding the recent Phobos improvements that introduce a Timsort: http://forum.dlang.org/thread/50c8a4e67f79_3fdd19b7ae8146...@sh3.rs.github.com.mail I have found a blog post that compares the performance of Timsort, Smoothsort, and std::stable_sort: http://www.altdevblogaday.com/2012/06/15/

Re: Curl and redirects

2012-12-17 Thread Chris
Hi Jacob, thanks for your quick response, On Monday, 17 December 2012 at 14:12:26 UTC, Jacob Carlborg wrote: A guess: when using the command line tool one needs to explicit enable redirects, is there something similar in the API? I haven't found one - also redirects do work with get reques

Re: Next focus: PROCESS

2012-12-17 Thread Jesse Phillips
On Monday, 17 December 2012 at 07:04:29 UTC, deadalnix wrote: This is exactly to handle this kind of grunt work that computer and software were invented. Yep, and why Git handles merging so well. But it doesn't know which branches you are merging into until you tell it. So you can go ahead a

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread Walter Bright
On 12/17/2012 3:55 AM, d coder wrote: So my question is: Is this a bug in DMD, or am I doing something plainly wrong? You're doing something wrong. Consider: @Bar int i = 3; int x = i; The UDA does not get transferred to x. This is why your loop: foreach(ref l; foo.tupleof) does not transfe

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread d coder
On Mon, Dec 17, 2012 at 9:56 PM, Walter Bright wrote: > On 12/17/2012 3:55 AM, d coder wrote: > >> So my question is: Is this a bug in DMD, or am I doing something plainly >> wrong? >> > > You're doing something wrong. Consider: > > @Bar int i = 3; > int x = i; > > The UDA does not get transferred

Re: Next focus: PROCESS

2012-12-17 Thread foobar
On Sunday, 16 December 2012 at 22:43:13 UTC, David Nadlinger wrote: On Sunday, 16 December 2012 at 22:18:14 UTC, SomeDude wrote: This sounds to me like a bad idea. And indeed, I haven't heard of any other project doing this. Having release branches is a common practice for many open source pr

Re: Next focus: PROCESS

2012-12-17 Thread foobar
On Sunday, 16 December 2012 at 23:18:20 UTC, Jonathan M Davis wrote: On Sunday, December 16, 2012 11:23:57 Andrei Alexandrescu wrote: Right now we're using a tagging system for releases, implying releases are just snapshots of a continuum. But what we need is e.g. to be able to patch 2.065 to f

Re: Next focus: PROCESS

2012-12-17 Thread David Nadlinger
On Monday, 17 December 2012 at 17:31:45 UTC, foobar wrote: Huh? Both LLVM and KDE are developed on *subversion* and as such their work-flows are not applicable. Not to mention that KDE is vastly different in concept and goals than a programming language. Subversion is conceptually very diffe

Re: Next focus: PROCESS

2012-12-17 Thread foobar
On Monday, 17 December 2012 at 17:45:12 UTC, David Nadlinger wrote: On Monday, 17 December 2012 at 17:31:45 UTC, foobar wrote: Huh? Both LLVM and KDE are developed on *subversion* and as such their work-flows are not applicable. Not to mention that KDE is vastly different in concept and goals

Re: SCons D tool: need help with building static library

2012-12-17 Thread Russel Winder
On Sat, 2012-12-15 at 11:19 -0800, H. S. Teoh wrote: […] > But I have trouble when I try to link to it. For some reason, the dmd > link command isn't picking up the value of LIBPATH, so the linker can't > find the library. Here's a reduced test case: > > #!/usr/src/scons/russel/scons_d_tooli

Re: Curl and redirects

2012-12-17 Thread Vladimir Panteleev
On Monday, 17 December 2012 at 11:24:41 UTC, Chris wrote: std.net.curl.CurlException@std/net/curl.d(3348): Send failed since rewinding of the data stream failed on handle 7FCABA819400 I believe I've fixed this problem in this pull request: https://github.com/D-Programming-Language/phobos/pull/8

Re: SCons D tool: need help with building static library

2012-12-17 Thread H. S. Teoh
On Mon, Dec 17, 2012 at 06:32:57PM +, Russel Winder wrote: > On Sat, 2012-12-15 at 11:19 -0800, H. S. Teoh wrote: > […] > > But I have trouble when I try to link to it. For some reason, the dmd > > link command isn't picking up the value of LIBPATH, so the linker can't > > find the library. Her

Re: SCons D tool: need help with building static library

2012-12-17 Thread H. S. Teoh
On Mon, Dec 17, 2012 at 11:08:00AM -0800, H. S. Teoh wrote: [...] > Anyway. The command is missing a "-L-L." option. It should read: > > /usr/src/d/dmd/src/dmd -ofprog prog.o -L-L. -L-lmylib > > which passes a "-L." option to the linker to make it search the current > directory for the lib

Re: SCons D tool: need help with building static library

2012-12-17 Thread Russel Winder
On Mon, 2012-12-17 at 11:08 -0800, H. S. Teoh wrote: […] > I'm a GDC/GCC person as well. :-) Except that GDC for my platform is > horribly outdated, so I've had to resort to DMD for my newer projects. > Plus, sometimes I'm testing fixes for Phobos, which often requires the > latest git dmd to even

Re: SCons D tool: need help with building static library

2012-12-17 Thread H. S. Teoh
On Mon, Dec 17, 2012 at 07:28:53PM +, Russel Winder wrote: > On Mon, 2012-12-17 at 11:08 -0800, H. S. Teoh wrote: > […] > > > I'm a GDC/GCC person as well. :-) Except that GDC for my platform is > > horribly outdated, so I've had to resort to DMD for my newer > > projects. Plus, sometimes I'm

Re: SCons D tool: need help with building static library

2012-12-17 Thread David Nadlinger
On Monday, 17 December 2012 at 19:29:04 UTC, Russel Winder wrote: I tried this on spec earlier and got: |> dmd -ofprog prog.o -L-L. -L-lmylib /usr/lib/x86_64-linux-gnu/libphobos2.a(dmain2_45f_1a5.o): In function `_D2rt6dmain24mainUiPPaZi7runMainMFZv': src/rt/dmain2.d:(.text._D2rt6dmain24mainUiP

Re: SCons D tool: need help with building static library

2012-12-17 Thread Russel Winder
On Mon, 2012-12-17 at 11:37 -0800, H. S. Teoh wrote: […] > I haven't tried LDC yet, though I've heard good things about it. Maybe I > should check it out sometime. I checked out the Git repository and build master/HEAD, but then I am an unstable, bleeding-edge kind of person. > Did you define ma

Re: SCons D tool: need help with building static library

2012-12-17 Thread Russel Winder
On Mon, 2012-12-17 at 20:37 +0100, David Nadlinger wrote: > On Monday, 17 December 2012 at 19:29:04 UTC, Russel Winder wrote: […] > Your program seems to be missing a main() function, the rest is > just noise (DMD emits certain symbols to the main module only). Indeed. I guess I just failed to re

Re: Compilation strategy

2012-12-17 Thread foobar
On Monday, 17 December 2012 at 04:49:46 UTC, Michel Fortin wrote: On 2012-12-17 03:18:45 +, Walter Bright said: Whether the file format is text or binary does not make any fundamental difference. I too expect the difference in performance to be negligible in binary form if you maintain

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
Am 17.12.2012 21:09, schrieb foobar: On Monday, 17 December 2012 at 04:49:46 UTC, Michel Fortin wrote: On 2012-12-17 03:18:45 +, Walter Bright said: Whether the file format is text or binary does not make any fundamental difference. I too expect the difference in performance to be negli

Re: Compilation strategy

2012-12-17 Thread Paulo Pinto
Am 16.12.2012 23:32, schrieb Andrej Mitrovic: On 12/16/12, Paulo Pinto wrote: If modules are used correctly, a .di should be created with the public interface and everything else is already in binary format, thus the compiler is not really parsing everything all the time. A lot of D code tend

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 09:37:48 UTC, Walter Bright wrote: On 12/17/2012 12:55 AM, Paulo Pinto wrote: Assembly is no different than reversing any other type of bytecode: This is simply not true for Java bytecode. About the only thing you lose with Java bytecode are local variable name

Re: Compilation strategy

2012-12-17 Thread deadalnix
On Monday, 17 December 2012 at 09:40:22 UTC, Walter Bright wrote: On 12/17/2012 12:54 AM, deadalnix wrote: More seriously, I understand that in some cases, di are interesting. Mostly if you want to provide a closed source library to be used by 3rd party devs. You're missing another major use

Re: Next focus: PROCESS

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 18:14:54 UTC, foobar wrote: At the moment we may use git commands but really we are still developing on mostly a subversion model. Walter used to accept patches and those were simply replaced by pull requests. There isn't any change in the mental model required to

Re: SCons D tool: need help with building static library

2012-12-17 Thread David Nadlinger
On Monday, 17 December 2012 at 20:09:01 UTC, Russel Winder wrote: Indeed. I guess I just failed to read the message on the grounds it was mentioning stuff I had no interest in. My problem I guess. DMD from Git master should emit an explicit error for this now (by parsing the linker output).

Re: UDA: getAttributes does not play well with topleof

2012-12-17 Thread Walter Bright
On 12/17/2012 8:40 AM, d coder wrote: But Walter, even the code below does not work. Error: first argument is not a symbol tuple(false) That's right, msg is undefined!! template Tuple(T...) { alias T Tuple; } enum Bar; class Foo { @Bar int a; } void main() { Foo foo = new Foo;

Re: Compilation strategy

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 20:31:08 UTC, Paulo Pinto wrote: But if there was interest, I am sure there could be a way to store the template information in the compiled module, while exposing the required type parameters for the template in the .di file, a la Ada. -- Paulo Maybe the focu

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 12:49 PM, deadalnix wrote: Granted, this is still easier than assembly, but you neglected the fact that java is rather simple, where D isn't. It is unlikely that an optimized D bytecode can ever be decompiled in a satisfying way. Please listen to me. You have FULL TYPE INFORMATIO

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 12:51 PM, deadalnix wrote: On Monday, 17 December 2012 at 09:40:22 UTC, Walter Bright wrote: On 12/17/2012 12:54 AM, deadalnix wrote: More seriously, I understand that in some cases, di are interesting. Mostly if you want to provide a closed source library to be used by 3rd party

Re: Compilation strategy

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 12:54:46 UTC, jerro wrote: If we want to allow D to fit into various niche markets overlooked by C++, for added security, encryption could be added, where the person compiling encrypted .di files would have to supply a key. That would work only for certain situat

Re: Compilation strategy

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 21:47:36 UTC, Walter Bright wrote: There is no substantive difference between bytecode and source code, as I've been trying to explain. It is not superior in any way, (other than being shorter, and hence less costly to transmit over the internet). I mentione

Re: Next focus: PROCESS

2012-12-17 Thread foobar
On Monday, 17 December 2012 at 21:03:04 UTC, Rob T wrote: On Monday, 17 December 2012 at 18:14:54 UTC, foobar wrote: At the moment we may use git commands but really we are still developing on mostly a subversion model. Walter used to accept patches and those were simply replaced by pull reques

Re: Compilation strategy

2012-12-17 Thread Dmitry Olshansky
12/18/2012 12:34 AM, Paulo Pinto пишет: Am 17.12.2012 21:09, schrieb foobar: On Monday, 17 December 2012 at 04:49:46 UTC, Michel Fortin wrote: On 2012-12-17 03:18:45 +, Walter Bright said: Whether the file format is text or binary does not make any fundamental difference. I too expect

Re: Next focus: PROCESS

2012-12-17 Thread foobar
On Monday, 17 December 2012 at 22:02:45 UTC, foobar wrote: On Monday, 17 December 2012 at 21:03:04 UTC, Rob T wrote: On Monday, 17 December 2012 at 18:14:54 UTC, foobar wrote: At the moment we may use git commands but really we are still developing on mostly a subversion model. Walter used to

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 1:53 PM, Rob T wrote: I mentioned in a previous post that we should perhaps focus on making the .di concept more efficient rather than focus on obfuscation. We're not going to do obfuscation, because as I explained such cannot work, and we shouldn't do a disservice to users by pr

Re: Compilation strategy

2012-12-17 Thread Andrej Mitrovic
On 12/17/12, Walter Bright wrote: > I have toyed with the idea many times, however, of having dmd support zip > files. I think such a feature is better suited for RDMD. Then many other compilers would benefit, since RDMD can be used with GDC and LDC.

Re: Compilation strategy

2012-12-17 Thread bearophile
Walter Bright: dmd foo.zip or: dmd myfile ThirdPartyLib.zip and have it work. The advantage here is simply that everything can be contained in one simple file. This was discussed a lot of time ago (even using a "rock" suffix for those zip files) and it seems a nice idea. Bye, bear

Re: Compilation strategy

2012-12-17 Thread Walter Bright
On 12/17/2012 2:08 PM, Dmitry Olshansky wrote: I really loved the way Turbo Pascal units were made. I wish D go the same route. Object files would then be looked at as minimal and stupid variation of module where symbols are identified by mangling (not plain meta data as (would be) in module) an

Re: Compilation strategy

2012-12-17 Thread foobar
On Monday, 17 December 2012 at 22:12:01 UTC, Walter Bright wrote: On 12/17/2012 1:53 PM, Rob T wrote: I mentioned in a previous post that we should perhaps focus on making the .di concept more efficient rather than focus on obfuscation. We're not going to do obfuscation, because as I explaine

Re: Next focus: PROCESS

2012-12-17 Thread Rob T
On Monday, 17 December 2012 at 22:10:12 UTC, foobar wrote: I forgot to explain that the multiple roots is applicable to D as well in that we have there fully working compilers - LDC, GDC and DMD. They currently share the same front-end - GDC and LDC merge DMD's code. This situation is also sub

  1   2   >