D - DMD 0.54 release
- Walter (3/3) Feb 15 2003 Some long overdue syntax changes. Will break some existing code, but it'...
- Jeroen van Bemmel (10/13) Feb 15 2003 a.. Reversed order of array declarations when they appear to the left of...
- Ilya Minkov (39/55) Feb 15 2003 Thanks!!!!!
- Peter Hercek (8/13) Feb 15 2003 I think too that there should be only one way how to define array.
- Burton Radons (5/21) Feb 15 2003 The "C-style array declarations" thread; I lobbied for the swap in array...
- Walter (9/17) Feb 15 2003 the
- Burton Radons (8/8) Feb 15 2003 int [char []] ext;
- Burton Radons (5/5) Feb 15 2003 "new" should be changed:
- Walter (3/8) Feb 15 2003 I overlooked that. Thanks. -Walter
- Mike Wynn (20/23) Feb 15 2003 found one internal error and one seggy (all due to crap code)
- Mike Wynn (29/32) Feb 15 2003 and another bug ...
- Mike Wynn (21/24) Feb 16 2003 Duplicate cases not spotted (should they be ?)
- Walter (3/4) Feb 16 2003 Yes, they should be. It's a bug. -Walter
- Patrick Down (20/20) Feb 18 2003 The following causes the compiler to blow up with a
- Walter (2/2) Feb 19 2003 This is a more general bug in that structs/classes local to a function
- Dan L. (8/11) Feb 19 2003 Did something happen to local 2d arrays? I try to compile:
Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.html
Feb 15 2003
"Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.htmla.. Reversed order of array declarations when they appear to the left of the identifier being declared. Postfix array declaration syntax remains the same (and equivalent to C). int[3][4] a; // a is 4 arrays of 3 arrays of ints int b[4][3]; // b is 4 arrays of 3 arrays of ints I did a quick search on earlier postings on this topic, but found none. In my humble opinion this feature confuses more than it resolves. I would suggest to choose one (I prefer the first)
Feb 15 2003
Jeroen van Bemmel wrote:"Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...Thanks!!!!! Now you can tell the novices to use... real and int. But OTOH real,... then i'd expect imaginary and complex, but get ireal and creal. at least it's consistent with integer naming though. but having both float and real in one language is confusing. why not single instead of float? single<=double<=real. :) or sreal, dreal, real? then isreal, idreal, ireal, csreal, cdreal, creal :) no, obfucadion.Some long overdue syntax changes. Will break some existing code, but it's easy to fix.a.. Reversed order of array declarations when they appear to the left of the identifier being declared. Postfix array declaration syntax remains the same (and equivalent to C). int[3][4] a; // a is 4 arrays of 3 arrays of ints int b[4][3]; // b is 4 arrays of 3 arrays of ints I did a quick search on earlier postings on this topic, but found none. In my humble opinion this feature confuses more than it resolves. I would suggest to choose one (I prefer the first)There's a slight problem. after you've declared: int [x][y] array; //natural order! like in math and most libraries. you still have to acess it this way: el = array[y][x]; //stoopid C order! which becomes once more confusing. especially for people changing from Wirth languages or Sather or anything else more sane than C. Even in C, it has been a source of confusion. I quote from some matrix handling tutorial for beginning 3D enthusiasts: " If something goes wrong try: - reversing the matrix multiplication order - transposing the final matrix - you can't imagine how often this helps! " The first one refers to some people who don't know math :) but the second is a sign of technical problem, since OpenGL and DirectX expect matrices in an oppsite order compared to that usual in C, because of these swapped dimensions! access like: el = array[x,y] would really be good. And with that, also declarations in the same style. How about a possibility for multi-dimensional dynamic continuous arrays? Then array structure would be the following: 0: pointer to array data; 4: 1st array dimension; 8: 2nd array dimension; 12: 3st array dimension; ... ... 4*n: nth array dimension. -i.
Feb 15 2003
"Jeroen van Bemmel" <anonymous somewhere.com> wrote in message news:b2ldol$20m9$1 digitaldaemon.com... [cut]int[3][4] a; // a is 4 arrays of 3 arrays of ints int b[4][3]; // b is 4 arrays of 3 arrays of ints I did a quick search on earlier postings on this topic, but found none. In my humble opinion this feature confuses more than it resolves. I would suggest to choose one (I prefer the first)I think too that there should be only one way how to define array. I prefer the first one too. One way how to do it should be a rule for everything at the language level. Certainly at the higher levels you have (and should have) a lot of options. My reasoning is again the same: searching and easier writting of higher level tools (smart editors etc).
Feb 15 2003
Jeroen van Bemmel wrote:"Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...The "C-style array declarations" thread; I lobbied for the swap in array order privately, and also lobbied for removing the C-style; won the former, lost the latter. Walter's position is that this is a necessary fig leaf to C programmers.Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.htmla.. Reversed order of array declarations when they appear to the left of the identifier being declared. Postfix array declaration syntax remains the same (and equivalent to C). int[3][4] a; // a is 4 arrays of 3 arrays of ints int b[4][3]; // b is 4 arrays of 3 arrays of ints I did a quick search on earlier postings on this topic, but found none. In my humble opinion this feature confuses more than it resolves. I would suggest to choose one (I prefer the first)
Feb 15 2003
"Jeroen van Bemmel" <anonymous somewhere.com> wrote in message news:b2ldol$20m9$1 digitaldaemon.com...a.. Reversed order of array declarations when they appear to the left oftheidentifier being declared. Postfix array declaration syntax remains thesame(and equivalent to C). int[3][4] a; // a is 4 arrays of 3 arrays of ints int b[4][3]; // b is 4 arrays of 3 arrays of ints I did a quick search on earlier postings on this topic, but found none. In my humble opinion this feature confuses more than it resolves. I would suggest to choose one (I prefer the first)While the spec necessarilly goes into both syntaxes, you can choose to stick with the prefix notation which is consistent and easy to explain. The C version is there to make an easier migration path for C programmers, etc., and the mixed declarations fall out of that syntax, but can be entirely avoided, and I suggest that they be avoided.
Feb 15 2003
int [char []] ext; void main () { ext ["foo"] = 1; delete ext; } This compiles, and is proper of course, but fails on execution with an Access Violation.
Feb 15 2003
"new" should be changed: char [] [] foo; foo = new char [] [45]; /* Doesn't work. */ foo = new char [45] []; /* Old order does work, but no longer makes sense. */
Feb 15 2003
I overlooked that. Thanks. -Walter "Burton Radons" <loth users.sourceforge.net> wrote in message news:b2mnbr$2mt$1 digitaldaemon.com..."new" should be changed: char [] [] foo; foo = new char [] [45]; /* Doesn't work. */ foo = new char [45] []; /* Old order does work, but no longer makes sense. */
Feb 15 2003
found one internal error and one seggy (all due to crap code) Digital Mars D Compiler Beta v0.54 dmd -c with ..... alias bit delegate ( int ) MyFoo; class wrong { MyFoo foo; bit func( int a ) { return MyFoo( a ); } } causes bit delegate(int) Internal error: e2ir.c 1870 and int a = [ 6, 7, 9 }; crashes the compiler "Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.html
Feb 15 2003
and another bug ... delegates don't take into account out params. the following compiles but crashes (as you would expect) int delegate( out int ) can be passed as int delegate( int ). alias int delegate( int foo ) MyCB; class CBHolder { MyCB cb; this( MyCB cb0 ) { cb = cb0; } int evoke( out int foo ) { return cb( foo ); } } class Test { int a,b; this() { CBHolder h = new CBHolder( &this.func ); a = h.evoke( b ); } int func( out int foo ) { foo = 9; return 3; } } int main( char[][] args ) { printf("begin\n"); Test t = new Test(); printf("test a:%d b:%d\n", t.a, t.b ); return 0; } "Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.html
Feb 15 2003
Duplicate cases not spotted (should they be ?) char[] func( int a ) { switch( a ) { case 0: return "None"; case 1: return "One"; case 0: return "None0"; default: return "-err-"; } } int main( char[][] args ) { for( int i = 0; i < 3; i++ ) { printf('i:%d "%.*s"'\n, i, func(i) ); } return 0; } "Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$1 digitaldaemon.com...Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.html
Feb 16 2003
"Mike Wynn" <mike.wynn l8night.co.uk> wrote in message news:b2ondj$200b$1 digitaldaemon.com...Duplicate cases not spotted (should they be ?)Yes, they should be. It's a bug. -Walter
Feb 16 2003
The following causes the compiler to blow up with a null pointer reference. void foo() { struct Test { int i; bit bar(int a) { i = a; } } Test t; } int main(char[][] argv) { return 0; }
Feb 18 2003
This is a more general bug in that structs/classes local to a function currently cannot have member functions. It's a compiler bug. -Walter
Feb 19 2003
Did something happen to local 2d arrays? I try to compile: int main (char argv[][], int argc) { int[3][4] a; return 0; } and I get "cannot implicitly convert int to int[3]". Dan L. In article <b2l2oh$1o27$1 digitaldaemon.com>, Walter says...Some long overdue syntax changes. Will break some existing code, but it's easy to fix. www.digitalmars.com/d/changelog.html
Feb 19 2003
Forgot to mention: the error message gave no file or line number. Dan In article <b30sse$kp3$1 digitaldaemon.com>, Walter says...Fixed. -Walter
Feb 19 2003