Commits on Apr 3, 2019

  1. CC1 Options: added 'skip-function-bodies' option.

    Stepan Dyatkovskiy committed Apr 3, 2019
    Copy the full SHA
    2920196 View commit details
    Browse the repository at this point in the history
  2. Lang options: added 'flevitation-mode' flag, which triggers compiler …

    …to recognize 'levitation syntax extensions'
    Stepan Dyatkovskiy committed Apr 3, 2019
    Copy the full SHA
    2e5d56e View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2019

  1. C++Levitation: Added 'package' keyword. Still doesn't affect AST, onl…

    …y syntax.
    Stepan Dyatkovskiy committed Apr 4, 2019
    Copy the full SHA
    8bf0ef4 View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2019

  1. C++Levitation

    AST, Sema: Added support for levitation packages.
    Clang tests, AST, Parser: Added tests for levitation packages.
    Stepan Dyatkovskiy committed Apr 5, 2019
    Copy the full SHA
    5cb8b4f View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2019

  1. C++Levitation

        CXXRecordDecl: Added isLevitationPackage
        Sema, Template Instantiator: added draft support for 'global' keyword.
        Sema: added draft implementation for package class instantiation.
    Stepan Dyatkovskiy committed Apr 20, 2019
    Copy the full SHA
    4b8e98e View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2019

  1. C++Levitation: 'IsPackageDependent' moved from CXXRecordDecl into Tag…

    …Decl. It still crashes for default constructor after regular package classes instantiated.
    Stepan Dyatkovskiy committed Apr 22, 2019
    Copy the full SHA
    b1d9583 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2019

  1. C++Levitation: Added draft for levitation dependencies handling. Adde…

    …d comments for Levitation-related Sema methods.
    
    TODO: Still have issues with basic HandleLevitationPackageDependency class.
    Stepan Dyatkovskiy committed Apr 23, 2019
    Copy the full SHA
    758383d View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2019

  1. C++Levitation, Sema, fixed HandleLevitationPackageDependency.

    Stepan Dyatkovskiy committed Apr 24, 2019
    Copy the full SHA
    c8bad71 View commit details
    Browse the repository at this point in the history
  2. C++ Levitation

    TagDecl::isPackageDependent finally moved into Decl, with name isLevitationPackageDependent, which relies on Decl::LevitationPackageDependent bitfield.
    New Decl::LevitationPackageDependent property behaves as follows:
    * It can be true only for non-nested declarations of package namespaces.
    1. If such declaration was created by parser, then it dependent ('true').
    2. If such declaration was created during template instantiation, then it inharits pattern flag value.
    3. If such declaration was created during package decl instantiation, then it is 'false'.
    
    'PackageClassInstantiationMode' has been renamed into 'PackageClassInstantiationStage'
    
    Minor fix in Sema::isLevitationGlobal method.
    Stepan Dyatkovskiy committed Apr 24, 2019
    Copy the full SHA
    a22c1a9 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2019

  1. C++ Levitation

      Added Levitation mode build stage compiler option.
      Two stages are possible:
       * Build AST stage
       * Build Object file stage
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    587f11b View commit details
    Browse the repository at this point in the history
  2. C++ Levitation, DeclTemplate.h

     * Roled back ClassTemplateDecl::getTemplatedDecl
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    eb9e4eb View commit details
    Browse the repository at this point in the history
  3. C++ Levitation, DeclContext::isDependentContext

      Added support for package namespaces. Package namespace is dependent context.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    f977f88 View commit details
    Browse the repository at this point in the history
  4. C++ Levitation, DeclContext::removeDecl

     * Added fix for case when we have no lookup entry for decls to be removed.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    f1026f3 View commit details
    Browse the repository at this point in the history
  5. C++ Levitation, NamespaceDecl

      Fixed initializations of LevitationPackage flag.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    c6e0241 View commit details
    Browse the repository at this point in the history
  6. C++ Levitation

      Changed way of marking levitation package classes as package dependent.
      Since now it is done by Recursive AST Visitor by parser before
      handleTranslationUnit call.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    348821e View commit details
    Browse the repository at this point in the history
  7. C++ Levitation

      Fixed Sema::isLevitationGlobal method.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    cc6d5f4 View commit details
    Browse the repository at this point in the history
  8. C++ Levitation

      Added use of LevitationBuildStage value.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    def5162 View commit details
    Browse the repository at this point in the history
  9. C++ Levitation

      Added Levitation Decls shadowing for Build Obj stage.
    Stepan Dyatkovskiy committed May 2, 2019
    Copy the full SHA
    7692253 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2019

  1. C++Levitation, DeclContext, fixed isDependentContext.

    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    4aee943 View commit details
    Browse the repository at this point in the history
  2. C++ Levitation, reimplemented package dependent declarations marking.

    Decl::LevitationPackageDependent is not stored in PCH.
    Instead introduced Sema::LevitationPackageDependentDecls collection, after
    we parsed TU, all dependent classes registered there, and then to be stored
    in PCH as a separated record.
    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    e105b3b View commit details
    Browse the repository at this point in the history
  3. C++ Levitation Package Instantiation reimplemented through PackageDec…

    …lsInstantiator (which is a DeclVisitor)
    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    500b6e3 View commit details
    Browse the repository at this point in the history
  4. C++ Levitation: Fixed package namespace tests.

    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    b53c03d View commit details
    Browse the repository at this point in the history
  5. C++ Levitation: PackageDependentClassesMarker, fixed support for nest…

    …ed namespaces.
    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    d283a9a View commit details
    Browse the repository at this point in the history
  6. Merge branch 'master' into levitation-draft

    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    13d2172 View commit details
    Browse the repository at this point in the history
  7. PR41747: Bugfix for 'AST Printer doesn't print nested name specifier …

    …for out of scope record definitions'
    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    5fec397 View commit details
    Browse the repository at this point in the history
  8. C++ Levitation, Sema: all related implementation has been moved into …

    …SemaLevitation.cpp
    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    6a570f6 View commit details
    Browse the repository at this point in the history
  9. C++ Levitation, Parser: fixed 'unused variable' minor issue.

    Stepan Dyatkovskiy committed May 5, 2019
    Copy the full SHA
    db88ea3 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2019

  1. C++ Levitation: added some TODOs for dependency handling.

    Stepan Dyatkovskiy committed May 7, 2019
    Copy the full SHA
    4ec85d3 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2019

  1. C++ Levitation, Sema: Added LevitationDependency classes. It is still…

    … remained to complete 'computeAutoDependency' method.
    Stepan Dyatkovskiy committed May 8, 2019
    Copy the full SHA
    ee98cd7 View commit details
    Browse the repository at this point in the history
  2. C++ Levitation (ASTDependenciesProcessor and friends).

    Added ASTDependenciesProcessor and its satellite classes.
    Removed flevitation_mode and flevitation_build_stage.
    Instead introduced '-levitation-build-ast' cc program action with its satellite options ('-levitation-deps-output-file=...', '-levitation-sources-root-dir=...', '-levitation-source-file-extension=...').
    Also introduced '-levitation-deps-input-file=...' for future non-implemented part.
    Stepan Dyatkovskiy committed May 8, 2019
    Copy the full SHA
    566555e View commit details
    Browse the repository at this point in the history

