A few more critical dependencies
At present, we have three dependencies that we can easily cut and doing so
will be very beneficial:
1. type_traits now depends on utility only because
utility:
On Mon, Jun 2, 2014 at 4:04 PM, Peter Dimov
3. mpl depends on detail because
detail:
from from boost/detail/endian.hpp is just a forwarding header that includes
. We should move it to Predef.
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
Rene Rivera wrote:
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely.
Also possible. Moving the header will however also "fix" (as in, remove
their dependency on Detail) its other uses:
Inclusion report for
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely.
Also possible. Moving the header will however also "fix" (as in, remove their dependency on Detail) its other uses:
Inclusion report for
(in module detail): from math:
from mpl: from multiprecision: from serialization: from spirit: We could also fix them all "properly", it's just more work and less immediate.
+1, assuming all the necessary predef code is in release? John.
On Tue, Jun 3, 2014 at 2:50 AM, John Maddock
+1, assuming all the necessary predef code is in release?
I'm working on the last changes to the Predef docs. And will merge Predef to it's master branch soon. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
Peter Dimov wrote:
Rene Rivera wrote:
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely.
Also possible. Moving the header will however also "fix" (as in, remove their dependency on Detail) its other uses:
Inclusion report for
(in module detail): from math:
from mpl: from multiprecision: from serialization: from spirit: We could also fix them all "properly", it's just more work and less immediate.
Needless to say, I'm in favour of anything (sensible) that leads to reduced dependencies. :-) -Julian
Rene Rivera wrote:
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely.
I've changed mpl/string.hpp to use Predef directly, but I still think that we should move detail/endian.hpp to Predef, as this is where it rightfully belongs.
On Wed, Jun 4, 2014 at 8:25 PM, Peter Dimov
Rene Rivera wrote:
Although I would gladly accept a move of boost/detail/endian.hpp to Predef (since I'm the sole author at this point). A much nicer solution would be to change boost/mpl/string.hpp to use the non-detail endian macros of Predef. As ti gets us closer to removing detail/endian.hpp entirely.
I've changed mpl/string.hpp to use Predef directly, but I still think that we should move detail/endian.hpp to Predef, as this is where it rightfully belongs.
OK.. Could someone send me the pull request? -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
Rene Rivera wrote:
On Wed, Jun 4, 2014 at 8:25 PM, Peter Dimov
wrote: I've changed mpl/string.hpp to use Predef directly, but I still think that we should move detail/endian.hpp to Predef, as this is where it rightfully belongs.
OK.. Could someone send me the pull request?
I've taken the liberty of just moving it. predef:master/release differed by just one commit and detail/endian.hpp is the same in both branches, so this should not create any merge problems.
On Thu, Jun 5, 2014 at 9:55 AM, Peter Dimov
Rene Rivera wrote:
I've changed mpl/string.hpp to use Predef directly, but I still think >
On Wed, Jun 4, 2014 at 8:25 PM, Peter Dimov
wrote: that we should move detail/endian.hpp to Predef, as this is where it > rightfully belongs. OK.. Could someone send me the pull request?
I've taken the liberty of just moving it. predef:master/release differed by just one commit and detail/endian.hpp is the same in both branches, so this should not create any merge problems.
I can't merge from develop to master now :-( -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
Rene Rivera wrote:
I can't merge from develop to master now :-(
Why not? I can: C:\Projects\boost-git\boost\libs\predef>git status # On branch master nothing to commit, working directory clean C:\Projects\boost-git\boost\libs\predef>git pull Already up-to-date. C:\Projects\boost-git\boost\libs\predef>git merge develop Auto-merging build.jam Merge made by the 'recursive' strategy. jamroot.jam => build.jam | 3 +-- test/.gitignore | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) rename jamroot.jam => build.jam (81%) C:\Projects\boost-git\boost\libs\predef>git status # On branch master # Your branch is ahead of 'origin/master' by 18 commits. # (use "git push" to publish your local commits) # nothing to commit, working directory clean
OK, I tried again and it worked. No idea what happened on my first try. Git
mysteries :-\
On Thu, Jun 5, 2014 at 10:11 AM, Peter Dimov
Rene Rivera wrote:
I can't merge from develop to master now :-(
Why not? I can:
C:\Projects\boost-git\boost\libs\predef>git status # On branch master nothing to commit, working directory clean
C:\Projects\boost-git\boost\libs\predef>git pull Already up-to-date.
C:\Projects\boost-git\boost\libs\predef>git merge develop Auto-merging build.jam Merge made by the 'recursive' strategy. jamroot.jam => build.jam | 3 +-- test/.gitignore | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) rename jamroot.jam => build.jam (81%)
C:\Projects\boost-git\boost\libs\predef>git status # On branch master # Your branch is ahead of 'origin/master' by 18 commits. # (use "git push" to publish your local commits) # nothing to commit, working directory clean
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/ mailman/listinfo.cgi/boost
-- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
OK, it's the automatic merge on github I can no longer do. Two things:
1. In the future please do not fast-forward history on master branches. It
messes up the natural flow of the git history.
2. Could you do me the favor of merging on the command line? I don't have
access to the CLI at the moment and really want to get the master test
results showing up again.
On Thu, Jun 5, 2014 at 10:19 AM, Rene Rivera
OK, I tried again and it worked. No idea what happened on my first try. Git mysteries :-\
On Thu, Jun 5, 2014 at 10:11 AM, Peter Dimov
wrote: Rene Rivera wrote:
I can't merge from develop to master now :-(
Why not? I can:
C:\Projects\boost-git\boost\libs\predef>git status # On branch master nothing to commit, working directory clean
C:\Projects\boost-git\boost\libs\predef>git pull Already up-to-date.
C:\Projects\boost-git\boost\libs\predef>git merge develop Auto-merging build.jam Merge made by the 'recursive' strategy. jamroot.jam => build.jam | 3 +-- test/.gitignore | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) rename jamroot.jam => build.jam (81%)
C:\Projects\boost-git\boost\libs\predef>git status # On branch master # Your branch is ahead of 'origin/master' by 18 commits. # (use "git push" to publish your local commits) # nothing to commit, working directory clean
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/ mailman/listinfo.cgi/boost
-- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
-- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail
Rene Rivera wrote:
OK, it's the automatic merge on github I can no longer do. Two things:
It was the latest commit, "Reverting (c) to human author", that created the merge conflict.
1. In the future please do not fast-forward history on master branches. It messes up the natural flow of the git history.
I didn't fast-forward history, if by that you mean "git merge develop" - I moved the file via git log / git am in both branches per https://svn.boost.org/trac/boost/wiki/NewLibByRefactor Most of the history of this file is from the SVN and the transition doesn't preserve any merge points, so the two branches appear completely separate, even though the commits turn out to be actually identical in this case.
2. Could you do me the favor of merging on the command line?
Done. I had to cherry-pick the latest develop commit first though, to avoid
the conflict.
C:\Projects\boost-git\boost\libs\predef>git cherry-pick develop
[master bcdaa18] Reverting (c) to human author.
Author: Rene Rivera
On 5 June 2014 17:01, Peter Dimov
Most of the history of this file is from the SVN and the transition doesn't preserve any merge points, so the two branches appear completely separate, even though the commits turn out to be actually identical in this case.
That's because 'git log' includes the commits from both branches when they're merged. I don't know why you think you need to transfer all the history, but if you really must, put it in a branch from the merge base of origin and develop (i.e. git checkout $(git merge-base origin/master origin/develop) -b whatever), and then do a non fast forward merge into both branches - so that it's obvious that it's a separate line of development, and you don't need to merge existing changes in develop in order to do that. But I wouldn't transfer the history, it just creates a load of noise that gets in the way. And it isn't at all clear what happened. If someone wants to see the old history, it's easy enough to check the original repo.
Daniel James wrote:
But I wouldn't transfer the history, it just creates a load of noise that gets in the way. And it isn't at all clear what happened.
Well that certainly would be much easier. In principle, you could do "git log --follow -- file" and see the history. That's basically the only thing that moving the history gives us. And I suspect that it might be convenient for people who like to right-click on things and choose "Log" from the menu. It does create a lot of noise in "git log" though.
If someone wants to see the old history, it's easy enough to check the original repo.
Not if you didn't know what the original repo was. :-)
On 6 June 2014 00:42, Daniel James
On 5 June 2014 17:01, Peter Dimov
wrote: Most of the history of this file is from the SVN and the transition doesn't preserve any merge points, so the two branches appear completely separate, even though the commits turn out to be actually identical in this case.
That's because 'git log' includes the commits from both branches when they're merged.
I think a better way to do this is to create a copy of the repo, use 'git filter-branch' to reduce the history to the files you want, then fetch the appropriate branches into the destination, and merge the branch into your tree. There's an example of using 'git filter-branch' at http://stackoverflow.com/a/6006679/2434.
On 2 June 2014 22:04, Peter Dimov
boost/iterator.hpp can be moved to core in all its former glory (and probably replaced by a one-liner, using std::iterator.)
Or other libraries could be changed to use std::iterator. Is it worth adding an obsolete header to core?
Daniel James wrote:
On 2 June 2014 22:04, Peter Dimov
wrote: boost/iterator.hpp can be moved to core in all its former glory (and probably replaced by a one-liner, using std::iterator.)
Or other libraries could be changed to use std::iterator. Is it worth adding an obsolete header to core?
Moving it is the safer choice; if it turns out that we do need to workaround
some uses of std::iterator after all, the changes will be isolated to a
single place. But either way is fine with me. Here's the report on
boost/iterator.hpp, if we choose the second option:
Inclusion report for
Le 02/06/14 23:04, Peter Dimov a écrit :
At present, we have three dependencies that we can easily cut and doing so will be very beneficial:
1. type_traits now depends on utility only because
utility:
from from from from from Since declval.hpp itself depends on type_traits (add_rvalue_reference), it can't go to core and the most logical place for it is type_traits itself.
Agreed. declval is used much of the time to build traits.
2. utility depends on iterator because
iterator:
from from boost/iterator.hpp can be moved to core in all its former glory (and probably replaced by a one-liner, using std::iterator.)
I would move iterator to workaround (config?) instead of moving it to Core.
generator_iterator.hpp perhaps needs to be moved to iterator.
+1.
3. mpl depends on detail because
detail:
from from That last one is just because lightweight_test.hpp hasn't been removed from Detail yet; let me know if I should do that.
boost/detail/endian.hpp is just a forwarding header that includes
. We should move it to Predef. I agree with Rene here, replacing the include and the macros in mpl would remove the dependency, but it needs the approval of the author. Moving the file detail/endian.hpp to the module Predef don't needs any change. Just do a different assignation.
Vicente
participants (6)
-
Daniel James
-
John Maddock
-
Julian Gonggrijp
-
Peter Dimov
-
Rene Rivera
-
Vicente J. Botet Escriba