March 26, 2005
Matthew wrote:
> "Carlos Santander B." <csantander619@gmail.com> wrote in message news:d21ba4$20e$1@digitaldaemon.com...
> 
>>I managed to recompile it (gcc 3.4, or was it 3.3?). What can't be done is use it in a program. It fails because std.recls has non-versioned extern(Windows) declarations. Obviously, ld will later complain. I don't know how to solve it, though.
> 
> 
> Can you be specific?
> 

I'm not using the latest recls, but the one that comes with Phobos. I take it as a problem, but I still think Phobos should just work.

In particular, the problem is line 161 of dmd/src/phobos/std/recls.d. It just says "extern(Windows)". To make it even more weird, later in the same extern scope, it says "version(Windows)". That doesn't make any sense, IMO. Maybe it was supposed to be extern(C)?

_______________________
Carlos Santander Bernal
March 26, 2005
Wow! It'd forgotten how old that stuff was. This's all been taken care of many months ago.

I can't do anything about what's in Phobos, so all I can suggest is that people use  the latest distro from http://recls.org/downloads.html unless and until Walter upgrades Phobos.

"Thomas Kühne" <thomas-dloop@kuehne.THISISSPAM.cn> wrote in message news:d225ui$vcu$1@digitaldaemon.com...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Matthew wrote:
> | "Ben Hinkle" <ben.hinkle@gmail.com> wrote in message
> news:d20vlk$2koi$1@digitaldaemon.com...
> |
> |>On a related note, how does one recompile phobos on Linux? It fails in
> the current recls.
> |
> |
> | recls builds and executes for me without a whimper on Linux. As I said
> in the post (and as is mentioned on the recls
> | website), one needs the latest STLSoft 1.8.3 beta.
> |
> | Can you specify what the build problem(s) are?
>
> See atached diff for G++-3.4.3's problems with dmd-0.119's phobos.
> I don't have vanilla gdc sources at hand but I remember lot's of
> problems just to create the object files (etc/c/recls) using g++-3.4.3
> but no major problems with g++-3.4.2.
>
> Thomas
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.0 (MingW32)
>
> iD8DBQFCRJtr3w+/yD4P9tIRAlL9AKCWszM+b3i5eYUWTdp+kZOvqnz1FQCfexpA
> 2TPc2IRrxXnvgO+oG+8X7nw=
> =l4b/
> -----END PGP SIGNATURE-----
>


--------------------------------------------------------------------------------


> --- dmd.119/dmd/src/phobos/etc/c/stlsoft/stlsoft_null.h.org 2005-03-26 00:01:46.561083840 +0100
> +++ dmd.119/dmd/src/phobos/etc/c/stlsoft/stlsoft_null.h 2005-03-26 00:02:03.834457888 +0100
> @@ -188,10 +188,11 @@
>     }
>
> // Not to be implemented
> +NULL_v(NULL_v const &);
> +
> private:
>     void operator &() const;
>
> -    NULL_v(NULL_v const &);
>     NULL_v const &operator =(NULL_v const &);
> };
>
> 


March 26, 2005
As I mentioned in the other post, this is stuff that was sorted nearly a year ago.

It's a shame, but I guess the recls in Phobos is damn near unusable. :-(

"Ben Hinkle" <Ben_member@pathlink.com> wrote in message news:d228ia$11pa$1@digitaldaemon.com...
> In article <d21unh$p3b$1@digitaldaemon.com>, Matthew says...
>>
>>
>>"Ben Hinkle" <ben.hinkle@gmail.com> wrote in message news:d20vlk$2koi$1@digitaldaemon.com...
>>> On a related note, how does one recompile phobos on Linux? It fails in the current recls.
>>
>>recls builds and executes for me without a whimper on Linux. As I said in the post (and as is mentioned on the recls website), one needs the latest STLSoft 1.8.3 beta.
>>
>>Can you specify what the build problem(s) are?
>
> using dmd-119:
> make -C ./etc/c/recls -f linux.mak
> make[1]: Entering directory `/home/bhinkle/dmd/src/phobos/etc/c/recls'
> g++ -Wall  -O4 -mcpu=i686  -DNDEBUG -DUNIX -D_M_IX86 -c -I. -I../stlsoft
> -orecls_fileinfo_unix.o recls_fileinfo_unix.cpp
> ./stlsoft/stlsoft_null.h: In function `const recls::recls_fileinfo_t*
> recls::FileInfo_Allocate(size_t)':
> ./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
> stlsoft::NULL_v&)' is private
> recls_fileinfo_unix.cpp:237: error: within this context
> ./stlsoft/stlsoft_null.h: In function `void recls::FileInfo_Release(const
> recls::recls_fileinfo_t*)':
> ./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
> stlsoft::NULL_v&)' is private
> recls_fileinfo_unix.cpp:256: error: within this context
> ./stlsoft/stlsoft_null.h: In function `recls::recls_rc_t
> recls::FileInfo_Copy(const recls::recls_fileinfo_t*, const
> recls::recls_fileinfo_t**)':
> ./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
> stlsoft::NULL_v&)' is private
> recls_fileinfo_unix.cpp:277: error: within this context
> make[1]: *** [recls_fileinfo_unix.o] Error 1
>
> g++ -v gives:
> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
>
> 


