Re: version: multiple conditions

2015-07-05 Thread Jonathan M Davis via Digitalmars-d
On Saturday, 4 July 2015 at 22:43:40 UTC, Walter Bright wrote: On 7/4/2015 2:24 PM, Joakim wrote: I agree that mistyping and checking a large array of version constants can cause problems It's one reason why this style is recommended: version (linux) { ... } else

Re: version: multiple conditions

2015-07-04 Thread Artur Skawina via Digitalmars-d
On 06/28/15 16:21, Joakim via Digitalmars-d wrote: On Sunday, 28 June 2015 at 13:43:39 UTC, Artur Skawina wrote: On 06/28/15 05:06, Joakim via Digitalmars-d wrote: So you're trying to avoid writing this? version(linux) version(D_LP32) version = valistIsCharPointer; else version(Windows)

Re: version: multiple conditions

2015-07-04 Thread Joakim via Digitalmars-d
On Saturday, 4 July 2015 at 15:04:32 UTC, Artur Skawina wrote: What I was referring to was the use of subtly different identifiers - the original used 'Linux', but your version has 'linux'. Such changes are hard to see even in a four-liner; they are almost impossible to catch in a larger

Re: version: multiple conditions

2015-07-04 Thread Walter Bright via Digitalmars-d
On 7/4/2015 2:24 PM, Joakim wrote: I agree that mistyping and checking a large array of version constants can cause problems It's one reason why this style is recommended: version (linux) { ... } else version (Windows) { ... } else static

Re: version: multiple conditions

2015-07-03 Thread via Digitalmars-d
On Thursday, 2 July 2015 at 14:42:10 UTC, ketmar wrote: that's why my hashtables supports alot of types, including ints, strings, structs and inlined? hm... Hashing isn't type-dependent. You can't really do it well in C with things like extensible physics and sound synthesis. People write

Re: version: multiple conditions

2015-07-03 Thread ketmar via Digitalmars-d
On Fri, 03 Jul 2015 06:11:49 +, Ola Fosheim Grøstad wrote: Nah, it's more like let's solve this in a language where this can be done in a convenient manner and will be used by many people. wait, are you talking about C here? 'cause it's about C. signature.asc Description: PGP signature

Re: version: multiple conditions

2015-07-02 Thread bitwise via Digitalmars-d
On Wed, 01 Jul 2015 02:53:53 -0400, ketmar ket...@ketmar.no-ip.org wrote: On Mon, 29 Jun 2015 11:30:52 -0400, bitwise wrote: IMO, the D community's time would be better spent improving D/C++ interop than trying to make D a systems language. but that interop is excellent now! for, see, if

Re: version: multiple conditions

2015-07-02 Thread via Digitalmars-d
On Wednesday, 1 July 2015 at 14:30:26 UTC, ketmar wrote: so let 'em be in their wonderful C++ world. no need to drag that abomination to other worlds. You can't really write libraries in C if you need inlining to get good performance. Such libraries are usually written in C++. To get those

Re: version: multiple conditions

2015-07-02 Thread David Nadlinger via Digitalmars-d
On Wednesday, 1 July 2015 at 14:30:26 UTC, ketmar wrote: using it as library outside of C++ world is a huge mistake. I can't agree with this. PyQt is the most usable UI toolkit for Python in my experience. - David

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 06:12:26 +, David Nadlinger wrote: On Wednesday, 1 July 2015 at 14:30:26 UTC, ketmar wrote: using it as library outside of C++ world is a huge mistake. I can't agree with this. PyQt is the most usable UI toolkit for Python in my experience. except that python is a

Re: version: multiple conditions

2015-07-02 Thread Walter Bright via Digitalmars-d
On 6/30/2015 8:55 AM, bitwise wrote: Waiiit a minute...reading this again, it seems you are talking about writing code for a single system. In that case, yea, I suppose you can get by without versions. The market in multi-platform mobile apps is not something that should be ignored though. D

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 02:08:58 -0400, bitwise wrote: It is pretty good, but it's the little things, like these: the whole thing i'm talking about is no C++ interop is necessary, eVaR! ;-) signature.asc Description: PGP signature

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 08:15:38 +, Ola Fosheim Grøstad wrote: On Wednesday, 1 July 2015 at 14:30:26 UTC, ketmar wrote: so let 'em be in their wonderful C++ world. no need to drag that abomination to other worlds. You can't really write libraries in C if you need inlining to get good

Re: version: multiple conditions

