52 Commits

Author SHA1 Message Date
Axel Naumann
c30a28221c Implement .O and .O <N> to set the opt level. 2017-04-12 15:44:35 +02:00
Frederich Munch
e709fd898b Add 'decl’ and ‘undo’ as predicates to .stats command. Add Interpreter::dump method. 2017-02-01 15:59:07 +01:00
Axel Naumann
b1d025d12f llvm upgrade. 2016-06-15 14:14:33 +02:00
Axel Naumann
7aa512757c DenseMap<const Transaction*,...> now needs definition of cling::Transaction. 2016-06-15 14:14:32 +02:00
Axel Naumann
c431fc9d3e Make debug symbols optional (.debug). 2015-03-20 15:39:23 +01:00
Axel Naumann
c86be214cb Fix doxygen warning. 2015-01-22 11:26:03 +01:00
Axel Naumann
7e981e541c Factor out unload point creation. 2015-01-21 16:59:05 +01:00
Axel Naumann
db0a700476 Fix doxygen warning. 2014-10-22 12:36:08 +02:00
Axel Naumann
70d7b66616 Fix doc warning. 2014-10-21 17:52:07 +02:00
Axel Naumann
0bc17f63c4 Pass the .L-ed transaction to actOnxCommand; last transaction might be wrong. 2014-10-06 10:40:10 +02:00
Vassil Vassilev
e24aca69f6 Implement .T command generating fwd decls. 2014-07-22 15:41:41 +02:00
Vassil Vassilev
56b5dc86dd Obey coding rules and indentation. 2014-06-04 09:20:15 +02:00
manasij7479
024b16df11 Init TagsExtension Module, for extending cling to provide interactive hints
AutoloadCallback: Implementing InterpreterCallbacks to attach the module to cling
   The main focus is on overriding LookupObject so that the information about
   lookup failures are obtained from clang.
   The type of the name is not taken into consideration for now.

TagManager: To manage and lookup information from various sorts of tag files.
   Currently a TagManager object is owned by the callback system.
   This may change in future.

Wrapper: As a base class for handling particular types of tagfiles.
   The TagManager maintains a container of Wrappers.

CtagsFileWrapper: Implementing a wrapper for ctags.
   This class is responsible for generating a tagfile from a given path or list of files.
   It also performs lookups in the file generated by it.

And a few simple file system utils to complement llvm::sys::fs and path utilities
2014-06-04 09:20:14 +02:00
Philippe Canal
d03d24bb23 Add support for .@ to cancel continuation 2014-05-29 17:04:59 +02:00
Philippe Canal
94219bdc83 Work-around transaction unload not informing MetaSema.
When a file is unloaded its entry should be removed from MetaSema::m_WaterMarks.
At the moment the corresponding callback is not implemented.

Instead, we also record the relation <Transaction*,Entry*>, so that upon
MetaSema requesting an unload, we can clean-out the corresponding data
from m_WaterMarks.

In addition, to catch the case where the target transaction (unloadPoint)
is not longer present we issue an error and do not unload anything.
2014-04-29 03:46:59 +02:00
Timur Pocheptsov
cc6ae43942 .namespace command. 2014-04-14 08:55:03 +02:00
Axel Naumann
93970e8c35 Replace StoredValueRef by Value. 2014-04-01 18:31:58 +02:00
Vassil Vassilev
96319aa30f Implement .U FileName. 2014-03-31 14:03:08 +02:00
Vassil Vassilev
1851604b8c Rename printAST to printDebug. 2014-03-03 15:27:05 +01:00
Vassil Vassilev
f29b09e054 Remove .printIR and replace it with smarter debug class reusing the latest state tracker. 2014-03-03 15:27:04 +01:00
Vassil Vassilev
943350a7c2 Implement .stats command printing out statistics about internal ADT 2014-02-28 10:35:59 +01:00
Axel Naumann
9b678f2829 Allow updating of the MetaProcessor's output stream, to redirect a meta command. 2014-02-25 14:18:01 +01:00
Vassil Vassilev
c992cf3047 Implement reloading on .L
We keep the FileEntry -> Transaction mapping so that next time there is .L
we can figure out that it was already loaded and unload it and reload it again.
2014-02-20 10:36:10 +01:00
Vassil Vassilev
a25c6b5ce5 Blanks. 2014-02-20 10:36:09 +01:00
CristinaCristescu
c9ec997188 Redirection special 2>&1 case. 2014-01-15 12:02:04 +01:00
CristinaCristescu
6296b84ab3 Changes to redirection. 2014-01-15 12:02:03 +01:00
CristinaCristescu
0ec0ba48b6 Change redirection from Interpreter to MetaProcessor. 2014-01-15 12:02:03 +01:00
CristinaCristescu
34dfd69b53 Redirect err. 2014-01-15 12:02:03 +01:00
CristinaCristescu
b4e3a9b6b5 Redirect 2014-01-15 12:02:02 +01:00
CristinaCristescu
7684521068 Action on redirect. 2014-01-15 12:02:02 +01:00
Axel Naumann
44481ace1e Fix license; remove $Id$ version. 2014-01-07 11:14:04 +01:00
Vassil Vassilev
ab8d7488ed Make .undo [Constant] really taking an optional constant. 2013-10-29 20:19:26 +01:00
Vassil Vassilev
21c8d3c81c Add support for .undo [Number], extend the meaning of the constant token, document. 2013-10-29 20:19:26 +01:00
Axel Naumann
8f9e6ebe81 Use StringRef instead of Path. 2013-09-26 17:54:17 +02:00
Jerome Beclin
afcd8a7cca Commit of storeState/compareState that now print lookup table and included files
Implementation of .files moved in the Interpreter.cpp