March 26, 2005
"Carlos Santander B." <csantander619@gmail.com> wrote in message news:d22hqj$1ao3$1@digitaldaemon.com...
> Matthew wrote:
>> "Carlos Santander B." <csantander619@gmail.com> wrote in message news:d21ba4$20e$1@digitaldaemon.com...
>>
>>>I managed to recompile it (gcc 3.4, or was it 3.3?). What can't be done is use it in a program. It fails because std.recls has non-versioned extern(Windows) declarations. Obviously, ld will later complain. I don't know how to solve it, though.
>>
>>
>> Can you be specific?
>>
>
> I'm not using the latest recls, but the one that comes with Phobos. I take it as a problem, but I still think Phobos should just work.

I agree, but what can I do about it? Walter's refused to upgrade since 1.2.1.

The current version, 1.6.1, is ready. I spent a lot of time refactoring and coallescing common(-ish) code, and also on the D mapping. It's just ready to go.

> In particular, the problem is line 161 of dmd/src/phobos/std/recls.d. It just says "extern(Windows)". To make it even more weird, later in the same extern scope, it says "version(Windows)". That doesn't make any sense, IMO. Maybe it was supposed to be extern(C)?

Early versions of recls used __stdcall (i.e. extern(Windows) on Win32. Yet again, this is something that changed a lot time ago.



March 26, 2005
With the version of recls that shipped w/ DMD v0.119, and compiling with GCC ge. v3.3.x, replace the following in etc/c/stlsoft/stlsoft_null.h:

private: // line 191
void operator &() const;

NULL_v(NULL_v const &);
NULL_v const &operator =(NULL_v const &);

with:

private: // line 191
void operator &() const;
public:
NULL_v(NULL_v const &);
private:
NULL_v const &operator =(NULL_v const &);

It could be a compiler issue - I didn't look into it that far. I think I sent something into stlsoft on this issue last year.

- Dave

In article <d228ia$11pa$1@digitaldaemon.com>, Ben Hinkle says...
>
>In article <d21unh$p3b$1@digitaldaemon.com>, Matthew says...
>>
>>
>>"Ben Hinkle" <ben.hinkle@gmail.com> wrote in message news:d20vlk$2koi$1@digitaldaemon.com...
>>> On a related note, how does one recompile phobos on Linux? It fails in the current recls.
>>
>>recls builds and executes for me without a whimper on Linux. As I said in the post (and as is mentioned on the recls website), one needs the latest STLSoft 1.8.3 beta.
>>
>>Can you specify what the build problem(s) are?
>
>using dmd-119:
>make -C ./etc/c/recls -f linux.mak
>make[1]: Entering directory `/home/bhinkle/dmd/src/phobos/etc/c/recls'
>g++ -Wall  -O4 -mcpu=i686  -DNDEBUG -DUNIX -D_M_IX86 -c -I. -I../stlsoft
>-orecls_fileinfo_unix.o recls_fileinfo_unix.cpp
>./stlsoft/stlsoft_null.h: In function `const recls::recls_fileinfo_t*
>recls::FileInfo_Allocate(size_t)':
>./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
>stlsoft::NULL_v&)' is private
>recls_fileinfo_unix.cpp:237: error: within this context
>./stlsoft/stlsoft_null.h: In function `void recls::FileInfo_Release(const
>recls::recls_fileinfo_t*)':
>./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
>stlsoft::NULL_v&)' is private
>recls_fileinfo_unix.cpp:256: error: within this context
>./stlsoft/stlsoft_null.h: In function `recls::recls_rc_t
>recls::FileInfo_Copy(const recls::recls_fileinfo_t*, const
>recls::recls_fileinfo_t**)':
>./stlsoft/stlsoft_null.h:194: error: `stlsoft::NULL_v::NULL_v(const
>stlsoft::NULL_v&)' is private
>recls_fileinfo_unix.cpp:277: error: within this context
>make[1]: *** [recls_fileinfo_unix.o] Error 1
>
>g++ -v gives:
>Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
>Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
>--infodir=/usr/share/info --enable-shared --enable-threads=posix
>--disable-checking --with-system-zlib --enable-__cxa_atexit
>--disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
>Thread model: posix
>gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
>
>


March 26, 2005
Matthew wrote:

> The former is people's reasonable consternation at finding docs out of step with library. This occured because the documentation was submitted to Walter for a version post 1.2 (the current level of recls within Phobos), sometime around 1.4 or 1.5. Unfortunately, Walter rejected the library update on the grounds that there was too much source code, but put the new docs in! Ever since, I've been trying explaining this to users, and promising that, come a newer trimmed down version (which happens to be 1.6.1) all would be in sync.
[...]
> But please understand that getting any upgrade into Phobos is out of my control. Realistically, if people want a 'good' recls, they may have to go to the effort of using the latest release separately to Phobos. :-(

What are the *advantages* of shipping an old recls (and an old zlib
as well) with Phobos ? Wouldn't it be easier if those two subprojects
were stripped out of the "runtime" library ? Or am I missing some
hidden connection between Phobos and Recls (besides Walter/Matthew) ?

I know that building in strings/hashes/unittests has some advantages
over being implemented as libraries (that are being shadowed by bugs
in the built-ins, that are much harder to fix than bugs in libraries),
but are there any such advantages with bundling recls with Phobos ?

--anders
March 26, 2005
Matthew wrote:

> Alas - partly because of the stunning lack of Apple customer service - I've not yet got to the point of using D on Linux. I'd be more than happy for people to make changes to the std/recls.d file in the latest release (http://recls.org/downloads.html) and feed them back to me.

Maybe I'm missing something here, but what does Apple's support has to with Linux ? If anything, it should have more to do with Mac OS X, yes ?
(although I am running both Mac OS X and Linux on my own Apple machines)

> The latter is more my responsibility, since I've not (yet) got around to having D on Linux. Is this easy to do? If so, I'll bite the bullet and get it done. Then it'll all be in Walter's court.

It's not very hard to install GDC on a regular Linux platform...
There's a specfile for RPM, an ebuild for Gentoo, and a Makefile ?
http://www.algonet.se/~afb/d/Makefile (downloads, compiles, installs)

Installing DMD, on a supported X86 Linux, is even easier to do :
http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/InstallingDCompiler

--anders
March 27, 2005
"Anders F Björklund" <afb@algonet.se> wrote in message news:d24nsp$jhm$1@digitaldaemon.com...
> Matthew wrote:
>
>> The former is people's reasonable consternation at finding docs out of step with library. This occured because the documentation was submitted to Walter for a version post 1.2 (the current level of recls within Phobos), sometime around 1.4 or 1.5. Unfortunately, Walter rejected the library update on the grounds that there was too much source code, but put the new docs in! Ever since, I've been trying explaining this to users, and promising that, come a newer trimmed down version (which happens to be 1.6.1) all would be in sync.
> [...]
>> But please understand that getting any upgrade into Phobos is out of my control. Realistically, if people want a 'good' recls, they may have to go to the effort of using the latest release separately to Phobos. :-(
>
> What are the *advantages* of shipping an old recls (and an old zlib
> as well) with Phobos ?

You're asking two questions in one, here. Do you mean what are the advantages of having recls in Phobos? Or what advantages are there in having the old (1.2.x) recls in Phobos instead of the new (1.6.x)?

> Wouldn't it be easier if those two subprojects
> were stripped out of the "runtime" library ? Or am I missing some
> hidden connection between Phobos and Recls (besides Walter/Matthew) ?

Well, one could argue it'd be easier if everything was stripped out. It's a balance of what's useful and what's not.

One of the main (valid) criticisms of C++ is its parlous standard library. Two notable absences from it are zlib and regexp.

If one wants to pare down Phobos to the absolute minimum, then that's fair, but it'd be going against what the bulk of 'normal' users want, I would think.

> I know that building in strings/hashes/unittests has some advantages over being implemented as libraries (that are being shadowed by bugs in the built-ins, that are much harder to fix than bugs in libraries), but are there any such advantages with bundling recls with Phobos ?

As far as I know, there's only been one bug with recls, and that was the UTF-8, which was fixed sometime ago. The only 'problem' with it is that updates to it have not been incorporated into Phobos for a *long* time, and, as I keep pointing out, I have precisely 0 control over that.

I'm confident that recls 1.6 would make a fine, useful, substantial contribution to Phobos. I'm aware several find it useful, and suspect many more would in its later guises. Of course, I'm biased, but since I'd find it a step back if zlib were removed, and you've lumped them together, then I think it's fair to say the same for recls.



March 27, 2005
"Jamboree" <jam@bor.ee> wrote in message news:d255it$11ji$1@digitaldaemon.com...
>
> "Anders F Björklund" <afb@algonet.se> wrote in message news:d24nsp$jhm$1@digitaldaemon.com...
>> Matthew wrote:
>>
>>> The former is people's reasonable consternation at finding docs out of step with library. This occured because the documentation was submitted to Walter for a version post 1.2 (the current level of recls within Phobos), sometime around 1.4 or 1.5. Unfortunately, Walter rejected the library update on the grounds that there was too much source code, but put the new docs in! Ever since, I've been trying explaining this to users, and promising that, come a newer trimmed down version (which happens to be 1.6.1) all would be in sync.
>> [...]
>>> But please understand that getting any upgrade into Phobos is out of my control. Realistically, if people want a 'good' recls, they may have to go to the effort of using the latest release separately to Phobos. :-(
>>
>> What are the *advantages* of shipping an old recls (and an old zlib
>> as well) with Phobos ?
>
> You're asking two questions in one, here. Do you mean what are the advantages of having recls in Phobos? Or what advantages are there in having the old (1.2.x) recls in Phobos instead of the new (1.6.x)?
>
>> Wouldn't it be easier if those two subprojects
>> were stripped out of the "runtime" library ? Or am I missing some
>> hidden connection between Phobos and Recls (besides Walter/Matthew) ?
>
> Well, one could argue it'd be easier if everything was stripped out. It's a balance of what's useful and what's not.
>
> One of the main (valid) criticisms of C++ is its parlous standard library. Two notable absences from it are zlib and regexp.
>
> If one wants to pare down Phobos to the absolute minimum, then that's fair, but it'd be going against what the bulk of 'normal' users want, I would think.

I very strongly agree.

I know there have been some (actually a pretty small minority) who've been arguing for a trimmed-down Phobos for various reasons. I see nothing wrong with that as an alternative lib., /but/ when D will be competing against the likes of C# and Java, we can't be cutting even remotely useful functionality out of the current basic runtime lib. unless it is terribly buggy or some other big issues crop up.

Even with Phobos as-is, it's hard to argue that DMD executables are grossly bloated, being statically linked to Phobos as they are.

>
>> I know that building in strings/hashes/unittests has some advantages over being implemented as libraries (that are being shadowed by bugs in the built-ins, that are much harder to fix than bugs in libraries), but are there any such advantages with bundling recls with Phobos ?
>
> As far as I know, there's only been one bug with recls, and that was the UTF-8, which was fixed sometime ago. The only 'problem' with it is that updates to it have not been incorporated into Phobos for a *long* time, and, as I keep pointing out, I have precisely 0 control over that.
>
> I'm confident that recls 1.6 would make a fine, useful, substantial contribution to Phobos. I'm aware several find it useful, and suspect many more would in its later guises. Of course, I'm biased, but since I'd find it a step back if zlib were removed, and you've lumped them together, then I think it's fair to say the same for recls.
>

Again, strongly agree.

- Dave


March 27, 2005
Matthew wrote:
> As I mentioned in the other post, this is stuff that was sorted nearly a year ago.
> 
> It's a shame, but I guess the recls in Phobos is damn near unusable. :-(

No, it's not unusable -- just often confusing. Such a shame that Walter won't update it.

I was looking at the docs included with Phobos the other day and found a function that I need to use was in recls. Unfortunately, the ancient version in Phobos was missing that particular function. And I wasn't in the mood to compile your updated version myself.

I've written some stuff in D using recls, but not as much as I'd like. :(

-- 
Justin (a/k/a jcc7)
http://jcc_7.tripod.com/d/