2015-07-02 Thread Jonathan M Davis via Digitalmars-d
On Thursday, 2 July 2015 at 10:28:16 UTC, ketmar wrote: On Thu, 02 Jul 2015 02:08:58 -0400, bitwise wrote: It is pretty good, but it's the little things, like these: the whole thing i'm talking about is no C++ interop is necessary, eVaR! ;-) Well, you're entitled to your opinion, and

Re: version: multiple conditions

2015-07-02 Thread via Digitalmars-d
On Thursday, 2 July 2015 at 10:29:39 UTC, ketmar wrote: ahem. i don't even know how i managed to do that all the time with static inline in .h files... i'm a black magicman! Doesn't matter what you are, but what language core libraries are written in.

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 11:39:11 +, Ola Fosheim Grøstad wrote: On Thursday, 2 July 2015 at 10:29:39 UTC, ketmar wrote: ahem. i don't even know how i managed to do that all the time with static inline in .h files... i'm a black magicman! Doesn't matter what you are, but what language core

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 11:09:23 +, Jonathan M Davis wrote: Well, you're entitled to your opinion, and you're definitely free to avoid C++ libraries if that what you want, but there are plenty of D users who want good C++ interop (and for some projects, pretty much require it - especially the

Re: version: multiple conditions

2015-07-02 Thread via Digitalmars-d
On Thursday, 2 July 2015 at 11:55:48 UTC, ketmar wrote: ahem. i can. with C. what am i doing wrong? Well, you can't because you don't have templates. The most recent C version have a hacked up version of generics, but who knows if/when Microsoft will implement it. People write core

Re: version: multiple conditions

2015-07-02 Thread ketmar via Digitalmars-d
On Thu, 02 Jul 2015 12:35:18 +, Ola Fosheim Grøstad wrote: On Thursday, 2 July 2015 at 11:55:48 UTC, ketmar wrote: ahem. i can. with C. what am i doing wrong? Well, you can't because you don't have templates. that's why my hashtables supports alot of types, including ints, strings,

Re: version: multiple conditions

2015-07-01 Thread anonymous via Digitalmars-d
On Monday, 15 June 2015 at 10:56:43 UTC, ketmar wrote: if only there is a way to define such enums from command line, akin to - version... +1. predefined versions can be easily set at CT as enum an used with static if() but with this feature is would make more sense.

Re: version: multiple conditions

2015-07-01 Thread rsw0x via Digitalmars-d
On Wednesday, 1 July 2015 at 13:43:27 UTC, Jonathan M Davis wrote: On Wednesday, 1 July 2015 at 11:18:17 UTC, ketmar wrote: On Wed, 01 Jul 2015 10:16:13 +, Ola Fosheim Grøstad wrote: Quite a few niche-libraries are C++ only. throw 'em away, they full of bugs and broken code anyway.

Re: version: multiple conditions

2015-07-01 Thread Jonathan M Davis via Digitalmars-d
On Wednesday, 1 July 2015 at 11:18:17 UTC, ketmar wrote: On Wed, 01 Jul 2015 10:16:13 +, Ola Fosheim Grøstad wrote: Quite a few niche-libraries are C++ only. throw 'em away, they full of bugs and broken code anyway. Qt? AFAIK, it's C++-only, and it's widely considered to be one of

Re: version: multiple conditions

2015-07-01 Thread via Digitalmars-d
On Wednesday, 1 July 2015 at 06:53:53 UTC, ketmar wrote: but that interop is excellent now! for, see, if some library has no C API, only C++ API, authors of that library are heavily brain-damaged, and the troubles library brings will be much greater than any benefits one can get. Quite a few

Re: version: multiple conditions

2015-07-01 Thread ketmar via Digitalmars-d
On Wed, 01 Jul 2015 10:16:13 +, Ola Fosheim Grøstad wrote: Quite a few niche-libraries are C++ only. throw 'em away, they full of bugs and broken code anyway. signature.asc Description: PGP signature

Re: version: multiple conditions

2015-07-01 Thread ketmar via Digitalmars-d
On Wed, 01 Jul 2015 13:43:26 +, Jonathan M Davis wrote: On Wednesday, 1 July 2015 at 11:18:17 UTC, ketmar wrote: On Wed, 01 Jul 2015 10:16:13 +, Ola Fosheim Grøstad wrote: Quite a few niche-libraries are C++ only. throw 'em away, they full of bugs and broken code anyway. Qt?

Re: version: multiple conditions

2015-07-01 Thread ketmar via Digitalmars-d
On Mon, 29 Jun 2015 11:30:52 -0400, bitwise wrote: IMO, the D community's time would be better spent improving D/C++ interop than trying to make D a systems language. but that interop is excellent now! for, see, if some library has no C API, only C++ API, authors of that library are heavily

Re: version: multiple conditions

2015-06-30 Thread Joakim via Digitalmars-d
On Sunday, 28 June 2015 at 13:43:39 UTC, Artur Skawina wrote: On 06/28/15 05:06, Joakim via Digitalmars-d wrote: So you're trying to avoid writing this? version(linux) version(D_LP32) version = valistIsCharPointer; else version(Windows) version = valistIsCharPointer; While your

Re: version: multiple conditions

2015-06-30 Thread Walter Bright via Digitalmars-d
On 6/29/2015 8:30 AM, bitwise wrote: FWIW, I've thought through most of my use cases, and it seems I can do without this feature(both mine and Daniels suggestions). This is mainly because I've decided to write anything close to the system in C++. If/When the day comes that system APIs are

Re: version: multiple conditions

2015-06-30 Thread bitwise via Digitalmars-d
On Mon, 29 Jun 2015 22:30:50 -0400, Walter Bright newshou...@digitalmars.com wrote: On 6/29/2015 8:30 AM, bitwise wrote: FWIW, I've thought through most of my use cases, and it seems I can do without this feature(both mine and Daniels suggestions). This is mainly because I've decided to

Re: version: multiple conditions

2015-06-30 Thread rsw0x via Digitalmars-d
On Tuesday, 30 June 2015 at 02:30:44 UTC, Walter Bright wrote: On 6/29/2015 8:30 AM, bitwise wrote: [...] I don't believe a macro processor is necessary to write systems code, nor do I believe version expressions are, either. so is that a 'no, D will never get a real macro preprocessor'?

Re: version: multiple conditions

2015-06-30 Thread Jonathan M Davis via Digitalmars-d
On Tuesday, 30 June 2015 at 15:55:49 UTC, bitwise wrote: On Tuesday, 30 June 2015 at 02:30:44 UTC, Walter Bright wrote: I don't believe a macro processor is necessary to write systems code, nor do I believe version expressions are, either. Waiiit a minute...reading this again, it seems you

Re: version: multiple conditions

2015-06-30 Thread bitwise via Digitalmars-d
On Tuesday, 30 June 2015 at 02:30:44 UTC, Walter Bright wrote: I don't believe a macro processor is necessary to write systems code, nor do I believe version expressions are, either. Waiiit a minute...reading this again, it seems you are talking about writing code for a single system. In

Re: version: multiple conditions

2015-06-30 Thread bitwise via Digitalmars-d
On Sun, 28 Jun 2015 00:10:28 -0400, Walter Bright newshou...@digitalmars.com wrote: On 6/25/2015 11:06 PM, Daniel Murphy wrote: This pattern does appear frequently in your compiler code, are you for or against seeing it in D? Against. A lot of the compiler code is very, very old, and is

Re: version: multiple conditions

2015-06-30 Thread Joakim via Digitalmars-d
On Tuesday, 30 June 2015 at 16:19:56 UTC, Jonathan M Davis wrote: On Tuesday, 30 June 2015 at 15:55:49 UTC, bitwise wrote: On Tuesday, 30 June 2015 at 02:30:44 UTC, Walter Bright wrote: I don't believe a macro processor is necessary to write systems code, nor do I believe version expressions

Re: version: multiple conditions

2015-06-27 Thread Joakim via Digitalmars-d
On Friday, 26 June 2015 at 06:06:09 UTC, Daniel Murphy wrote: Walter, how about a compromise? If we allow setting versions to boolean expression then it becomes much easier to use it the way you suggest, while still requiring a (hopefully) sensible name and discouraging making a mess. eg

Re: version: multiple conditions

2015-06-27 Thread Walter Bright via Digitalmars-d
On 6/25/2015 11:06 PM, Daniel Murphy wrote: This pattern does appear frequently in your compiler code, are you for or against seeing it in D? Against. A lot of the compiler code is very, very old, and is not representative of modern thinking. I've also been pretty successful at removing that

Re: version: multiple conditions

2015-06-26 Thread Daniel Murphy via Digitalmars-d
Walter Bright wrote in message news:mloslo$1o7v$1...@digitalmars.com... I have yet to see a single case of needing boolean versions that could not be refactored into something much more readable and maintainable that did not use such. Over time, I've gotten rid of most of that stuff from

Re: version: multiple conditions

2015-06-18 Thread via Digitalmars-d
On Thursday, 18 June 2015 at 11:53:31 UTC, ketmar wrote: On Thu, 18 Jun 2015 01:44:08 +, Ola Fosheim Grøstad wrote: On Wednesday, 17 June 2015 at 17:28:51 UTC, ketmar wrote: and `version` isn't a constant. it's a version id. it even lives in it's own name space. For no gain whatsoever.

Re: version: multiple conditions

2015-06-18 Thread ketmar via Digitalmars-d
On Thu, 18 Jun 2015 01:44:08 +, Ola Fosheim Grøstad wrote: On Wednesday, 17 June 2015 at 17:28:51 UTC, ketmar wrote: and `version` isn't a constant. it's a version id. it even lives in it's own name space. For no gain whatsoever. and it can be removed for good if `static if` will be

Re: version: multiple conditions

2015-06-18 Thread ketmar via Digitalmars-d
On Thu, 18 Jun 2015 09:57:19 +, Ola Fosheim Grøstad wrote: Although I think it might be more readable to have and, or etc as operators. This is actually allowed in C++: a b = a and b… i prefer that to and ||, tbh, not because i have pascal/oberon background, but 'cause it's harder

Re: version: multiple conditions

2015-06-18 Thread via Digitalmars-d
On Thursday, 18 June 2015 at 11:51:04 UTC, ketmar wrote: On Thu, 18 Jun 2015 09:57:19 +, Ola Fosheim Grøstad wrote: Although I think it might be more readable to have and, or etc as operators. This is actually allowed in C++: a b = a and b… i prefer that to and ||, tbh, not

Re: version: multiple conditions

2015-06-18 Thread ketmar via Digitalmars-d
On Thu, 18 Jun 2015 17:12:31 +0200, Timon Gehr wrote: On 06/18/2015 01:53 PM, ketmar wrote: On Thu, 18 Jun 2015 01:44:08 +, Ola Fosheim Grøstad wrote: On Wednesday, 17 June 2015 at 17:28:51 UTC, ketmar wrote: and `version` isn't a constant. it's a version id. it even lives in it's

Re: version: multiple conditions

2015-06-18 Thread ketmar via Digitalmars-d
On Thu, 18 Jun 2015 12:19:03 +, Ola Fosheim Grøstad wrote: p.s. and i hate that true converts to 1. in many forth systems true is -1, and it's way better. `acast(int)true` actually works for the most widely used case (when a.sizeof = int.sizeof), for examplt. I'm all for very strict

Re: version: multiple conditions

2015-06-18 Thread Timon Gehr via Digitalmars-d
On 06/18/2015 01:53 PM, ketmar wrote: On Thu, 18 Jun 2015 01:44:08 +, Ola Fosheim Grøstad wrote: On Wednesday, 17 June 2015 at 17:28:51 UTC, ketmar wrote: and `version` isn't a constant. it's a version id. it even lives in it's own name space. For no gain whatsoever. and it can be

Re: version: multiple conditions

2015-06-18 Thread Jacob Carlborg via Digitalmars-d
On 17/06/15 10:03, Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= ola.fosheim.grostad+dl...@gmail.com wrote: Given the direction D2 has taken since D1, I'd say that I'm starting to agree with you that powerful symbolic programming would be the better deal overall. But it would take a major

Re: version: multiple conditions

2015-06-18 Thread via Digitalmars-d
On Wednesday, 17 June 2015 at 17:24:50 UTC, ketmar wrote: On Tue, 16 Jun 2015 03:10:01 -0700, Walter Bright wrote: I have yet to see a single case of needing boolean versions that could not be refactored into something much more readable and maintainable that did not use such. and i have

Re: version: multiple conditions

2015-06-17 Thread via Digitalmars-d
On Wednesday, 17 June 2015 at 17:28:51 UTC, ketmar wrote: and `version` isn't a constant. it's a version id. it even lives in it's own name space. For no gain whatsoever.

Re: version: multiple conditions

2015-06-17 Thread ketmar via Digitalmars-d
On Tue, 16 Jun 2015 03:05:06 -0700, Walter Bright wrote: On 6/14/2015 4:03 AM, ketmar wrote: honestly, if i'll want to have a limited language, i'll take Go. Go doesn't have conditional compilation. you got it! removing a power only 'cause it can be abused is not in a spirit of D,

Re: version: multiple conditions

2015-06-17 Thread ketmar via Digitalmars-d
On Tue, 16 Jun 2015 03:10:01 -0700, Walter Bright wrote: I have yet to see a single case of needing boolean versions that could not be refactored into something much more readable and maintainable that did not use such. and i have yet to see such cases for multiplication operator. it's

Re: version: multiple conditions

2015-06-17 Thread weaselcat via Digitalmars-d
On Wednesday, 17 June 2015 at 17:18:42 UTC, ketmar wrote: On Tue, 16 Jun 2015 03:05:06 -0700, Walter Bright wrote: On 6/14/2015 4:03 AM, ketmar wrote: honestly, if i'll want to have a limited language, i'll take Go. Go doesn't have conditional compilation. you got it! removing a power

Re: version: multiple conditions

2015-06-17 Thread ketmar via Digitalmars-d
On Mon, 15 Jun 2015 22:06:24 +, Ola Fosheim Grøstad wrote: On Monday, 15 June 2015 at 21:59:43 UTC, ketmar wrote: nononono. i smell #define hell from C and all the problems it brings, like careful ordering of #include. Nah. #define does not define constants, but variable macros.

Re: version: multiple conditions

2015-06-17 Thread ketmar via Digitalmars-d
On Wed, 17 Jun 2015 17:25:05 +, weaselcat wrote: sometimes I find 'alias this' quite elegant, such as using alias this to a function. Other times I find it to be a poor hack to get around the lack of struct inheritance. i agree that it has it's uses, but it's still a weird hack. and it

Re: version: multiple conditions

2015-06-17 Thread Jonathan M Davis via Digitalmars-d
On Wednesday, 17 June 2015 at 06:23:15 UTC, Jacob Carlborg wrote: On 2015-06-16 22:36, Jonathan M Davis wrote: Sounds like it's preventing an abuse of operator overloading to me... :) Sounds like it's preventing a perfectly good use case. Or do you prefer AST macros instead :) I prefer

