RE: type_traits and other things

2005-10-10 Thread Lance Diduck
 I'm not sure about these non-ASF copyrights. 
Yes these are a pain in the (*|*) and before I do anything we'll go over a
cut. I have a friend who may be interested in helping in the legal area,
I'll try to remember to ask tomorrow. He is a NY Bar member who specializes
in software issues, and helped me a lot with getting my employer comfortable
in my involvement with ASF.

The copyright is largely like the all the STL implementations carrying the
HP license. It would be hard to get rid of the reference version license,
and after all, they did come up with the design. Most of the other stuff may
be doable, but in any case the licenses would be of the no warranty type,
and far less stringent that the Stallman variety licenses, i.e. no
copylefts.
In any case, any non-ASF license would make it non-deployable, and not much
use.
The commit then review would be very helpful, at least to a separate
work-in-progress area. Doing this for the Cygwin port would help too. I'm
finishing up some changes that I hope will be a differentiating point from
the boost implementation, and giving it a shot at work now -- no interface
or semantic changes, of course, just more options in the implementations
(like different ways of handling undefined behavior), and beefier tests.

Lance

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 28, 2005 4:52 PM
To: stdcxx-dev@incubator.apache.org
Subject: Re: type_traits and other things

Lance Diduck wrote:
 On shared_ptr and type_traits -- I've requested to copyright release and
IP
 review from work, that could take a couple of weeks. I have most of
Sections
 2 and 4. Most of this stuff will be crammed with various copyrights, from
 boost, a couple of books (notably Vandevoorde and Josuttiss), and other
 attributions to different contributors collected over the course of time.

I'm not sure about these non-ASF copyrights. AFAIK, the ASF frowns
on, or at least questions such things, even if they are compatible
with the Apache License. Our mentors will need to take a look at it
and give their yay or nay before we can use the code. It would be
easier to get rid of as much as you legally can.

 
 The easiest way to separate them IMHO would be to have them in a working
 directory separate from the existing std stuff. This area would not follow
 the review then commit rules. The rule would only apply when the library
was
 voted for release, and then merged to 'tr1' or whatever it would be called
 upon vote. Then the rule applies.

Going the commit-then-review route sounds like a sensible approach for
new files. I believe some of the TR1 bits are mixed in with the existing
stuff so at least in some cases people will need to do both (touch the
existing headers in addition to the experimental ones). To isolate the
changes in the existing headers we'll need to guard them all with some
macro (such as _RWSTD_EXT_TR1). We might also want to consider creating
a separate branch for TR development.

 The Clearcase SCCS makes this easy, and I'll have to find out how to do
this
 with SVN.

My initial thought on the directory layout for the TR1 stuff is simply
to add

   include/tr1/   -- TR1 headers
   src/tr1/  -- TR1 sources

The thing to decide on will be the mechanism to enable the TR1 bits in
our builds. We could require that a macro be set in addition to adding
-Itr1 to the preprocessor options or require only that -Itr1 be before
any other -I options so that its headers are found before any existing
headers with the same name.

 We finished up a shared_ptr regression tester at work as well, tests
 shared_ptr but does no rely on the fact that the template is called
 shared_ptr. Allows testing of a number of implementations without changing
 the tester. Make what-if analysis far far easier.

We'll definitely need tests for all TR contributions. I'm still refining
the test driver but most of it is already in place. Whenever you have
a chance it would be great if you could take a look at it and post your
feedback.

Martin




[PATCH] ---[Cygwin] messages.cpp needs catopen, catgets etc

2005-09-28 Thread Lance Diduck






http://issues.apache.org/jira/browse/STDCXX-23 

The current working version of the code does not link for gcc cygwin. This is a temporary fix to at least allow it to link and run the tests, until STDCXX-23 is fully resolved. 

1993-05-25 Lance Diduck [EMAIL PROTECTED] * gcc.config chage LDLIBS (manual-entry): temporary fix to allow full build with interrupts on Cygwin.










[jira] Commented: (STDCXX-12) publish Class Reference and User Guide on the stdcxx site

