digitalmars.D.dtl - How to make and install DTL/MinTL
- =?ISO-8859-1?Q?Sigbj=F8rn_Lund_Olsen?= (30/30) Oct 17 2004 I'm a hobby programmer - I write programs for fun and recreation.
- Ben Hinkle (31/68) Oct 17 2004 Near the end of the MinTL doc there is a section about "installing". Wha...
- Matthew (6/9) Oct 18 2004 It shouldn't. DTL is currently floundering at the end of a list.
I'm a hobby programmer - I write programs for fun and recreation. Usually they are truly simple things. And I've found D very expressive in that regard - I'd say I spend a lot less time programming the same quantity of program in D than in Java or C++. But libraries in D - these things do me in. I mean, when programming in C++ any library is going to have its own little "how to install - cannot possibly fail" recipe in a small text file. It's quick and painless - type "make && make install" and you're set. You just include the relevant header file (which is already in the include path due to make install) and you're laughing. I honestly cannot figure out how to use DTL/MinTL. Maybe I am unbelievably dumb - but a word of warning: If I can't figure this out; if this language becomes popular with completely new programmers (and it might be more attractive to them because it's a simpler language than for example C++) then this is going to become hell. My question is simply: How am I supposed to build and install DTL/MinTL? Everybody seems to have a different layout. DTLs makefile is riddled with SYNSOFT_ROOT (of which I have none), and obviously assumes that I've got things sorted in some specific order. MinTL hasn't got anything to help me at all. dmake (more hardcoded paths and general nausea from trying to figure out how to actually make it resolve paths, as in my case it was determined not to read sc.ini no matter what I did) just built 4-5 object files and linked it into my app, but when compiling with -unittest I got link errors (which to me are generally fairly greek). Now, I'm sure DTL/MinTL will keep me very happy indeed. All I want is linked list. It shouldn't be this complicated. I recall an old "Plug 'n' Play" joke: In D, it's more like "Plug 'n' Pray". At least for me. But I am quite possibly unbelievably dumb. Cheers, Sigbjørn Lund Olsen
Oct 17 2004
Sigbjørn Lund Olsen wrote:I'm a hobby programmer - I write programs for fun and recreation. Usually they are truly simple things. And I've found D very expressive in that regard - I'd say I spend a lot less time programming the same quantity of program in D than in Java or C++. But libraries in D - these things do me in. I mean, when programming in C++ any library is going to have its own little "how to install - cannot possibly fail" recipe in a small text file. It's quick and painless - type "make && make install" and you're set. You just include the relevant header file (which is already in the include path due to make install) and you're laughing. I honestly cannot figure out how to use DTL/MinTL. Maybe I am unbelievably dumb - but a word of warning: If I can't figure this out; if this language becomes popular with completely new programmers (and it might be more attractive to them because it's a simpler language than for example C++) then this is going to become hell. My question is simply: How am I supposed to build and install DTL/MinTL? Everybody seems to have a different layout. DTLs makefile is riddled with SYNSOFT_ROOT (of which I have none), and obviously assumes that I've got things sorted in some specific order. MinTL hasn't got anything to help me at all. dmake (more hardcoded paths and general nausea from trying to figure out how to actually make it resolve paths, as in my case it was determined not to read sc.ini no matter what I did) just built 4-5 object files and linked it into my app, but when compiling with -unittest I got link errors (which to me are generally fairly greek). Now, I'm sure DTL/MinTL will keep me very happy indeed. All I want is linked list. It shouldn't be this complicated. I recall an old "Plug 'n' Play" joke: In D, it's more like "Plug 'n' Pray". At least for me. But I am quite possibly unbelievably dumb. Cheers, Sigbjørn Lund OlsenNear the end of the MinTL doc there is a section about "installing". What you do is add the containers you want plus the following: mintl/share.d mintl/seq.d (and it looks like mintl/array.d). So for example if the file mytest.d has import mintl.list; int main() { List!(int) list; list.add(10,20,30); return 0; } then it can be compiles with dmd mytest.d mintl/list.d mintl/share.d mintl/seq.d mintl/array.d The array.d is needed because of unittests - I should try to move those unittests elsewhere so that the dependencies are kept simple. The reason there isn't a makefile to make a library is that the lib would just contain a few exception classes - everything else is a template. I'll look into it, though, since it would be nice to trim down that list of stuff you need to type to get it to compile. If you get link errors like undefined reference to `_Class_5mintl5share25IndexOutOfBoundsException' then put mintl/share.d on the compilation list. It should be pretty easy to pick the module that is missing since it is mangled to "5mintl5share". Building with unittests might include more. Ignore any linker warnings about sizes of things being different - I get those all the time. They make me nervous but it doesn't seem to matter. I'll move that section about installing to the top of the doc so it is easier to find. Plus I notice that it leaves out mintl/array.d so I'll figure out what to do about that. good luck! -Ben
Oct 17 2004
Everybody seems to have a different layout. DTLs makefile is riddled with SYNSOFT_ROOT (of which I have none), and obviously assumes that I've got things sorted in some specific order.My fault, not yours. (I didn't realise that that was the case - I thought it was all relative.) DTL 0.3 will be coming as soon as I've got 15 million things sorted, and will have a sensible makefile.Now, I'm sure DTL/MinTL will keep me very happy indeed. All I want is linked list. It shouldn't be this complicated.It shouldn't. DTL is currently floundering at the end of a list. If there's anyone's left who's interested when I get round to doing the next round, things should be significantly better. Matthew
Oct 18 2004