Re: version: multiple conditions

2015-06-17 Thread via Digitalmars-d
On Wednesday, 17 June 2015 at 05:09:54 UTC, Jonathan M Davis wrote: On Tuesday, 16 June 2015 at 20:57:03 UTC, Walter Bright wrote: Use of expression templates in C++ to implement DSLs is probably some of the most awful code ever conceived. A lot of things in C++ are ill-conceived, but

Re: version: multiple conditions

2015-06-17 Thread via Digitalmars-d
On Wednesday, 17 June 2015 at 06:23:15 UTC, Jacob Carlborg wrote: Sounds like it's preventing a perfectly good use case. Or do you prefer AST macros instead :) Given the direction D2 has taken since D1, I'd say that I'm starting to agree with you that powerful symbolic programming would be

Re: version: multiple conditions

2015-06-17 Thread Jacob Carlborg via Digitalmars-d
On 2015-06-16 22:36, Jonathan M Davis wrote: Sounds like it's preventing an abuse of operator overloading to me... :) Sounds like it's preventing a perfectly good use case. Or do you prefer AST macros instead :) -- /Jacob Carlborg

Re: version: multiple conditions

2015-06-17 Thread Jacob Carlborg via Digitalmars-d
On 2015-06-16 22:59, Walter Bright wrote: #define BEGIN { #define END } Freedom! Freedom! Freedom! https://www.youtube.com/watch?feature=player_detailpagev=lEOOZDbMrgE#t=163 And the current approach to operator overload is s much better, preventing all abuse: struct Int { int a;

