Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Clang UPC to the Clang 3.2 base line #3

Closed
swatanabe opened this issue Feb 20, 2013 · 0 comments
Closed

Update Clang UPC to the Clang 3.2 base line #3

swatanabe opened this issue Feb 20, 2013 · 0 comments

Comments

@swatanabe
Copy link

Copied from Redmine:

As of today, the Clang 3.2 release candidate will be feature frozen.
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-November/026095.html

To get a head start, it would be good to set up a 3.2 merge branch in the clang-upc and llvm-upc repositories and make the necessary changes to be ready for the switch over to 3.2.

I'm willing to give this a try and then to perhaps file specific issue tickets as problems arise.

However, I am not git savvy, and would first appreciate some guidance on the steps needed to set this up.


Updated by John Wiegley 3 months ago

* Description updated (diff)
* Assignee set to Gary Funck

Comment

Assuming their release branch is named release-3.2, you would run (in your master):

git merge -s recursive -X patience -X ignore-all-space release-3.2

You will likely have many conflicts to resolve by hand.
#2

Updated by Gary Funck 3 months ago
Comment

John Wiegley wrote:

Assuming their release branch is named release-3.2, you would run (in your master):

git merge -s recursive -X patience -X ignore-all-space release-3.2

You will likely have many conflicts to resolve by hand.

Hmmm ... I'm a bit hazy on the relationship between 'master' in the llvm-upc and clang-upc repositories and the upstream llvm/clang mirror repositories.

clang-mirror <-> clang-upc <-> local clang-upc

Do I some how need to pull from 'clang-mirror' to even see the newer master and any related branches?

Also, how do I list what branches are available, the change logs, etc. for the the clang-mirror without physically cloning it first?

Here is what I see from my local clang-upc repository:

$ git branch -a

  • master
    remotes/origin/HEAD -> origin/master
    remotes/origin/master
    remotes/origin/release_1
    remotes/origin/release_16
    [...]
    remotes/origin/release_30
    remotes/origin/release_31
    remotes/origin/svn-tags/RELEASE_1
    remotes/origin/svn-tags/RELEASE_20
    [...]
    remotes/origin/svn-tags/RELEASE_30
    remotes/origin/svn-tags/RELEASE_31

$ git config -l
user.name=Gary Funck
user.email=gary@intrepid.com
github.user=gary-funck
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/:refs/remotes/origin/
remote.origin.url=github.com:Intrepid/clang-upc
branch.master.remote=origin
branch.master.merge=refs/heads/master
#3

Updated by John Wiegley 3 months ago
Comment

You will have to add the clang-mirror as a new remote to your own local repository, and then merge from that remote. Example:

git remote add -f mirror URL
git ... merge mirror/release_32

And then push up to the master in your repository with just a simple push command.
#4

Updated by Gary Funck 3 months ago
Comment

John Wiegley wrote:

You will have to add the clang-mirror as a new remote to your own local repository, and then merge from that remote. Example:

git remote add -f mirror URL
git ... merge mirror/release_32

And then push up to the master in your repository with just a simple push command.

Makes sense. Thanks. Next question: why merge and not rebase?
#5

Updated by John Wiegley 3 months ago
Comment

Because your master branch is already "out in the wild".
#6

Updated by Gary Funck 3 months ago
Comment

John Wiegley wrote:

You will likely have many conflicts to resolve by hand.

Sixty/so files with merge conflicts. Should be interesting.
#7

Updated by John Wiegley 3 months ago
Comment

Sounds about right. This script will give you the total count:

grep '<<<<<<<' *.c *.h | uniq -c | sort -n | sed 's/:<<<<<<< HEAD//'
#8

Updated by Gary Funck 3 months ago
Comment

A slightly different incantation below.

