Commit Graph

424 Commits

Author SHA1 Message Date
Vassil Vassilev
ee9fc709ab We don't need the ValuePrinter.h 2014-05-21 18:11:58 +02:00
Vassil Vassilev
d03ba0fb9f Reduce cling's runtime overhead. 2014-05-21 18:11:58 +02:00
Vassil Vassilev
e1c16dec1b Move the documentation at the accurate place. 2014-05-21 18:11:58 +02:00
Vassil Vassilev
2b9860162e Typo. 2014-05-19 16:27:54 +02:00
Vassil Vassilev
711e39e092 Pass in the transaction ptr, whoose value we print out. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
74ad676363 Allow handling of ptr types by the non-specialized version. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
46636a18d3 No need to pass the interpreter. We have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
28de2c1cc2 No need to pass in the ASTContext, we have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
47a0d9e5e8 No need of complex indirections and 'fancy' function signatures. Simplify. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
3dc52b1e5f No need of 'public' StreamClingValue. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
96be4e98c5 Remove dangling comment. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
3e5af816aa No need to synthesize anything anymore. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
3dfc56637b Get rid of redundant class. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
c86fbc27b9 Rewire the dumping on cling::Value to its new implementation.
Dump cling::Value within setNoAlloc routines because this is its lifespan,
otherwise gets deleted if nobody requested it. I.e it was created only for
value printing purposes.

Dump cling::Value outside setWithAlloc because the actual value is not put inside
until the call to ::new finishes, thus we need to do it outside, i.e in EvaluateInternal.

Switch on the ValueExtraction synthesizer even when 'just' value printing. We
depend on it. Must be factored out properly in one class.

Stop attaching the value printing template magic, which didn't work in some cases.

Update the ref file, because now there is better type information.

Adapt the user-defined printout functions (TDatime).
2014-05-18 18:08:58 +02:00
Vassil Vassilev
245f098fe1 Record the outcome of VPAuto (auto detection if a value should be printed out). 2014-05-18 18:08:58 +02:00
Vassil Vassilev
e587158b03 Add the Interpreter* to the cling::Value. We can afford it, because its actual size is 24 and it anyway gets aligned to 32 (except on a few old washing machines). 2014-05-18 18:08:58 +02:00
Vassil Vassilev
b9cc758195 Allow simplisticCastAs to work on ptr types. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
ca50db4ec7 Remove the const so that the proper overload can be picked up. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
39f42b02cd Instead of passing the Expr*, which is being value printed, pass the Interpreter* and deduce the expr. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
cb29e6e529 Add printing utility functions to the cling::Value. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
9b009e02a6 Hide codegen from external users. 2014-05-18 18:08:58 +02:00
Axel Naumann
4dfe5ee75a Make interpreter available to callbacks. 2014-05-14 15:32:58 +02:00
Axel Naumann
af66248191 Accessor to current transaction, useful e.g. for callbacks. 2014-05-14 15:32:58 +02:00
Lukas Vacek
ce008b07fc Fix input files processing (cling foo.c should work now) 2014-05-02 19:01:01 +02:00
Axel Naumann
8b60eaf361 Survive and signal non-unique lookup results. 2014-04-29 17:47:58 +02:00
Vassil Vassilev
f75cef233f Implement callbacks for the DynamicLibraryManager. 2014-04-14 20:58:15 +02:00
Vassil Vassilev
68a0a45eab Use normalized filenames. 2014-04-14 20:58:13 +02:00
Vassil Vassilev
59c7b7b2d7 Coding convention. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
6bb29c9130 Consistent argument names. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
ebad01a510 Simplify and extend the dynamic library manager.
Now it provides an interface which can lookup library names. It can unload a
library and the implementation of loading and resolving a library name is much
simpler.

The extensions are greatly used by the unloading facilities in cling its users.
2014-04-14 09:09:00 +02:00
Vassil Vassilev
0abad4f1ff Implement an interface for file/librarly lookup, given the interpreter and system inc paths. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
e9b2e010a6 Style. 2014-04-14 09:08:59 +02:00
Axel Naumann
1b9910ea28 Fix destruction of array-of-structs.
Iterate over the elements, calling the dtor on each.
Requires two more fields in the AllocatedValue to track the array size and
element offset.
Note that this is only implemented for constant size arrays; all others are expected to not be returned (and thus not stored) by value.
2014-04-11 09:00:01 +02:00
Vassil Vassilev
76f9617076 Doxygen. 2014-04-09 18:36:04 +02:00
Vassil Vassilev
0314a15148 Shorten the unnecessary long interface name. 2014-04-09 11:19:00 +02:00
Vassil Vassilev
522b254345 Move the typedef definition before private section. 2014-04-09 11:19:00 +02:00
Vassil Vassilev
d4da070504 Improve doc style. 2014-04-09 11:18:59 +02:00
Vassil Vassilev
d4299217d4 Improve encapsulation. 2014-04-09 11:18:59 +02:00
Vassil Vassilev
d49c03b10c Files that are .x-ed must be unloadable too. Simplify. 2014-04-09 09:27:08 +02:00
Vassil Vassilev
c868ddfd49 In cases of cling::Value reuse we need to update its settings even if we evaluated void expression. 2014-04-02 16:56:58 +02:00
Vassil Vassilev
76c4024d1d Polish the implementation. Each pragma equivalent must use different source location. 2014-04-02 15:29:58 +02:00
Axel Naumann
d80be78891 No vector for time-critical i'faces; use SmallVectorImpl in libCling i'faces.
The use of vector forces an allocation for each call, something we don't need to
impose.

SmallVectorImpl doesn't expose the static alloc size; and our interfaces don't
care. Only the actual storage definition needs to define the size, no subsequent
reference.
2014-04-01 18:31:59 +02:00
Axel Naumann
fd71458a5f Implement cheap move ctor/op=. Member-init order. 2014-04-01 18:31:58 +02:00
Axel Naumann
d00d9e8d54 Simplify; adapt to new Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
93970e8c35 Replace StoredValueRef by Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
de2b4ed039 A "usually" allocation-free cling::Value (ROOT-6075). 2014-04-01 18:31:57 +02:00
Vassil Vassilev
234bfb7770 Simplify some of the changes due to the new diag mapping. 2014-04-01 17:09:58 +02:00
Vassil Vassilev
33676c14a9 Implement dump of MacroDirectiveInfo. 2014-03-31 14:03:08 +02:00
Vassil Vassilev
1f25fe3a00 CXX consistency. 2014-03-31 14:03:03 +02:00
Vassil Vassilev
0250ffe457 Fwd declare the clang::DiagnosticsEngine. 2014-03-31 14:03:01 +02:00