Re: version: multiple conditions

2015-06-17 Thread Timon Gehr via Digitalmars-d
On 06/17/2015 02:28 PM, Jonathan M Davis wrote: On Wednesday, 17 June 2015 at 06:23:15 UTC, Jacob Carlborg wrote: On 2015-06-16 22:36, Jonathan M Davis wrote: Sounds like it's preventing an abuse of operator overloading to me... :) Sounds like it's preventing a perfectly good use case. Or

Re: version: multiple conditions

2015-06-16 Thread Joakim via Digitalmars-d
On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote: On 6/13/2015 6:51 PM, Steven Schveighoffer wrote: Just use the static if trick. Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it - it turned out to be confusing, buggy, and

Re: version: multiple conditions

2015-06-16 Thread Dennis Ritchie via Digitalmars-d
On Tuesday, 16 June 2015 at 13:16:40 UTC, Ola Fosheim Grøstad wrote: Unfortunately not true, you're adding multiple alias this… Excuse me for what I am trying to avoid overquoting :) You probably refer to CLOS and not proper Lisp. CLOS was adopted as part of the standard ANSI Common Lisp.

Re: version: multiple conditions

2015-06-16 Thread via Digitalmars-d
On Tuesday, 16 June 2015 at 10:39:48 UTC, Dennis Ritchie wrote: On Tuesday, 16 June 2015 at 10:05:05 UTC, Walter Bright wrote: It does not allow multiple inheritance. Unfortunately not true, you're adding multiple alias this… I have often heard from Lisp programmers that the rejection of

