aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-07-26Fix bug in precise change detection logicBoris Kolpackov1-4/+10
2017-07-26Implement module map storage in .d, use -fmodule-file-map in GCCBoris Kolpackov4-21/+106
2017-07-25Fix bug in switching to preprocessed sourceBoris Kolpackov1-7/+9
2017-07-25Actualize target path that came from command lineBoris Kolpackov1-1/+1
2017-07-25Remove incorrect assert in imported library processing logicBoris Kolpackov1-2/+5
2017-07-25Optimize handling of #line directives that don't change fileBoris Kolpackov2-2/+17
2017-07-25Use absolute path to translation unitBoris Kolpackov2-40/+56
This seems to be the only sane way to obtain the same hash regardless of the working directory.
2017-07-24Get rid of VC warningsKaren Arutyunov1-6/+6
2017-07-24Issue diagnostics when we ignore ignorable changesBoris Kolpackov1-2/+10
2017-07-24Optimize C/C++ lexerBoris Kolpackov6-36/+174
2017-07-24Change dir_path/string concatenation semanticsKaren Arutyunov3-15/+82
2017-07-22Fix testscript touch builtin some moreBoris Kolpackov1-3/+1
2017-07-22Increase target data pad sizeBoris Kolpackov2-3/+3
2017-07-22Fix testscript touch builtin testKaren Arutyunov1-1/+1
2017-07-22Implement detection of ignorable changes (whitespaces, comments)Boris Kolpackov12-182/+359
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-21Fix and improve modules testBoris Kolpackov1-1/+3
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 fail, warn, info, text directivesBoris Kolpackov2-1/+43
2017-07-19Add support for custom std.* modules in VCBoris Kolpackov1-16/+48
2017-07-19Add support for explicit fsdir{} specificationBoris Kolpackov2-14/+37
2017-07-17Allow independent wildcard patterns in a groupKaren Arutyunov3-13/+32
2017-07-13Change config.* to config.guess config.sub in buildfileKaren Arutyunov1-3/+3
2017-07-13Add hxx prerequisite type in test buildfilesKaren Arutyunov10-13/+15
2017-07-12Make use of wildcards in buildfilesKaren Arutyunov19-148/+32
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 Kolpackov3-30/+102
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-28Update to reflect new GCC signature for C++ modules branchBoris Kolpackov1-1/+1
2017-06-27Add support for regex function familyKaren Arutyunov13-24/+623
2017-06-26Add support for $path_search() and $path_match()Karen Arutyunov13-38/+467
2017-06-26Make path value type to be base for dir_pathKaren Arutyunov2-7/+10
2017-06-26Further C++ modules support documentationBoris Kolpackov1-2/+113
2017-06-24Make VC compatible with 'export module M;' by fixing up preprocessed outputBoris Kolpackov6-13/+66
2017-06-23Don't treat mxx{} as cc-sourceBoris Kolpackov2-4/+4
If we do it, then the link rule will refuse to match when modules are disabled (in which case mxx{} should be treated as a header).
2017-06-22Add extra support for symbol exporting in modularized projectsBoris Kolpackov6-4/+74
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-22Update manual with initial modules supportBoris Kolpackov1-0/+502
2017-06-21Add support for $envvar() functionKaren Arutyunov3-3/+96
2017-06-21Move regex utilities to libbutlKaren Arutyunov6-318/+2
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-20Build both variants of libraries in modules testBoris Kolpackov1-0/+1
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-19Dereference pointer when printingBoris Kolpackov1-1/+1
2017-06-19Add more examples of wildcard pattern exclusionsBoris Kolpackov1-0/+14
2017-06-19Make use of exit builtin in modules testBoris Kolpackov1-5/+1
2017-06-19Add support for exit testscript builtinKaren Arutyunov7-291/+858
2017-06-19Fix conditional scope to never be emptyKaren Arutyunov1-0/+1
2017-06-16Fix bug (forward-declared inline function)Boris Kolpackov2-32/+26