2005-09-28 Thread Lance Diduck (JIRA)
[ 
http://issues.apache.org/jira/browse/STDCXX-12?page=comments#action_12330685 ] 

Lance Diduck commented on STDCXX-12:


Or, just make the Class Reference and User Guide hyperlinks point directly to 
booktoc That may work i.e.
http://svn.apache.org/repos/asf/incubator/stdcxx/trunk/doc/stdlibref/index.html 
intead of 

http://svn.apache.org/repos/asf/incubator/stdcxx/trunk/doc/stdlibref/ 




 publish Class Reference and User Guide on the stdcxx site
 -

  Key: STDCXX-12
  URL: http://issues.apache.org/jira/browse/STDCXX-12
  Project: STDCXX
 Type: Improvement
   Components: Web
 Versions: 4.1.2
  Environment: All
 Reporter: Martin Sebor
 Priority: Critical
  Fix For: 4.1.3


 The stdcxx documentation in svn needs to be published in a browsable format 
 on the project Web site. Currently only the sources in svn are viewable.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



[jira] Updated: (STDCXX-24) [Cygwin] collate.cpp needs wcsnxfrm

2005-09-13 Thread Lance Diduck (JIRA)
 [ http://issues.apache.org/jira/browse/STDCXX-24?page=all ]

Lance Diduck updated STDCXX-24:
---

Description: 
Martin Sebor paraphrased:
Cygwin really doesn't define wcsnxfrm() (i.e.,  both
_RWSTD_NO_WCSXFRM and _RWSTD_NO_WCSXFRM_IN_LIBC are #defined) 

we should probably implement our own transformation. 

Looking at
collate.cpp, though, I don't see a check for _RWSTD_NO_WCSXFRM_IN_LIBC,
just for the former (which only determines whether function is declared;
the latter tells us if it's also not defined).




  was:
http://sources.redhat.com/ml/cygwin/2004-04/msg00679.html shows that libc does 
not have catopen, catgets, etc. Library compiles but does not link. 
A recent thread (Jun 2005) discusses adding libcatgets 
http://blog.gmane.org/gmane.os.cygwin.applications/month=20050601 
There are at least these approaches:
1. Implement the missing stuff ourselves
2. Implement messages.cpp in terms of the underlying Windows messaging 
subsystem (i.e. FormatMessage, etc)
3. Require libcatgets , change build 





 [Cygwin] collate.cpp needs wcsnxfrm
 ---

  Key: STDCXX-24
  URL: http://issues.apache.org/jira/browse/STDCXX-24
  Project: STDCXX
 Type: Bug
   Components: 22. Localization
 Versions: 4.1.2
  Environment: Cygwin
 Reporter: Lance Diduck
  Fix For: 4.1.3


 Martin Sebor paraphrased:
 Cygwin really doesn't define wcsnxfrm() (i.e.,  both
 _RWSTD_NO_WCSXFRM and _RWSTD_NO_WCSXFRM_IN_LIBC are #defined) 
 we should probably implement our own transformation. 
 Looking at
 collate.cpp, though, I don't see a check for _RWSTD_NO_WCSXFRM_IN_LIBC,
 just for the former (which only determines whether function is declared;
 the latter tells us if it's also not defined).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



RE: stdcxx documentation format

2005-09-10 Thread Lance Diduck


Alessio Marchetti wrote:
 Template-based code is recompiled even when there are no changes in the
code and 
  I think compliers are smart enough not to recreate template instantiations

when a comment changes.
Are there other facets I'm missing?
The build system itself (ours or a users) cannot tell the difference between
a code change and a documentation change. The compiler will indeed skip over
the documentation, but the build system still invokes the compiler for every
translation unit depending on the file timestamp, no matter what changes.
The versioning system used is also based on file timestamps, and not what
actually changed in the file. Additionally, template libraries are released
in source code form -- this is stark contrast to the libraries normally
associated with compiled languages. Adding the documentation in with the
source code implies that the documentation follows the same identical
release process that the library itself does, and that the source code
follows the same release process that the docs do. 
But documentation changes depend more on source code changes than the other
way around --not that writing the user guide before designing a library
isn't a good idea, but in our case the library interface is already
specified by committee.
What I started doing with Doxygen is creating .ipp files that included the
.hpp files of interest. This had the desired effect of making the
documentation depend on the code, but not the other way around. See
http://www.stack.nl/~dimitri/doxygen/docblocks.html  

 I'm not sure I understand: are you talking about the yellow box (the base
class) at
http://www.alessio.marchetti.name/test/doxy/structtr1_1_1is__class.html 
More that the generated documentation does not make any distinction between
the user interface and the implementation details.
http://www.alessio.marchetti.name/test/doxy/structtr1_1_1detail_1_1is__class
__impl.html  If we do use a tool like Doxygen (or any tool that generated
docs from code) then the source code will have to be separated or otherwise
account for how the doc tool works. This isn't hard though.  
Lance
-Original Message-
From: Alessio Marchetti [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 07, 2005 8:48 AM
To: stdcxx-dev@incubator.apache.org
Subject: Re: stdcxx documentation format

Lance Diduck wrote:

  2. Putting the documentation in the code always sounds like a good idea,
but
  consider that in the STL most of the docs would go in headers, that any
  change in headers (including docs) forces a recompilation and a new
release
  of code, that source headers are already busy with copyright notices,
  revision and other coder comments not relevant to a user, porting macros,
  and other things.

You are raising two interesting points:

1. Header files become difficult to read with too many comments.

I understand, but this is subjective.
I don't agree just because comments can be easily skipped when reading the 
header file as they are colored differently.
Additionally, with Doxygen it is possible to link a verbatim copy (with
Doxygen 
commands removed) of the source in the generated documentation: users of the

library don't need to view the headers to read the code (go to the verbatim
copy 
instead, if they have a browser of course...).
The size of the headers will increase with comments inside and this can
affect 
compilation time. Maybe this was implied in your comment.

2. Any change to the doc triggers a recompilation

Template-based code is recompiled even when there are no changes in the code
and 
  I think compliers are smart enough not to recreate template instantiations

when a comment changes.
Are there other facets I'm missing?

  However template metaprograms, are almost nothing but declarations. It is
  possible to get Doxygen to read this and put in the links, but separating
  out the implementation (i.e. the detail code) from the interface' is
  solely a job of the documentation.

I'm not sure I understand: are you talking about the yellow box (the base
class) 
at http://www.alessio.marchetti.name/test/doxy/structtr1_1_1is__class.html
?
I agree this is rather ugly!


Alessio




RE: svn co

2005-08-28 Thread Lance Diduck
OK managed to install cygwin subversion client, things seems to be
downloading ..except for atomic.S 
OK I'll try some more later...

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] 
Sent: Sunday, August 28, 2005 5:17 PM
To: Lance Diduck
Cc: stdcxx-dev@incubator.apache.org
Subject: Re: svn co

Lance Diduck wrote:
 I'll let you know how the Cygwin client turns out, its still downloading.
 I'll still have to work around the case issues. (The solution I did come
up
 with is to do a svn list, copy the files names, exclude the problem files,
 and then do svn cp on each file. Subversion doesn't like this, and
requires
 doing each directory by hand ( no recursion,) and everything stays locked.
 Subversion solves the issue by asserting that they are a case -insensitive
 repository. 

Yeah, that sounds like a pain. We need to rename those two files.

 
[...]
 But I run across dueling STL implementation problems quite often in
fact,
 so much so that I don't allow any STL containers, streams and such in the
 public interfaces of the code my teams writes. Apart from stream
 initialization problems, this was the first time I had trouble making two
 STLs coexist. 

That (missing two implementations in the same program) is the subject
of stdcxx-1: http://svn.apache.org/viewcvs.cgi/incubator/stdcxx/.
Since you have experience in this area your insight will be valuable
in getting it implemented.

 
[...]
 
 BTW I tried to subscribe to the mailing list and got this unusual error
 
- The following addresses had permanent fatal errors -
 [EMAIL PROTECTED]
 (reason: 553 sorry, that domain isn't in my list of allowed rcpthosts
 (#5.7.1))

It's .org, not .com.

Martin