Re: version: multiple conditions

2015-06-16 Thread David Nadlinger via Digitalmars-d
On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote: On 6/13/2015 6:51 PM, Steven Schveighoffer wrote: Just use the static if trick. Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it - it turned out to be confusing, buggy, and

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/16/2015 6:28 AM, David Nadlinger wrote: On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote: On 6/13/2015 6:51 PM, Steven Schveighoffer wrote: Just use the static if trick. Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it -

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/16/2015 1:36 PM, Jonathan M Davis wrote: On Tuesday, 16 June 2015 at 19:55:21 UTC, Jacob Carlborg wrote: On 2015-06-16 12:05, Walter Bright wrote: Actually, D does quite a bit of that. For example, it deliberately does not allow to be overloaded separately from . Which has its own

Re: version: multiple conditions

2015-06-16 Thread rsw0x via Digitalmars-d
On Tuesday, 16 June 2015 at 20:59:35 UTC, Walter Bright wrote: On 6/16/2015 1:46 PM, rsw0x wrote: You call it abuse, I call it developer freedom. #define BEGIN { #define END } Freedom! Freedom! Freedom! https://www.youtube.com/watch?feature=player_detailpagev=lEOOZDbMrgE#t=163 #define

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/16/2015 1:46 PM, rsw0x wrote: You call it abuse, I call it developer freedom. #define BEGIN { #define END } Freedom! Freedom! Freedom! https://www.youtube.com/watch?feature=player_detailpagev=lEOOZDbMrgE#t=163

