*f3830cb07e- (tag: build-1.4.0-dev-8041) Make KotlinNativeTasks.konanTargetsForManifest non-nullable, otherwise Gradle fails (vor 3 Tagen) <Dmitry Savvinov> *686d00ddf5- (tag: build-1.4.0-dev-8029) Collect and pass to K2Native actual targets of native-shared compilation (vor 4 Tagen) <Dmitry Savvinov> *550aa1ba59- (tag: build-1.4.0-dev-8028) Remove partial quotes in csv files (vor 4 Tagen) <Yunir Salimzyanov> *cf8b29a636- Add missing commas to csv files (vor 4 Tagen) <Yunir Salimzyanov> *856d8e64a2- Escape fields with extra commas in csv for muted tests (vor 4 Tagen) <Yunir Salimzyanov> *5d60572cfd- (tag: build-1.4.0-dev-8017) Temporarily disabled optimization because of failing tests (vor 4 Tagen) <Valentin Kipyatkov> *1128d659a4- (tag: build-1.4.0-dev-8010) (CoroutineDebugger) No restored frames in coroutine context found. (vor 4 Tagen) <Vladimir Ilmov> *87393398f2- (tag: build-1.4.0-dev-8009) FIR serializer: fix isLambda copying (vor 4 Tagen) <Mikhail Glukhikh> *d716c47f17- (tag: build-1.4.0-dev-8008) Gradle Project importing: move ModelBuilders and ModelProviders to kotlin-gradle-tooling (vor 4 Tagen) <Natalia Selezneva> *6ca3a994d9- (tag: build-1.4.0-dev-8007) [FIR2IR] Disable initializer generation for external enum entries (vor 4 Tagen) <simon.ogorodnik> *4133749ee7- [FIR2IR] Fix property fake overrides (vor 4 Tagen) <simon.ogorodnik> *a11866ab5a- [FIR2IR] Fix labeled this references (vor 4 Tagen) <simon.ogorodnik> *3d60fdfed1- Raw FIR: don't check class kind for data / inline modifiers (vor 4 Tagen) <Mikhail Glukhikh> *9a561f4a7c- FIR2IR: generate synthetic members for inline class (vor 4 Tagen) <Jinseong Jeon> *ef8bcceb8e- [FIR2IR] Use only data class primary constructor parameters for equals (vor 4 Tagen) <simon.ogorodnik> *0890b8bad3- (tag: build-1.4.0-dev-8005) FIR2IR: set superQualifierSymbol for property access (vor 4 Tagen) <Jinseong Jeon> *a084c5bf7d- FIR2IR: populate overriddenSymbols for overriding properties (vor 4 Tagen) <Jinseong Jeon> *02aa11a0a0- (tag: build-1.4.0-dev-8004) [FIR] Support for EXPOSED_TYPE_PARAMETER_BOUND (vor 4 Tagen) <rapturemain> *bfffcf6b23- (tag: build-1.4.0-dev-7991) Update BoxJsTest expected reachable nodes because of new collection builders (vor 4 Tagen) <Abduqodiri Qurbonzoda> *ec166db506- Implement collection builders (vor 4 Tagen) <Abduqodiri Qurbonzoda> *1bf41ba7d2- (tag: build-1.4.0-dev-7988) Remove 191 support because of outdated platform whitelist API (vor 4 Tagen) <Anton Yalyshev> *658c30b6b3- Combine usage of kotlin.ide.settings FUS collector #KT-38620 Fixed (vor 4 Tagen) <Anton Yalyshev> *a407605f63- (tag: build-1.4.0-dev-7987) Turn off highlight perf tests for `kotlin/gradle/*kts` (vor 5 Tagen) <Vladimir Dolzhenko> *df4f1365ec- (tag: build-1.4.0-dev-7976) PSI2IR: support SAM conversion to substituted types (vor 5 Tagen) <pyos> *d9fd51c608- (tag: build-1.4.0-dev-7973) JVM_IR: basic suspend conversion on argument test passed (vor 5 Tagen) <Dmitry Petrov> *819634c4cd- (tag: build-1.4.0-dev-7972) Official logo for Toolbox icon & IDEA Welcome screen (vor 5 Tagen) <Victor Turansky> *54cfd1f625- (tag: build-1.4.0-dev-7970) [FIR] Handle protected effective visibility relation properly (vor 5 Tagen) <rapturemain> *07e9b9517a- [FIR] Extract interface FirEffectiveVisibility (vor 5 Tagen) <Mikhail Glukhikh> *e81c2c5c6d- FirStatusResolveTransformer: don't enter property accessor bodies (vor 5 Tagen) <Mikhail Glukhikh> *9e413bde11- [FIR] Don't visit locals in status resolve transformer (vor 5 Tagen) <Mikhail Glukhikh> *aafb4482c3- (tag: build-1.4.0-dev-7968) CodeToInlineBuilder: cleanup code (vor 5 Tagen) <Dmitry Gridin> *bcefee0105- Replace deprecated symbol usage: do not add 'this' receiver for imported object function (vor 5 Tagen) <Toshiaki Kameyama> *9d27ba5b59- (tag: build-1.4.0-dev-7965) HMPP: Backward-compatible Kotlin facet serialization (vor 5 Tagen) <Dmitriy Dolovov> *1a26d2e157- (tag: build-1.4.0-dev-7957) Fix exception during resolution of incorrect `fun` interface (vor 5 Tagen) <Mikhail Zarechenskiy> *780bc1f607- Fix `fun` interfaces with extension receivers (vor 5 Tagen) <Mikhail Zarechenskiy> *fa50d66afe- [NI] Fix SAM conversion for projected-out members (vor 5 Tagen) <Mikhail Zarechenskiy> *e3fe1bcf7c- [NI] Place varargs at the end of value arguments list (vor 5 Tagen) <Mikhail Zarechenskiy> *639af69185- (tag: build-1.4.0-dev-7954, tag: build-1.4.0-dev-7952) Minor. Fix test data (vor 5 Tagen) <Mikhail Bogdanov> *e17e3401eb- (tag: build-1.4.0-dev-7951) [Gradle, JS] Use disambiguation classifier in platform only for both (vor 5 Tagen) <Ilya Goncharov> *9fa8e009c6- (tag: build-1.4.0-dev-7948) Support equals/hashCode for fun interfaces in JVM and JVM_IR (vor 5 Tagen) <Alexander Udalov> *de461dd9a5- Minor, extract function in FunctionReferenceLowering (vor 5 Tagen) <Alexander Udalov> *b77e5a21ec- Report error if fun interface method has JVM name getFunctionDelegate (vor 5 Tagen) <Alexander Udalov> *55934ff63a- (tag: build-1.4.0-dev-7945) Fixed collecting MPP targets in gradle statistics (vor 5 Tagen) <Andrey Uskov> *96887d6e9f- Fixed import of JS source sets with Both mode (vor 5 Tagen) <Andrey Uskov> *1f40a71cbe- (tag: build-1.4.0-dev-7944) [Gradle, JS] No create target on import if no target in DSL (vor 5 Tagen) <Ilya Goncharov> *84ad9dd8de- (tag: build-1.4.0-dev-7941) Increase warm-up, test iterations in PerformanceTypingIndentationTest (vor 5 Tagen) <Vladimir Dolzhenko> *4a0d1b0b9d- (tag: build-1.4.0-dev-7939) Use precalculated intersection type in JVM backend (vor 5 Tagen) <Ilya Chernikov> *45ac81c585- Do not check type depth for constrains generated on subtyping (vor 5 Tagen) <Ilya Chernikov> *1bcccca007- (tag: build-1.4.0-dev-7928) j2k: insert kotlin.Throws annotation instead of kotlin.jvm.Throws (vor 5 Tagen) <Ilya Gorbunov> *844e567421- AddThrowsAnnotationIntention: fix compatibility for old annotation (vor 5 Tagen) <Dmitry Gridin> *6bf85beba7- AddThrowsAnnotationIntention: add common kotlin.Throws (vor 5 Tagen) <Ilya Gorbunov> *0f9718bf0d- Add test on kotlin.native.Throws ambiguity (vor 5 Tagen) <Denis Zharkov> *c6ae423816- Add tests for KT-35468 (vor 5 Tagen) <Denis Zharkov> *9c2e149b5b- Expect/actual kotlin.Throws annotation (vor 5 Tagen) <Ilya Gorbunov> *9c0b49d3ed- Advance bootstrap to 1.4.0-dev-7751 (vor 5 Tagen) <Ilya Gorbunov> *2f015b4c7a- (tag: build-1.4.0-dev-7927) Fix `testKotlin_moveTopLevelDeclarations_movePrivatePropertyWithDefaultAccessors_MovePrivatePropertyWithDefaultAccessors` test (vor 5 Tagen) <Dmitry Gridin> *b1bef8485d- (tag: build-1.4.0-dev-7925) [Commonizer] Capitalize messages to be printed at console (vor 5 Tagen) <Dmitriy Dolovov> *0f6dbed03b- [Commonizer] Don't fail when one of targets is not supported at the host (vor 5 Tagen) <Dmitriy Dolovov> *580ffc1d99- (tag: build-1.4.0-dev-7924) Reformat FrameworkAdapter example code in comment (vor 5 Tagen) <Mike Samuel> *f4cea1b0cd- (tag: build-1.4.0-dev-7923) Fix typo in KDoc for Element.getPolymorphicElement (vor 5 Tagen) <Vadim Semenov> *886c4eb492- (tag: build-1.4.0-dev-7919) Report kotlin bootstrap version for integrity test build (vor 5 Tagen) <Ilya Gorbunov> *86d098b8ad- Infer internal artifacts bootstrap repository (vor 5 Tagen) <Ilya Gorbunov> *f9bb07e128- (tag: build-1.4.0-dev-7916) JVM_IR: generate flags for adapted function references (vor 5 Tagen) <Dmitry Petrov> *94bc8eaf83- (tag: build-1.4.0-dev-7909) Wizard: remove copyrights from iOS template (vor 6 Tagen) <Ilya Kirillov> *6a9a97006b- Wizard: fix not created by default xcode framework in shared module (vor 6 Tagen) <Ilya Kirillov> *47125553cb- Wizard: fix android project template (vor 6 Tagen) <Ilya Kirillov> *72030ee94e- Wizard: do not run whole JPS project importing in write action (vor 6 Tagen) <Ilya Kirillov> *b404e6324f- Wizard: always allow user to choose project JDK (vor 6 Tagen) <Ilya Kirillov> *56eebed1d8- Wizard: fix kotlin and resources directory names in Android module (vor 6 Tagen) <Ilya Kirillov> *ccb8a93ee3- Wizard: minor, move message to bundle (vor 6 Tagen) <Ilya Kirillov> *1a68e40ebd- Wizard: add common target to FullStackWebApplicationProjectTemplate (vor 6 Tagen) <Ilya Kirillov> *78b5be94e9- Wizard: validate project path for emptiness (vor 6 Tagen) <Ilya Kirillov> *5f79ffbe50- Wizard: reduce buildsystem buttons sizes (vor 6 Tagen) <Ilya Kirillov> *d9889e449f- Wizard: do not create project with snapshot version (vor 6 Tagen) <Ilya Kirillov> *730cce93ed- Wizard: add arrows for module selection popup (vor 6 Tagen) <Ilya Kirillov> *7286fcbf39- Wizard: use new api from gradle to import project on >= 193 (vor 6 Tagen) <Ilya Kirillov> *e6d8e67a3a- (tag: build-1.4.0-dev-7907) [FIR] Generify ComponentArray (vor 6 Tagen) <Dmitriy Novozhilov> *a4a58a9d74- [FIR] Get rid of FirSession.service (vor 6 Tagen) <Dmitriy Novozhilov> *52933e161e- (tag: build-1.4.0-dev-7905) Use AssociatedObjects on JS too (vor 6 Tagen) <Leonid Startsev> *905a8ca0d0- (tag: build-1.4.0-dev-7904) Reflect: Handle methods with inline class default parameters (vor 6 Tagen) <Steven Schäfer> *86d6470ced- (tag: build-1.4.0-dev-7903) Update test data forgotten in36a57973(vor 6 Tagen) <Pavel Kirpichenkov> *2992d49a1d- (tag: build-1.4.0-dev-7898, origin/rr/abannykh/fix-findAssociatedObjects) JS IR: fix `findAssociatedObjects` for primitive type KClass'es (vor 6 Tagen) <Anton Bannykh> *878e838f0b- (tag: build-1.4.0-dev-7895) JVM: Suspend converted references inherit AdaptedFunctionReference (vor 6 Tagen) <Dmitry Petrov> *deecb6a28e- (tag: build-1.4.0-dev-7892) JVM: move synthetic line number generation to the inliner (vor 6 Tagen) <pyos> *91b6daeacc- JVM: fix debug info for script file classes (vor 6 Tagen) <pyos> *1e8a660fda- IR: use default parameters in Ir...Impl constructors (vor 6 Tagen) <Georgy Bronnikov> *9561cc8270- JVM_IR: JvmNameProvider (vor 6 Tagen) <Georgy Bronnikov> *52df54ae49- IR: add NameProvider (vor 6 Tagen) <Georgy Bronnikov> *82d55e1a67- Minor: remove unused parameters, reformat code (vor 6 Tagen) <Georgy Bronnikov> *6372c01e49- (tag: build-1.4.0-dev-7890) Added missing specificity comparator to FIR (vor 6 Tagen) <Alexander Podkhalyuzin> *b6b8dd1eab- (tag: build-1.4.0-dev-7889) JVM IR: Avoid unnecessary CHECKCASTs in enum classes (vor 6 Tagen) <Steven Schäfer> *cb3a4727cf- (tag: build-1.4.0-dev-7888) JVM IR: Optimize field initializers in secondary constructors (vor 6 Tagen) <Steven Schäfer> *fed6272de4- (tag: build-1.4.0-dev-7887) [JVM_IR] Use ifne and ifeq for integer zero comparisons. (vor 6 Tagen) <Mads Ager> *e8a6ddceaa- (tag: build-1.4.0-dev-7884) JS IR: hide runtime helpers from users (vor 6 Tagen) <Anton Bannykh> *9f20e65595- (tag: build-1.4.0-dev-7881) FIR resolve completion: extract prepareQualifiedTransform (vor 6 Tagen) <Mikhail Glukhikh> *eecf33a31d- FIR resolve completion: add delegated completion for variable access (vor 6 Tagen) <Mikhail Glukhikh> *4866e7a988- FIR resolve completion: move transformFunctionCall upper (vor 6 Tagen) <Mikhail Glukhikh> *d910a4cf23- FirCallResolver: perform completion for var access with ILT receiver (vor 6 Tagen) <Mikhail Glukhikh> *b0b198119d- FIR resolve completion: transform receivers for variable accesses (vor 6 Tagen) <Mikhail Glukhikh> *ab79e60b63- FIR2IR: consider integer literal type as error type (vor 6 Tagen) <Mikhail Glukhikh> *205f29128a- (tag: build-1.4.0-dev-7880) Updated testdata to a new generation strategy (vor 6 Tagen) <Leonid Startsev> *a11e6b2eed- (tag: build-1.4.0-dev-7876) KotlinChangePackageRefactoring: fix formatting for long qualifier names (vor 6 Tagen) <Dmitry Gridin> *db5751616a- MoveKotlinDeclarationsProcessor: fix formatting for long qualifier names (vor 6 Tagen) <Dmitry Gridin> *2b8bb30744- (tag: build-1.4.0-dev-7870) Change signature: fix formatting for long qualifier names (vor 6 Tagen) <Dmitry Gridin> *8336119557- (tag: build-1.4.0-dev-7868) Kotlin/Native 1.4-M3-dev-15453 (vor 6 Tagen) <Sergey Igushkin> *94346e8a03- (tag: build-1.4.0-dev-7867) Add JVM target bytecode version 14 (vor 6 Tagen) <Alexander Udalov> *098a935aa7- Fix exponential string table size of anonymous classes during inlining (vor 6 Tagen) <Alexander Udalov> *65065a15a3- (tag: build-1.4.0-dev-7864) FIR DFA: stabilize type order (vor 6 Tagen) <Mikhail Glukhikh> *36a57973b5- (tag: build-1.4.0-dev-7858) [NI] CST: remove max depth offset from recursion detection (vor 6 Tagen) <Pavel Kirpichenkov> *dfc86dbf63- [NI] Avoid type rendering in member scope for intersection type (vor 6 Tagen) <Pavel Kirpichenkov> *802372ceff- (tag: build-1.4.0-dev-7857) PSI2IR: suspend conversion on arbitrary arguments (vor 6 Tagen) <Dmitry Petrov> *e3d33cdc10- (tag: build-1.4.0-dev-7856, origin/rr/gradle/igushkin/mpp-drop-gradle-below-6-0) Drop Gradle < 6.0 support for Kotlin MPP Gradle plugin (vor 6 Tagen) <Sergey Igushkin> *89777f8bf3- (tag: build-1.4.0-dev-7853) Move GradleQuickFixTest checks in EDT Thread (vor 6 Tagen) <Andrey Uskov> *aa6801569a- Fix compilation of ExternalSystem tests in legacy branches (vor 6 Tagen) <Andrey Uskov> *3b7fbeb71b- (tag: build-1.4.0-dev-7849) Fallback to M2-implementation of dependsOn in AS + M3 (vor 6 Tagen) <Dmitry Savvinov> *151890dde5- (tag: build-1.4.0-dev-7844) Add test for overloading expect MemberDescriptors discrimination (vor 6 Tagen) <Dmitriy Dolovov> *90e888a1b6- Discriminate overloading expect MemberDescriptors (vor 6 Tagen) <Dmitriy Dolovov> *34ae35b2aa- (tag: build-1.4.0-dev-7838) Move FirJvmClassCodegen inside fir:fir2ir:jvm-backend #KT-38156 Fixed (vor 6 Tagen) <Mikhail Glukhikh> *dbd4cecff6- FIR serializer: accept FirClass instead of IrClass to get rid of IR deps (vor 6 Tagen) <Mikhail Glukhikh> *8d85e7a401- FIR serializer: add forgotten type alias serialization (vor 6 Tagen) <Mikhail Glukhikh> *a545ec41a0- FIR serializer: consider exotic types as errors (breaks 4 BB tests) (vor 6 Tagen) <Mikhail Glukhikh> *ec7522c675- FIR serializer: introduce nonSourceAnnotations (vor 6 Tagen) <Mikhail Glukhikh> *7adb4eb872- FIR serializer: extract annotation argument visiting to separate object (vor 6 Tagen) <Mikhail Glukhikh> *394fa7affc- FIR serializer: add bad test data changes (vor 6 Tagen) <Mikhail Glukhikh> *f98c73cb30- [FIR] Support FirMetadataSource.File in FIR2IR & serializer (KT-38156) (vor 6 Tagen) <Mikhail Glukhikh> *95a17eadb2- FIR serializer: refactor typeProto + add some suspend types support (vor 6 Tagen) <Mikhail Glukhikh> *6af66cd3a2- FIR: don't serialize static enum members fixing testEnumNameOrdinal (vor 6 Tagen) <Mikhail Glukhikh> *c2c85365e6- Use FIR metadata in FIR2IR data class member generator (KT-38156) (vor 6 Tagen) <Mikhail Glukhikh> *c6c848f929- Introduce & use FirJvmSerializerExtension & FirBasedClassCodegen (vor 6 Tagen) <Mikhail Glukhikh> *7ae98485b8- IR: separate ClassCodegen & DescriptorBasedClassCodegen (vor 6 Tagen) <Mikhail Glukhikh> *03be3c108a- [FIR2IR] Introduce FirMetadataSource and use it (KT-38156) (vor 6 Tagen) <Mikhail Glukhikh> *2aae735a8e- Introduce FIR serializer (isn't in use yet, KT-38156) (vor 6 Tagen) <Mikhail Glukhikh> *2c63a15af2- (tag: build-1.4.0-dev-7836) Add a test for KT-38338 (vor 6 Tagen) <Sergey Igushkin> *ce7ea00178- (tag: build-1.4.0-dev-7829) Added missed language for fileType (vor 7 Tagen) <Vladimir Dolzhenko> *000757c75b- (tag: build-1.4.0-dev-7817) JVM: Add suspend conversion bit for function references equals/hashCode (vor 7 Tagen) <Dmitry Petrov> *c7a96810bf- JVM: Suspend conversion for function references (vor 7 Tagen) <Dmitry Petrov> *6b9a7464f5- PSI2IR: Support suspend conversion for function references (vor 7 Tagen) <Dmitry Petrov> *10cda4b54f- (tag: build-1.4.0-dev-7813) [FIR] Minor: regenerate diagnostic tests (vor 7 Tagen) <Mikhail Glukhikh> *de28a41caa- (tag: build-1.4.0-dev-7802) KT-32163: Open Quick Documentation when cursor inside function / constructor brackets (#2502) (vor 7 Tagen) <Yuku Kotani> *6b5b23f37b- (tag: build-1.4.0-dev-7800) [Gradle, JS] Remove propagation moduleName from legacy to ir target (vor 7 Tagen) <Ilya Goncharov> *e0ca94279a- Move vFile.isValid() check inside read action (vor 10 Tagen) <Matthew Gharrity> *442331acc9- (tag: build-1.4.0-dev-7796) IR JS: support findAssociatedObject feature (KT-37418 fixed) (vor 7 Tagen) <Anton Bannykh> *f4b6e1bff6- (tag: build-1.4.0-dev-7794) Reworked deprecated fileTypeFactory EP usage (vor 7 Tagen) <Vladimir Dolzhenko> *639cc69920- Reworked deprecated defaultLiveTemplatesProvider EP usage (vor 7 Tagen) <Vladimir Dolzhenko> *6d7e428d89- (tag: build-1.4.0-dev-7792) Get first platform from platformCompilations instead host platform. (vor 7 Tagen) <Konstantin Tskhovrebov> *90fd2c6c4c- (tag: build-1.4.0-dev-7788) FirCallResolver: perform int literal approximation also for var access (vor 7 Tagen) <Mikhail Glukhikh> *5446795d12- FirCallResolver: reuse collectCandidates for variable access (vor 7 Tagen) <Mikhail Glukhikh> *4230a17427- (tag: build-1.4.0-dev-7787) Revert "Force bootstrap stdlib in modules that used in composite build" (vor 7 Tagen) <Nikolay Krasko> *ad76562cbc- (tag: build-1.4.0-dev-7786) Force bootstrap stdlib in modules that used in composite build (vor 7 Tagen) <Nikolay Krasko> *49593d308c- (tag: build-1.4.0-dev-7775) [FIR] Add EXPOSED_SUPER_(CLASS/INTERFACE) checker (vor 7 Tagen) <rapturemain> *ef09850df8- (tag: build-1.4.0-dev-7771) FIR2IR: set superQualifierSymbol for super call (vor 7 Tagen) <Jinseong Jeon> *57fe01c375- FIR2IR: populate overriddenSymbols for overriding functions (vor 7 Tagen) <Jinseong Jeon> *b51649dcc6- (tag: build-1.4.0-dev-7764) Fix tests compilation in 201 (vor 7 Tagen) <Andrey Uskov>
Kotlin/Native
Kotlin/Native is an LLVM backend for the Kotlin compiler, runtime implementation, and native code generation facility using the LLVM toolchain.
Kotlin/Native is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS or embedded targets), or where a developer is willing to produce a reasonably-sized self-contained program without the need to ship an additional execution runtime.
Prerequisites:
- install JDK for your platform, instead of JRE. The build requires
tools.jar, which is not included in JRE; - on macOS install Xcode 11 (Xcode 11.4 is required to compile Kotlin/Native from sources)
- on Fedora 26+
yum install ncurses-compat-libsmay be needed - on recent Ubuntu
apt install libncurses5is needed
To compile from sources use following steps:
First, download dependencies:
./gradlew dependencies:update
Then, build the compiler and libraries:
./gradlew bundle
To build with experimental targets support compile with -Porg.jetbrains.kotlin.native.experimentalTargets.
The build can take about an hour on a Macbook Pro. To run a shorter build with only the host compiler and libraries, run:
./gradlew dist distPlatformLibs
To include Kotlin compiler in composite build and build
against it, use the kotlinProjectPath project property:
./gradlew dist -PkotlinProjectPath=path/to/kotlin/project
It's possible to include in a composite build both Kotlin compiler and Kotlin/Native Shared simultaneously.
After that, you should be able to compile your programs like this:
export PATH=./dist/bin:$PATH
kotlinc hello.kt -o hello
For an optimized compilation, use -opt:
kotlinc hello.kt -o hello -opt
For tests, use:
./gradlew backend.native:tests:run
To generate interoperability stubs, create a library definition file
(refer to samples/tetris/.../sdl.def), and run the cinterop tool like this:
cinterop -def lib.def
See the provided samples and INTEROP.md for more details.
The Interop tool generates a library in the .klib library format. See LIBRARIES.md
for more details on this file format.