aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
AgeCommit message (Collapse)AuthorFilesLines
2017-07-24Issue diagnostics when we ignore ignorable changesBoris Kolpackov1-2/+10
2017-07-24Optimize C/C++ lexerBoris Kolpackov4-12/+161
2017-07-22Increase target data pad sizeBoris Kolpackov1-2/+2
2017-07-22Implement detection of ignorable changes (whitespaces, comments)Boris Kolpackov6-142/+327
2017-07-21Use binary mode when pre-parsing translation unitBoris Kolpackov1-2/+3
Failed that, the module export position we obtain cannot be reliably seeked to.
2017-07-21Adjust GCC module option name (-fmodule-file)Boris Kolpackov1-1/+1
2017-07-21Unset VC's IFCPATH if we are using custom std.* modulesBoris Kolpackov2-10/+48
2017-07-21Keep partially preprocessed output around if using modulesBoris Kolpackov1-27/+52
Since with modules we may have to recompile and otherwise unchanged translation unit because of a BMI change.
2017-07-19Add support for custom std.* modules in VCBoris Kolpackov1-16/+48
2017-07-05Keep track of translation unit type, make own BMI for impl unit firstBoris Kolpackov3-36/+65
2017-06-29Pass entire BMI graph, not only direct imports and re-exportsBoris Kolpackov2-30/+63
All current implementations require access to the entire graph (though Clang embeds the file references so we don't need to pass the options).
2017-06-24Make VC compatible with 'export module M;' by fixing up preprocessed outputBoris Kolpackov5-13/+55
2017-06-22Add extra support for symbol exporting in modularized projectsBoris Kolpackov3-3/+31
Since modules don't see each other's macros, we can use a single, keyword- like macro for dll-exporting that is managed by the build system (so no need for an "export" header). For example: cxx.features.symexport = true export __symexport void f ();
2017-06-20Adjust search logic for std.* modulesBoris Kolpackov1-14/+45
1. Don't do fuzzy match for std.* modules (more precisely, for 'std' and std.*). This means if we want to build a std.* module, we have to specify its name explicitly: mxx{std-core}@./: cc.module_name = std.core The idea is that we don't want, say, std.core to be fuzzy-matched to some unrelated core.mxx while #2 below could have done the right thing. 2. We allow such modules to go unresolved with the assumption that they are pre-built and will be found by other means (e.g., VC's IFCPATH).
2017-06-20Force Clang not to reference source files from BMIs, add traceBoris Kolpackov1-1/+12
2017-06-20Fix bug in bmi{} rule chainingBoris Kolpackov1-2/+8
2017-06-16Add support for explicitly specifying module name on mxx{} targetBoris Kolpackov1-20/+31
2017-06-16Clean up module-related diagnosticsBoris Kolpackov2-7/+25
2017-06-16Store module information in depdbBoris Kolpackov4-98/+254
2017-06-15Add support for ln testscript builtinKaren Arutyunov1-12/+10
2017-06-15Implement module search in prerequisite librariesBoris Kolpackov1-78/+164
2017-06-14Get rid of warningsBoris Kolpackov1-2/+2
2017-06-14Next installment in C++ modules saga: module search, re-export supportBoris Kolpackov6-66/+403
2017-06-12Remove few unused lambda capturesBoris Kolpackov3-6/+6
2017-06-12Fix couple of deadly bugsBoris Kolpackov1-1/+1
2017-06-12Add workaround for Clang module import during preprocessingBoris Kolpackov2-19/+22
2017-06-09Add support for VC15u3 which bumped the compiler version to 19.11Boris Kolpackov1-9/+11
2017-06-08Implement rule chaining for modulesBoris Kolpackov7-260/+458
2017-06-05Fix bug in library meta-information protocol implementationBoris Kolpackov1-7/+9
2017-06-04Adjust Clang language selectionBoris Kolpackov1-22/+9
2017-06-02Link support for modules: link object member, synthesize rulesBoris Kolpackov1-40/+78
2017-06-01Implement module interface unit compilation for Clang and VCBoris Kolpackov2-79/+184
2017-06-01Rename function not to clash with typeBoris Kolpackov2-8/+8
2017-06-01Rework language selection during compilation codeBoris Kolpackov2-50/+108
2017-05-31Fix bug in compiler language selection (-x option)Boris Kolpackov1-6/+6
2017-05-31C++ modules work: add target typesBoris Kolpackov6-52/+126
2017-05-30Make use of ifdstream::read_text()Karen Arutyunov1-4/+1
2017-05-30Diagnose lack of module support in extract_modules()Boris Kolpackov2-5/+16
2017-05-30Rework C/C++ standard translation in preparation for experimental/modulesBoris Kolpackov7-57/+45
Also fix bug in clang-apple versioning.
2017-05-29Work around VC14 bugBoris Kolpackov1-1/+2
2017-05-29Add ability to limit amount of preprocessing done on sourceBoris Kolpackov4-85/+241
The cc.preprocessed variable can be 'none' (not preprocessed), 'includes' (no depends on preprocessor, e.g., #ifdef, etc), and 'all' (the source is fully preprocessed). Note that for 'all' the source can still contain comments and line continuations.
2017-05-28Fix bug in cc::extract_module() diagnosticsBoris Kolpackov1-5/+5
2017-05-28Diagnose #include directives in C/C++ lexerBoris Kolpackov2-23/+33
2017-05-27Handle #line directives in C/C++ lexerBoris Kolpackov4-57/+172
This way the parser now reports logical rather than physical location in diagnostics.
2017-05-26Fix depdb update logic in cc::compileBoris Kolpackov1-28/+22
2017-05-25Extract C++ modules informationBoris Kolpackov4-29/+232
For now we do it for every translation unit in order to test our C++ lexer and parser.
2017-05-25Fix few bugs in C++ lexer and parserBoris Kolpackov3-20/+41
2017-05-25Add compiler_id enumBoris Kolpackov9-81/+138
2017-05-25Implement parsing of C++ module declarationsBoris Kolpackov3-1/+255
2017-05-24Implement support for tokenization of preprocessed C/C++ sourceBoris Kolpackov2-0/+849