Re: version: multiple conditions

2015-06-16 Thread anonymous via Digitalmars-d
On Tuesday, 16 June 2015 at 21:10:50 UTC, rsw0x wrote: On Tuesday, 16 June 2015 at 21:09:40 UTC, rsw0x wrote: On Tuesday, 16 June 2015 at 20:59:35 UTC, Walter Bright wrote: On 6/16/2015 1:46 PM, rsw0x wrote: You call it abuse, I call it developer freedom. #define BEGIN { #define END }

Re: version: multiple conditions

2015-06-16 Thread rsw0x via Digitalmars-d
On Tuesday, 16 June 2015 at 21:09:40 UTC, rsw0x wrote: On Tuesday, 16 June 2015 at 20:59:35 UTC, Walter Bright wrote: On 6/16/2015 1:46 PM, rsw0x wrote: You call it abuse, I call it developer freedom. #define BEGIN { #define END } Freedom! Freedom! Freedom!

Re: version: multiple conditions

2015-06-16 Thread rsw0x via Digitalmars-d
On Tuesday, 16 June 2015 at 20:36:20 UTC, Jonathan M Davis wrote: On Tuesday, 16 June 2015 at 19:55:21 UTC, Jacob Carlborg wrote: On 2015-06-16 12:05, Walter Bright wrote: Actually, D does quite a bit of that. For example, it deliberately does not allow to be overloaded separately from .

Re: version: multiple conditions

2015-06-16 Thread Jonathan M Davis via Digitalmars-d
On Tuesday, 16 June 2015 at 19:55:21 UTC, Jacob Carlborg wrote: On 2015-06-16 12:05, Walter Bright wrote: Actually, D does quite a bit of that. For example, it deliberately does not allow to be overloaded separately from . Which has its own limitations [1]. [1]

Re: version: multiple conditions

2015-06-16 Thread Jacob Carlborg via Digitalmars-d
On 2015-06-16 12:05, Walter Bright wrote: Actually, D does quite a bit of that. For example, it deliberately does not allow to be overloaded separately from . Which has its own limitations [1]. [1] https://issues.dlang.org/show_bug.cgi?id=14593 -- /Jacob Carlborg

Re: version: multiple conditions

2015-06-16 Thread Daniel Murphy via Digitalmars-d
Walter Bright wrote in message news:mloslo$1o7v$1...@digitalmars.com... I have yet to see a single case of needing boolean versions that could not be refactored into something much more readable and maintainable that did not use such. Over time, I've gotten rid of most of that stuff from

Re: version: multiple conditions

2015-06-16 Thread Daniel Murphy via Digitalmars-d
Walter Bright wrote in message news:mlorvv$1nb6$1...@digitalmars.com... On 6/14/2015 9:53 AM, bitwise wrote: What if I need AndroidOrWP8, and I also need Win32OrWin64? This can quickly become a much larger pita. If you need those, the design is wrong. It is better to think about what the

Re: version: multiple conditions

