Java Properties format is extremely trivial and does not support any
kind of references or variables. It makes konan.properties repetitive.
This commits adds support of perl-like `$` sigil which allows to
reference properties inside values.
Previously it was "Plugin artifacts packed to task ':zipPlugin' property 'archiveFile'"
After fix it's "Plugin artifacts packed to /home/bobko/jb/kotlin/build/kotlin-plugin.zip"
`archiveFile` has type `Provider<RegularFile>`
Use `ld -r` on darwin-based targets to pre-link static caches
before final linker invocation. It allows to hide symbols from
caches to avoid linkage problems when linking 2 or more
Kotlin-produced binaries.
Sadly, it has several problems:
1. `ld -r` is slow.
2. There is no obvious way to make common symbols private.
These are the reasons why we don't enable `-Xpre-link-cached` by default.
The change is a bit complicated because the name mapping logic is
refactored so that we would compute the needed suffix first (either
module name, or multifile part class name), and then shove it into the
mangled name between the original function name and "$default", if the
function in question is the default arguments adapter.
The main motivation for this change was to fix KT-41809, but as a side
effect, private functions with default arguments in multifile parts now
also contain the file name, just like normal private functions.
#KT-41809 Fixed
* Use ForeignException wrapper to handle native exception [KT-35056]
* Add test
* Use Any? instead of NativePtr for automagic memory management
* Use clauseNSException specific clause, similar to `catch (NSException* e)
* cleanup + test fix
* Terminate on anything else but NSException
* Use ForeignException message for NSException details
* Code generated for AppleFamily only + move stuff to kotlinx.cinterop package
* Cleanup
* Fix platform-dependent code generation
* Fix test allocException
* wip: ForeignExceptionMode option: cinterop part
* ForeignExceptionMode support in compiler
* rework test for foreignExceptionMode option
* More tests on foreignExceptionMode option
* PR feedback: resolveFakeOverride and more
* Test reworked and extended
Co-authored-by: Vladimir Ivanov <vladimir.d.ivanov@jetbrains.com>
This change fixes serialization of friend paths and it uses
a file collection to record all friend paths. Also, when
computing the tested classpath for android projects, we now avoid
resolving the file collection until necessary.
Fixes: KT-41295
Test: ConfigurationCacheForAndroidIT