$ grep -cr '^<<<<<<< HEAD' . | sort -t: -k2n | awk -F: '$2 != 0 {s+=$2;print}END{print "Total: " s}'
./llvm/tools/clang/include/clang/AST/OperationKinds.h:1
./llvm/tools/clang/include/clang/AST/Stmt.h:1
./llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td:1
./llvm/tools/clang/include/clang/Basic/StmtNodes.td:1
./llvm/tools/clang/include/clang/Basic/TokenKinds.def:1
./llvm/tools/clang/include/clang/Driver/CC1Options.td:1
./llvm/tools/clang/include/clang/Driver/Options.td:1
./llvm/tools/clang/include/clang/Driver/Types.def:1
./llvm/tools/clang/include/clang/Sema/DeclSpec.h:1
./llvm/tools/clang/include/clang/Sema/Scope.h:1
./llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h:1
./llvm/tools/clang/lib/Analysis/UninitializedValues.cpp:1
./llvm/tools/clang/lib/AST/ASTContext.cpp:1
./llvm/tools/clang/lib/AST/MicrosoftMangle.cpp:1
./llvm/tools/clang/lib/AST/StmtProfile.cpp:1
./llvm/tools/clang/lib/Basic/IdentifierTable.cpp:1
./llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp:1
./llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp:1
./llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp:1
./llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp:1
./llvm/tools/clang/lib/Driver/Tools.cpp:1
./llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp:1
./llvm/tools/clang/lib/Parse/ParseDecl.cpp:1
./llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:1
./llvm/tools/clang/lib/Parse/ParseExprCXX.cpp:1
./llvm/tools/clang/lib/Parse/ParsePragma.cpp:1
./llvm/tools/clang/lib/Parse/ParseStmt.cpp:1
./llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp:1
./llvm/tools/clang/lib/Sema/Sema.cpp:1
./llvm/tools/clang/lib/Sema/SemaStmt.cpp:1
./llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:1
./llvm/tools/clang/lib/Serialization/ASTReader.cpp:1
./llvm/tools/clang/lib/Serialization/ASTWriter.cpp:1
./llvm/tools/clang/test/lit.cfg:1
./llvm/tools/clang/test/Misc/warning-flags.c:1
./llvm/tools/clang/test/Parser/recursion-limits.cpp:1
./llvm/tools/clang/test/PCH/cxx11-exception-spec.cpp:1
./llvm/tools/clang/test/SemaTemplate/dependent-names.cpp:1
./llvm/tools/clang/tools/Makefile:1
./llvm/tools/clang/include/clang/AST/ASTContext.h:2
./llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h:2
./llvm/tools/clang/lib/AST/ExprConstant.cpp:2
./llvm/tools/clang/lib/AST/Expr.cpp:2
./llvm/tools/clang/lib/AST/TypePrinter.cpp:2
./llvm/tools/clang/lib/CodeGen/CGDecl.cpp:2
./llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp:2
./llvm/tools/clang/lib/CodeGen/CodeGenFunction.h:2
./llvm/tools/clang/lib/Parse/Parser.cpp:2
./llvm/tools/clang/lib/Sema/SemaDecl.cpp:2
./llvm/tools/clang/lib/Sema/SemaExpr.cpp:2
./llvm/tools/clang/lib/Sema/SemaType.cpp:2
./llvm/tools/clang/test/CMakeLists.txt:2
./llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general/p3-0x.cpp:2
./llvm/tools/clang/test/CXX/special/class.copy/p8-cxx11.cpp:2
./llvm/tools/clang/test/SemaTemplate/instantiate-exception-spec-cxx11.cpp:2
./llvm/tools/clang/include/clang/AST/Type.h:3
./llvm/tools/clang/lib/CodeGen/CGValue.h:3
./llvm/tools/clang/include/clang/Parse/Parser.h:4
./llvm/tools/clang/lib/CodeGen/CGExpr.cpp:4
./llvm/tools/clang/lib/Parse/ParseExpr.cpp:4
./llvm/tools/clang/include/clang/Sema/Sema.h:5
./llvm/tools/clang/docs/ReleaseNotes.html:6
./llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp:9
Total: 109

vitillo pushed a commit to vitillo/clang-upc that referenced this issue Sep 14, 2013
1. Use a hanging ident for function calls nested in binary expressions.
   E.g.:
   int aaaaa = aaaaaaaaa && aaaaaaaaaa(
                                aaaaaaaaaa);

2. Slightly improve heuristic for builder type expressions and reduce
   penalty for breaking before "." and "->" in those.

3. Remove  mostly obsolete metric of decreasing indent level. This
   fixes: llvm.org/PR14931.

Changes clangupc#1 and clangupc#2 were necessary to keep tests passing after clangupc#3.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173680 91177308-0d34-0410-b5e6-96231b3b80d8
vitillo pushed a commit to vitillo/clang-upc that referenced this issue Sep 14, 2013
Sample output:
  #0 void construct(pointer __p, llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::ento::BugType *> > *const &__val)
  clangupc#1 void push_back(const value_type &__x)
  clangupc#2 void destroy()
  clangupc#3 void release()
  clangupc#4 void ~ImmutableSet()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178400 91177308-0d34-0410-b5e6-96231b3b80d8
vitillo pushed a commit to vitillo/clang-upc that referenced this issue Sep 14, 2013
Function declarations are now broken with the following preferences:
1) break amongst arguments.
2) break after return type.
3) break after (.
4) break before after nested name specifiers.

Options clangupc#2 or clangupc#3 are preferred over clangupc#1 only if a substantial number of
lines can be saved by that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179287 91177308-0d34-0410-b5e6-96231b3b80d8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant