On 5/1/12 2:44 AM, simendsjo wrote:
On Mon, 30 Apr 2012 20:55:45 +0200, Ary Manzana <[email protected]>
wrote:
Looking at the code of mysql.d I see a big switch with many cases like
"case 0x01: // TINYINT". But then there's the SQLType enum with those
constants. Why the enum values are not used in the cases? (and also in
other parts of the code?)

It's not finished: http://www.britseyeview.com/software/mysqln/

Ah, I see.

The last commit is 6 months old.

I tried to compile mysql.d

---
> dmd -c mysql.d
/usr/share/dmd/src/phobos/std/exception.d(492): Error: constructor mysql.MySQLException.this (string msg, string file, uint line) is not callable using argument types (string,string,ulong) /usr/share/dmd/src/phobos/std/exception.d(492): Error: cannot implicitly convert expression (line) of type ulong to uint mysql.d(105): Error: template instance std.exception.enforceEx!(MySQLException).enforceEx!(ulong) error instantiating
(...)
(and more...)
---

It's sad. I always want to give D a chance. And when I do I always bump into errors and inconveniences.

I thought, maybe the project is 6 months old, it's not compatible anymore with the current DMD (but my code really doesn't break at all with new Ruby versions, for example). I thought of trying to fix the error. Apparently I need to compile it with -m32 so that lengths of arrays are uint instead of ulong.

---
> dmd -c -m32 mysql.d
mysql.d(4185): Error: cannot cast r.opIndex(cast(uint)j).get!(ulong)
mysql.d(4201): Error: cannot cast r.opIndex(cast(uint)j).get!(ulong)
mysql.d(4204): Error: cannot cast r.opIndex(cast(uint)j).get!(ulong)
---

(What does it mean "cannot cast"? Give me the reason, please...)

Or maybe instead of the flag the code is wrong and instead of uint it needs to be size_t. But I still get errors.

Every time I want to start coding in D, or helping some project, I stumble into all kind of troubles.

But I wonder... is this case in particular D's fault or the library's fault? (if the answer is "the project is 6 months old, of course it won't compile" then it's D's fault)

Reply via email to