2015-06-16 Thread Jonathan M Davis via Digitalmars-d
On Tuesday, 16 June 2015 at 20:57:03 UTC, Walter Bright wrote: Use of expression templates in C++ to implement DSLs is probably some of the most awful code ever conceived. Whereas string mixins allow us to do all kinds of crazy stuff with DSLs if you want to - but they're clearly confined in

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/16/2015 6:04 PM, Daniel Murphy wrote: Keeping this feature simple and limited just pushes the complexity into user code. I simply don't believe that. It does take some work to redesign and refactor to find a better way, but the result should not be more complicated.

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/16/2015 6:06 PM, Daniel Murphy wrote: Walter Bright wrote in message news:mlorvv$1nb6$1...@digitalmars.com... On 6/14/2015 9:53 AM, bitwise wrote: What if I need AndroidOrWP8, and I also need Win32OrWin64? This can quickly become a much larger pita. If you need those, the design is

Re: version: multiple conditions

2015-06-16 Thread bitwise via Digitalmars-d
On Tue, 16 Jun 2015 16:59:36 -0400, Walter Bright newshou...@digitalmars.com wrote: On 6/16/2015 1:46 PM, rsw0x wrote: You call it abuse, I call it developer freedom. #define BEGIN { #define END } Freedom! Freedom! Freedom!

Re: version: multiple conditions

2015-06-16 Thread Dennis Ritchie via Digitalmars-d
On Tuesday, 16 June 2015 at 10:05:05 UTC, Walter Bright wrote: It does not allow multiple inheritance. I have often heard from Lisp programmers that the rejection of multiple inheritance is a weakness. They believe that it's well implemented in Lisp, and developers of other languages can not

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/13/2015 6:51 PM, Steven Schveighoffer wrote: Just use the static if trick. Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it - it turned out to be confusing, buggy, and wholly unnecessary. You can use it in your own code if you like,

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/14/2015 9:53 AM, bitwise wrote: What if I need AndroidOrWP8, and I also need Win32OrWin64? This can quickly become a much larger pita. If you need those, the design is wrong. It is better to think about what the code is trying to do with Android or WP8, and label *that* a version.

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/15/2015 7:51 AM, Jonathan M Davis wrote: [...] I have yet to see a single case of needing boolean versions that could not be refactored into something much more readable and maintainable that did not use such. Over time, I've gotten rid of most of that stuff from the dmd source code,

Re: version: multiple conditions

2015-06-16 Thread Walter Bright via Digitalmars-d
On 6/14/2015 4:03 AM, ketmar wrote: honestly, if i'll want to have a limited language, i'll take Go. Go doesn't have conditional compilation. removing a power only 'cause it can be abused is not in a spirit of D, Actually, D does quite a bit of that. For example, it deliberately does not

Re: version: multiple conditions

2015-06-15 Thread ketmar via Digitalmars-d
On Mon, 15 Jun 2015 17:25:07 +0900, Mike Parker wrote: On 6/14/2015 10:36 PM, Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= ola.fosheim.grostad+dl...@gmail.com wrote: On Sunday, 14 June 2015 at 13:02:03 UTC, Manfred Nowak wrote: bitwise wrote: for at least adding || so that code can be shared

Re: version: multiple conditions

2015-06-15 Thread via Digitalmars-d
On Monday, 15 June 2015 at 08:25:08 UTC, Mike Parker wrote: Not using version statements. They only apply to the module in which they are declared. To use it in multiple modules, you need static if and enums. Ack… That was new to me. What is the reasoning behind this? I like that better than

Re: version: multiple conditions

2015-06-15 Thread John Colvin via Digitalmars-d
On Monday, 15 June 2015 at 14:51:41 UTC, Jonathan M Davis wrote: [...] There's something refreshing about the simplicity of that :)

Re: version: multiple conditions

2015-06-15 Thread Jonathan M Davis via Digitalmars-d
On Sunday, 14 June 2015 at 11:26:23 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 11:05:36 UTC, ketmar wrote: p.s. i.e. it boils down to simple thing: Walter don't like it. period. any rationalizing of that is pointless. The most sensible thing to do with all these may/may not

Re: version: multiple conditions

2015-06-15 Thread ketmar via Digitalmars-d
On Mon, 15 Jun 2015 12:48:31 +, Ola Fosheim Grøstad wrote: On Monday, 15 June 2015 at 08:25:08 UTC, Mike Parker wrote: Not using version statements. They only apply to the module in which they are declared. To use it in multiple modules, you need static if and enums. Ack… That was

Re: version: multiple conditions

2015-06-15 Thread bitwise via Digitalmars-d
On Mon, 15 Jun 2015 10:58:16 -0400, John Colvin john.loughran.col...@gmail.com wrote: On Monday, 15 June 2015 at 14:51:41 UTC, Jonathan M Davis wrote: [...] There's something refreshing about the simplicity of that :) Faith inspiring...if He's so sure, maybe he actually does know what