Commits on May 9, 2019

  1. C++ Levitation, gitignore: added more OS X specific cases.

    Stepan Dyatkovskiy committed May 9, 2019
    Copy the full SHA
    7854ec8 View commit details
    Browse the repository at this point in the history
  2. PR41747: Fixes after review (D61566) for 'AST Printer doesn't print n…

    …ested name specifier for out of scope record definitions'
    Stepan Dyatkovskiy committed May 9, 2019
    Copy the full SHA
    f3f44d1 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'master' of https://github.com/llvm/llvm-project

    Stepan Dyatkovskiy committed May 9, 2019
    Copy the full SHA
    9a2be43 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2019

  1. C++ Levitation, BuildAST action. Bigger part seems to be complite. It…

    … is remained to create second PCH Generator which will emit only declaration part.
    
    Some details:
     * Introduced separate "clang/Levitation" directory.
     * From Sema Dependency-related classes have been moved into clang/Levitation/Dependencies
     * LevitationFrontendActions and LevitationASTConsumers also moved into this dir.
     * Some frontend options have been corrected.
    
    Current syntax for launching BuildAST is:
    
    <clang> -cc1 -xc++ -std=c++17 \
    -levitation-build-ast \
    -levitation-sources-root-dir=<sources root dir> \
    -levitation-deps-output-file=<dependencies output file> \
    -levitation-source-file-extension=<levitation source ext with '.' symbol, e.g. '.cppl'> \
    <input source files, e.g. 'test-project/P1/A.cppl'>
    
    -levitation-decl-ast-file-extension=<additional extension suffix for decl ast, with '.'> \
    [-o <output definition ast file name, also decl ast will be emitted but as well>]
    Stepan Dyatkovskiy committed May 10, 2019
    Copy the full SHA
    bdf8797 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2019

  1. C++ Levitation: alftered basicGVALinkageForFunction, added Decl-only …

    …AST creator. Still draft, .decl-ast files are not created as expected (only tmp copy exists, but fail rename doesn't happen).
    Stepan Dyatkovskiy committed May 13, 2019
    Copy the full SHA
    715a6b8 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2019

  1. C++ Levitation, Decl AST Generator: fixed file creation.

    Stepan Dyatkovskiy committed May 14, 2019
    Copy the full SHA
    496ca53 View commit details
    Browse the repository at this point in the history
  2. C++ Levitation, NON-COMPILABLE: added sketch for correct 'Build Objec…

    …t' implementation. We should handle properly .ast and .decl-ast input files.
    Stepan Dyatkovskiy committed May 14, 2019
    Copy the full SHA
    e65c012 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2019

  1. C++ Levitation, NON-COMPILABLE: Another sketch for build object stage…

    …. We should rework it though.
    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    7c7655c View commit details
    Browse the repository at this point in the history
  2. C++ Levitation: -levitation-dependency acts very similarly to -ast-me…

    …rge. This commit reverts previous one.
    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    8b20586 View commit details
    Browse the repository at this point in the history
  3. C++ Levitation, Reverted some old code: removed CompileAST, removed L…

    …evitationAST input kind.
    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    b9b375e View commit details
    Browse the repository at this point in the history
  4. C++ Levitation: Removed file extension frontend options.

    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    234a328 View commit details
    Browse the repository at this point in the history
  5. C++ Levitation: rejected EmitDeclarationsOnly for PCH Generator.

    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    8c76ff4 View commit details
    Browse the repository at this point in the history
  6. C++ Levitation, ASTReader: added ReadDeclarationsOnly.

    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    b3185da View commit details
    Browse the repository at this point in the history
  7. C++ Levitation, ASTReader: optimized use of ReadDeclarationsOnly.

    Stepan Dyatkovskiy committed May 15, 2019
    Copy the full SHA
    643b349 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2019

  1. C++ Levitation: MergeASTDependenciesAction has been replaced with Lev…

    …itationBuildObjectAction
    Stepan Dyatkovskiy committed May 17, 2019
    Copy the full SHA
    ea531f7 View commit details
    Browse the repository at this point in the history
  2. C++ Levitation: markLevitationPackageDeclsAsPackageDependent moved in…

    …to ParserPostProcessor AST consumer. Also some minor refactoring was made.
    Stepan Dyatkovskiy committed May 17, 2019
    Copy the full SHA
    a24e293 View commit details
    Browse the repository at this point in the history
  3. C++ Levitation, LevitationFrontendActions: Introduced MultiplexConsum…

    …erBuilder.
    Stepan Dyatkovskiy committed May 17, 2019
    Copy the full SHA
    25ea4ab View commit details
    Browse the repository at this point in the history
  4. C++ Levitation, NON-RUNNABLE: This is just an idea, that we perhaps c…

    …ould reuse ASTReader and call ReadASTCore several times during its lifetime, since it looks like this use-case is supported and used during chained modules read (through IMPORTS PCH block).
    Stepan Dyatkovskiy committed May 17, 2019
    Copy the full SHA
    8364849 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2019

  1. C++ Levitation: LevitationModulesReader somehow managed to read both …

    …dependency and main file. But with two very draft FIXMEs though. Should be reworked in next commit: probably we could introduce ModuleKind::MK_LevitationDependency which is almost clone of MK_PCH, with minor difference (see commit changes).)
    Stepan Dyatkovskiy committed May 20, 2019
    Copy the full SHA
    d4c6881 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2019

  1. C++ Levitation: inruduced ModuleKind::MK_LevitationDependency. Remove…

    …d unused code.
    Stepan Dyatkovskiy committed May 21, 2019
    Copy the full SHA
    3b79f24 View commit details
    Browse the repository at this point in the history