IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
This is triggered by emitting operator<< 'class std::__1::basic_ostream<char,
struct std::__1::char_traits<char> > &(int)' even though its marked as exported
in general. Now that clang and libc++ agree on the handling of exported
templates we can remove our work-around.
Remove trigger__cxa_atexit(), we will just remap until successful.
Remove unused dso parameter.
Instead of friending just provide a function.
Pass a transaction, the typesafe way.
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.
Here we don't want to depend on the JIT runFunction, because of its limitations,
when it comes to return value handling. There it is not clear who provides the
storage and who cleans it up in a platform independent way.
Depending on the type we need to synthesize a call to cling:
0) void : do nothing;
1) enum, integral, float, double, referece, pointer types :
call to cling::internal::setValueNoAlloc(...);
2) object type (alloc on the stack) :
cling::internal::setValueWithAlloc
2.1) constant arrays:
call to cling::runtime::internal::copyArray(...)
We need to synthesize later (see RuntimeUniverse.h)
Wrapper has signature: void w(cling::StoredValueRef SVR)
case 1):
setValueNoAlloc(gCling, &SVR, lastExprTy, lastExpr())
case 2):
new (setValueWithAlloc(gCling, &SVR, lastExprTy)) (lastExpr)
case 2.1):
copyArray(src, placement, N)
The underlying issue is that the caller need to provide argument setup
and cleanup, which for 32bit is different than in 64, for example.
The approach we propose should be independent on the concrete platform
implementation, because we pass in the storage and depending on the
return result, we let cling runtime to deside whether and how to alloc
storage.
Currently only implemented for the STL collection.
This could eventually be used to allow customization
of which default argument to strip and which class template.
For now, it is only used to prevent the addition of template
default template argument to the STL collection ... which
we would any strip.
This fixes the secondary issue in ROOT-6020 (one class template
instance having more than one corresponding TClass due to the
inconsistency in the normalization (not adding vs not stripping)
InclusionDirective() callback tells us that an inclusion directive has been processed, allowing us to try to autoload classes using their header file name.
For example try to autoload TGClient (libGui) when seeing #include "TGClient.h"
This should prevent potential crash when executing macros using globals (e.g. gClient), with the following error:
ExecutionContext: use of undefined symbol 'gClient'!