Re: version: multiple conditions

2015-06-15 Thread via Digitalmars-d
On Monday, 15 June 2015 at 15:10:10 UTC, ketmar wrote: all in all, it creates more problems than it is trying to solve. Sounds like a bad excuse to me… All you need to require is that referenced global constants are actually… constant…

Re: version: multiple conditions

2015-06-15 Thread ketmar via Digitalmars-d
On Mon, 15 Jun 2015 21:47:26 +, Ola Fosheim Grøstad wrote: On Monday, 15 June 2015 at 15:10:10 UTC, ketmar wrote: all in all, it creates more problems than it is trying to solve. Sounds like a bad excuse to me… All you need to require is that referenced global constants are

Re: version: multiple conditions

2015-06-15 Thread via Digitalmars-d
On Monday, 15 June 2015 at 21:59:43 UTC, ketmar wrote: nononono. i smell #define hell from C and all the problems it brings, like careful ordering of #include. Nah. #define does not define constants, but variable macros. Constants are constant _everywhere_. If ordering can effect that it

Re: version: multiple conditions

2015-06-15 Thread Mike Parker via Digitalmars-d
On 6/14/2015 10:36 PM, Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= ola.fosheim.grostad+dl...@gmail.com wrote: On Sunday, 14 June 2015 at 13:02:03 UTC, Manfred Nowak wrote: bitwise wrote: for at least adding || so that code can be shared between platforms? Sureley it is a pita to write: version(

Re: version: multiple conditions

2015-06-14 Thread Joakim via Digitalmars-d
On Saturday, 13 June 2015 at 21:51:43 UTC, bitwise wrote: On Sat, 13 Jun 2015 17:29:17 -0400, Xiaoxi xia...@163.com wrote: On Saturday, 13 June 2015 at 21:19:28 UTC, bitwise wrote: On Sat, 13 Jun 2015 17:16:04 -0400, weaselcat weasel...@gmail.com wrote: iirc this falls under the walter

Re: version: multiple conditions

2015-06-14 Thread weaselcat via Digitalmars-d
On Sunday, 14 June 2015 at 11:33:52 UTC, Paulo Pinto wrote: On Sunday, 14 June 2015 at 11:26:23 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 11:05:36 UTC, ketmar wrote: p.s. i.e. it boils down to simple thing: Walter don't like it. period. any rationalizing of that is pointless.

Re: version: multiple conditions

2015-06-14 Thread ketmar via Digitalmars-d
On Sun, 14 Jun 2015 10:35:30 +, Joakim wrote: It does require more definitions, but it's worth it. A simple example like yours may seem excusable, but there's no way to limit such logic to just simple instances. Walter is coming from long experience with this, and even with my limited

Re: version: multiple conditions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 13:02:03 UTC, Manfred Nowak wrote: bitwise wrote: for at least adding || so that code can be shared between platforms? Sureley it is a pita to write: version( iOS) version= iOS; else version( Android) version= Android; else version= neither; version( neither)

Re: version: multiple conditions

2015-06-14 Thread via Digitalmars-d
On Sunday, 14 June 2015 at 11:33:52 UTC, Paulo Pinto wrote: Not all of them http://www.reddit.com/r/rust/comments/39f2t7/planned_breaking_change_in_rust_11/ AFAIK in the discussions it becomes clear that just about everyone want the change, but some want the change to be saved for 2.0 out

Re: version: multiple conditions

2015-06-14 Thread Joakim via Digitalmars-d
On Sunday, 14 June 2015 at 11:03:49 UTC, ketmar wrote: On Sun, 14 Jun 2015 10:35:30 +, Joakim wrote: It does require more definitions, but it's worth it. A simple example like yours may seem excusable, but there's no way to limit such logic to just simple instances. Walter is coming

Re: version: multiple conditions

2015-06-14 Thread ketmar via Digitalmars-d
p.s. i.e. it boils down to simple thing: Walter don't like it. period. any rationalizing of that is pointless. signature.asc Description: PGP signature

Re: version: multiple conditions

2015-06-14 Thread Paulo Pinto via Digitalmars-d
On Sunday, 14 June 2015 at 11:26:23 UTC, Ola Fosheim Grøstad wrote: On Sunday, 14 June 2015 at 11:05:36 UTC, ketmar wrote: p.s. i.e. it boils down to simple thing: Walter don't like it. period. any rationalizing of that is pointless. The most sensible thing to do with all these may/may not

  1   2   >