storeState now calls three functions: dumpAST(), dumpLookup(), printIncludedFiles().
compareState now calls three functions: compareAST(), compareLookup(), compareIncludedFiles().
It's working for the included files and the AST, and it needs a new patch for
being able to dump the lookup tables (we cannot use dumpLookups() for the moment).
2013-09-07 10:41:01 +02:00
Jerome Beclin
ead0f8d091 Implement cling (clang) internal state verification.
There are cases where cling needs to 'rollback' its state to a previous one.
Examples for that are cling's error recovery and code unloading. This can become
easily tricky to implement. One step reducing the complexity is the verification
of the 'interesting' data structures.

Implement .storeState and .compareState commands, which dump the internal compiler
data structures like AST (implemented), included files (in progress) and lookup
tables (unimplemented yet). The information is dumped into a file and then that
file is diff-ed to the one taken with .compareState. If they were identical all
files are deleted otherwise a .diff file with the differences remains for debug.
2013-08-21 14:29:57 +02:00
Vassil Vassilev
87a4b6bd63 From Baozeng: Add .printIR meta command, printing the llvm::Module. 2013-06-17 21:00:58 +02:00
Axel Naumann
1372426925 Add param doc; 80cols. 2013-06-11 13:26:50 +02:00
Axel Naumann
11e71f5c76 Make result evaluation optional again. 2013-06-10 17:12:50 +02:00
Axel Naumann
0c1c22f002 Return action result and Value from all interfaces. Force callers to rpovide them, to make them handle errors etc. 2013-06-07 15:19:51 +02:00
Vassil Vassilev
1ae610b211 Fix savannah #99234.
The issue we experienced is that we couldn't pipe the output in the terminal.
The reason is that we were using llvm::outs() which closes explicitly the file
descriptor (thanks Axel for the help debugging).
We introduce our custom stream, which keeps the file descriptor open so that
we can use it in pipes. For debugging purposes, however we use/should use llvm::errs()

The lesson learned:
DONT USE LLVM::OUTS() ANYMORE!


git-svn-id: http://root.cern.ch/svn/root/trunk@48316 27541ba8-7e3a-0410-8455-c3a389f83636
2013-01-17 15:27:14 +00:00
Timur Pocheptsov
f4b4c78748 .! is back, fix .typedef to process sequence of tokens, containing white-space characters.
git-svn-id: http://root.cern.ch/svn/root/trunk@47962 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-11 09:19:50 +00:00
Vassil Vassilev
dc5e70e317 Store the last value that was returned from execution.
git-svn-id: http://root.cern.ch/svn/root/trunk@47915 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-07 13:02:06 +00:00
Vassil Vassilev
9881b59a06 Get rid of meta processor options and various improvements.
git-svn-id: http://root.cern.ch/svn/root/trunk@47889 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-06 11:47:24 +00:00
Timur Pocheptsov
4bae258b78 Support for 'typedef' command.
git-svn-id: http://root.cern.ch/svn/root/trunk@47851 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-05 13:20:58 +00:00
Vassil Vassilev
1c073c84c6 Doxygen.
git-svn-id: http://root.cern.ch/svn/root/trunk@47841 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-05 09:46:28 +00:00
Vassil Vassilev
5ea5ea8351 Readd support for .g
git-svn-id: http://root.cern.ch/svn/root/trunk@47781 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-02 20:14:02 +00:00
Vassil Vassilev
a530a63d15 Readd custom meta command support.
git-svn-id: http://root.cern.ch/svn/root/trunk@47776 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-02 19:01:02 +00:00
Vassil Vassilev
d2c7012d6e Documentation.
git-svn-id: http://root.cern.ch/svn/root/trunk@47763 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-01 14:30:31 +00:00
Vassil Vassilev
e6b1a83e6a Use small caps for method names.
git-svn-id: http://root.cern.ch/svn/root/trunk@47762 27541ba8-7e3a-0410-8455-c3a389f83636
2012-12-01 14:07:57 +00:00