From b220299fc536d3731f3aed6925dbc3be179aa1ed Mon Sep 17 00:00:00 2001 From: sergeych Date: Sun, 18 May 2025 00:52:19 +0400 Subject: [PATCH] Long road starts here --- .github/workflows/gradle.yml | 54 +++ .github/workflows/publish.yml | 25 ++ .gitignore | 15 + LICENSE | 201 +++++++++ README.md | 35 ++ build.gradle.kts | 5 + gradle.properties | 12 + gradle/libs.versions.toml | 18 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 61624 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 244 +++++++++++ gradlew.bat | 92 +++++ images/create_release_and_tag.png | Bin 0 -> 27866 bytes images/draft_release.png | Bin 0 -> 6825 bytes images/github_releases.png | Bin 0 -> 6137 bytes images/github_secrets.png | Bin 0 -> 27678 bytes images/published_on_maven_central.png | Bin 0 -> 123511 bytes images/release_settings.png | Bin 0 -> 19827 bytes library/build.gradle.kts | 101 +++++ .../kotlin/net/sergeych/ling/Arguments.kt | 12 + .../kotlin/net/sergeych/ling/Compiler.kt | 264 ++++++++++++ .../kotlin/net/sergeych/ling/Context.kt | 46 +++ .../kotlin/net/sergeych/ling/Obj.kt | 59 +++ .../kotlin/net/sergeych/ling/Parser.kt | 184 +++++++++ .../kotlin/net/sergeych/ling/Pos.kt | 69 ++++ .../kotlin/net/sergeych/ling/Script.kt | 22 + .../kotlin/net/sergeych/ling/ScriptError.kt | 9 + .../kotlin/net/sergeych/ling/Source.kt | 14 + .../kotlin/net/sergeych/ling/Token.kt | 12 + .../kotlin/net/sergeych/ling/statements.kt | 117 ++++++ library/src/commonTest/kotlin/ScriptTest.kt | 112 +++++ publishing-readme.md | 381 ++++++++++++++++++ settings.gradle.kts | 20 + 33 files changed, 2129 insertions(+) create mode 100644 .github/workflows/gradle.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 images/create_release_and_tag.png create mode 100644 images/draft_release.png create mode 100644 images/github_releases.png create mode 100644 images/github_secrets.png create mode 100644 images/published_on_maven_central.png create mode 100644 images/release_settings.png create mode 100644 library/build.gradle.kts create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Arguments.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Compiler.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Context.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Parser.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Pos.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Script.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/ScriptError.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Source.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/Token.kt create mode 100644 library/src/commonMain/kotlin/net/sergeych/ling/statements.kt create mode 100644 library/src/commonTest/kotlin/ScriptTest.kt create mode 100644 publishing-readme.md create mode 100644 settings.gradle.kts diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000..d1fa018 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,54 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle + +name: Java CI with Gradle + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + workflow_call: + +permissions: + contents: read + +jobs: + build: + strategy: + matrix: + include: + - target: iosSimulatorArm64Test + os: macos-latest + - target: jvmTest + os: ubuntu-latest + - target: linuxX64Test + os: ubuntu-latest + - target: testDebugUnitTest + os: ubuntu-latest + - target: testReleaseUnitTest + os: ubuntu-latest + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.konan + key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Build with Gradle + uses: gradle/gradle-build-action@ce999babab2de1c4b649dc15f0ee67e6246c994f + with: + arguments: ${{ matrix.target }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..515213f --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,25 @@ +name: Publish +on: + release: + types: [released, prereleased] +jobs: + publish: + name: Release build and publish + runs-on: macOS-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + - name: Publish to MavenCentral + run: ./gradlew publishToMavenCentral --no-configuration-cache + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY_CONTENTS }} + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cb7d9a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +.idea +.DS_Store +build +captures +.externalNativeBuild +.cxx +local.properties +xcuserdata +.kotlin +#So we don't accidentally commit our private keys +*.gpg +.gigaide +.kotlin \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..773f654 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2025 Sergey Chernov. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..731827d --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Ling: scripting lang for kotlin multiplatform + +in the form of multiplatform library. + +## Why? + +Designed to add scripting to kotlin multiplatform application in easy and efficient way. This is attempt to achieve what Lua is for C/++. + +- fast start (times and times faster than initializing v8/wasm) +- fast and simple kotlin interoperability +- coroutine-based, truly async. On platforms with multithreading, run multithreaded. No python/ruby/javascript threads hell. +- small footprint +- absolutely safe: no access to any dangerous or sensitive functions until you specifically provide it. + +# Language + +- dynamic +- async +- multithreaded (coroutines could be dispatched using threads on appropriate platforms, automatically) + +## By-stage + +Here are plans to develop it: + +### First stage + +Interpreted, precompiled into threaded code, actually. Dynamic types. + +### Second stage + +Will add: + +- optimizations +- p-code serialization +- static typing \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..1bababf --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,5 @@ +plugins { + alias(libs.plugins.androidLibrary) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.vanniktech.mavenPublish) apply false +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..5e4d56d --- /dev/null +++ b/gradle.properties @@ -0,0 +1,12 @@ +#Gradle +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 -Dkotlin.daemon.jvm.options\="-Xmx2048M" +org.gradle.caching=true +org.gradle.configuration-cache=true +#Kotlin +kotlin.code.style=official +kotlin.js.compiler=ir +#MPP +kotlin.mpp.enableCInteropCommonization=true +#Android +android.useAndroidX=true +android.nonTransitiveRClass=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..c2aa089 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,18 @@ +[versions] +agp = "8.5.2" +kotlin = "2.1.21" +android-minSdk = "24" +android-compileSdk = "34" +kotlinx-coroutines = "1.10.1" +mp_bintools = "0.1.12" + +[libraries] +kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +mp_bintools = { module = "net.sergeych:mp_bintools", version.ref = "mp_bintools" } + +[plugins] +androidLibrary = { id = "com.android.library", version.ref = "agp" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +vanniktech-mavenPublish = { id = "com.vanniktech.maven.publish", version = "0.29.0" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..afba109285af78dbd2a1d187e33ac4f87c76e392 GIT binary patch literal 61624 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�Zy z^6AJh1X3pXq!CBB#`$5K8SM`A8- zu91@KW`jScvm}!^xaOr;l$}&)!qA=c4=tjb*AM^d9ZpDQjv*NDBXOUm9fM235A&Im zWb|jcBV^{}f>q*lY$s)A{g3K~i*dC}iz|ddMG+h2%gJJkYA%43!xj8A# zx}S=RPcxSSrC^je-O9-uG*4zN`%yO%D|8Y(M!;etj}#5<%)tweodG864mERu+wUwi zqO?7XNoGj5REy(>@FR?cmjdtzHh0Uyxc{bl7pq)x$iETy-gSOl4<=ay@B=!9(wjJhfW}ymgfT)tNU6b0S)wq zMeKw$AI+3w&@(KkXo2zZi+rD-;<`>S;(xh}N&A!yleW!DXaff`xq(&MU0v$=thsf{ zg(^n}x}gz%(ZMmnHv?lM149>hnCRcQl$2k+_R4YyxfW?lIfN`D`XCfH^dukp(N-@j zMOjDZSdpW2Zto4Xiwh$>MX#mx)#OxcM|qz7llutxlZ_J1E-I`Y&pzh)RfL03EK;d5 zsT1+B_S@MLCz)zQys)rDnV4a5!lT8<#kf<49)lNk;@0XW#dWoeCWlSU+e{zMyS1wNXB%6Un^?S8n~Jr%mk_^NT02xU zcTMjr6I|wbWAcf|&V@-_UA*XcHhl7mB~=D;T8nHdVRQX{LQT~{H7`n|hq82!6^^Qw zk3=bdrx(+2sKb?>S1*r#`#OK-jkDlW+^JkfcM1$YFJ9fi*s(8+3Ci?UHN7bY? zh4N;Ruf^YWl3Qug_Tt8ssOAr0u~l&@T3xKa)~WpBgpn}4a($+RfpKJts{-~X3lBbV zc}00$dp*~Rd#{MEJ)=}o%Ba+MxXj)G#S95An)W3pi<`?g$LYqs4y$@&P;h2dic|#Y zLG)4ki^^AYUpsZAtoN-`*PqRPm+BW{Sv93rQm8yHt2BO(SDmGJrDwCJ{h{LXJS+K? zT1`EUhgnKGwTy3CHN7c~OstGDJK;&0nUisI+TC|(NNeXbcpIy&DJ~-gy%PgMJwLdo zM-N=_#u(Fd`$DV<|BjAmhg*xPy8UhsziP>UzRJia${pQz)OyY|sn2Gsb@F5HMbeG4MJ)A6 zip8_D9EG_-mY)rt>E9tGKb6fE<=v;PY4-MR6_G!&r%+)@O^Sbo&N-QmW{8WLEyL}XI25|Lqcq;31FtfOg)YjO+kPkZx<1Xmr5EtjPCpi(FSH)6*cL~Wd3u@NkeeRsqV;PX~8DoAyr~*@QZEkWN8=j68 zK#oirFgtzpre!U$S(>lCULpEEsv^+Ew$A>6ZcsaAzLnn&J!{=Ke|!u)B`dFIl( z?vlF5euE?z5|cU)OPbl|@}Y3*ZkOOxEGXmrJOU-KoLFT{TuqWvZCG2==*;<06n)skW(dvAJ*9=S9v^7qHS$`Dl`eJ81@Mlj~ z%Bo)zV6lv$?7RyQZk6arskVWO0fvBrre8Jb*1R-cnz|i~~_ZLzp^Z zdUn~P6=9O$!Q)VJRz{VIA?$9b0acoc>g7?zFWpmZ`LCh`ie2bgsRy+C*Kf9A&<|h` zsZ76F{`l!LU2>tQjr$3#kYM{%d`Isn`WyaKUjrDwRSP0!kYpX9^R#RX!bjqmXkl!N zs))gf1ol~L3Xef4B?`<1GD_lBnuW{~+??9GRAgt)(@DZTFH|4Pb1o4CG6_f6rtEL@s<5ctjNIRvCMi=l?B-P+D8i*$H^-jz8Z{US(1{-DrHKNdc1xhp*${Nt%oj8oK2`gW#Eln z_W0bDj>|ck)XEBq1P`QeJDFebd}11SLV)K$4t+l=Q{P6MQl7?TD{C;U&*dbLVA^+O|OPt6jn6n7E<+DFOlud1?|k`TpU64 z;$jlu4;R1(yvFk@WgytV_g~pmB`+$<$!chFsmh@uY-a&yhCdS66WdAK#PQ(!wie!> za^US|K-U#D3pwGEmZaAO5FGbBetWB&z!hL(Y#21lO< z==S{#=CQN3-q!B>xq*jTqmfoF$8F`mZFNt^eYl~ZfNo4ZesiHf6ckDWcr$E=Jljnf2>9=rB~7>G4$a`w_O`ZQ>r=(b4ho+AfwCzm=D{`` zxKUQ313J(GXdjVXY;es$Y=PrSl(Ox@gV<_27CbzWPkyI|JZNrZP?!DnC<2`dh3H?f zl1?xeTOery;+#Pp_VzDOo33PR@(U$^hXMHgO(zGQ-u@f@FXqv(zXpH6P(7H2 z_BZ4J^&wCtEkGBMvvP8VYq*&1nE&7&Q|V%yoCd7S0*oDU|z z;;3i(25RC0#+>LbI=E&a?3fNgAO*FscLLGy4pEgQ+a;py{$7t;FDno1Gd|q8GdaBptjT1bT9H=(4$xg(a^;9al$zc!KrKq zG}eBa?`J81tSKCNupu9b9huAk)ms5{`wf}KcL*v~D`#g=p`T=682*7N*bv<$7ceyg zru~&l5j+Ib4uzYE6ZEf@!Y__6tN~QHfa>f%`(*+Ln!mQ$PpZE)QXFUfR5qAR(m^-e zcFWmK8Hh44whl@1*Qy9}vM%I+s+5DNeg8-*21Yz2%g21|mWF5LAD))kxG9Vie$C1GCQds%bZ6Ads?$z`tU5 z?SB|JXQy=zH6(LHy8kTU;v!ohrDI+JF=6#HPj6L z|5+8_zB(ti&9ez=A-s>L*YYw(a_ang3D#00_4+d%7%~TH_MtMMYJ%-CwE6y#;b4P%poCH0gPXelM>tU415{2?ON$z{cn`ie z;z0Pn#V|%CK#d2vM=<>0K!X2{4v7kl8m4a#Iw|o$Xq2FRsCcNs@b>U-CLN5oKQtaH z9%}rWJv`>@KjQr!%?1_vJW5cJJ?QzIKS3Yd$56fS_t3Dxe#5^OH@lP3zkTvii-zhZ zy$4p>cp%t5huZ&gnnqa?_nIo@#~ChARYp9>ReiBVku_RyDJ v9f-cOr*eQp04g-<;pZOo<=#I*?>`DvQ^o}A^zD`USu`GEG&HBt?O*=~soeXc literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..20db9ad --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..65dcd68 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/images/create_release_and_tag.png b/images/create_release_and_tag.png new file mode 100644 index 0000000000000000000000000000000000000000..737d45e7392efe98b787b60eaa33a9470a878783 GIT binary patch literal 27866 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 G-v1AX@CZf# literal 0 HcmV?d00001 diff --git a/images/draft_release.png b/images/draft_release.png new file mode 100644 index 0000000000000000000000000000000000000000..1687c97820cd3bf9a60b58e05e1c43bf8d50e839 GIT binary patch literal 6825 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

9U6IUISF_asJ=^=C?KJ?Af|!`B)NCofqH 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

V@|_0QQiNd;|=}+pMr_;aysHP8_g& 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≫VUWoolmfjr&Ctn9!*OJu`_UBKHx z2|Eq?5d)9qMK_6SF+^};_!E*eu5SrVdR)dO*J|u~VZI`~va;bgU0ANvXfn?|hSq4B zJ)`aCfH1+NmmS)%VkNDE+i%2JG`G4a8o3-j5xg1#ps)_%MQR1djczsgCQjFni}Q^? zN;pKX+Ee3-ZwDz=fQNndoh!)bWx~PRGnMaxAgT7&Wt!5=JbSE^c?BSVgbf>OVL>bp z$KsS*GCxSnDl|z#WuIk3ylvC3urTVWahdI*Zp-Zo2hUT5(tE3x?xL-n>VfqtXL-U- zwMP|{K8#FF$BNt`^H-)SMOAn{y;~KobthFYN>6m_5;?&u8xYfRoEbYl#*J!V{&B{v zutot75)89I8Z!;5kyV&IUoQ3*jh=Zf`SXSX><>m2IBPn|NuAl2?iV>f zk#e>1`iTW#mw7fvEa6HOFa0EhFDy0uhD7=%>7}vLLGmg2SgSFKbokmCB45C+tbrn9 zGcjj*B>WXT3fvs>iDCW}`eVmT4-6v_5`V-bW8J|`zsjSt#@#IE(*HvZpSwepi51J9 zk`RK#zem0?T?!}Nz-wd=Yy4y)UGKWxRQBr?i08}E86e09BDw$0`uUMFp^wxW|HO>6 z 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

|Hw-trFu-V6uD{KIN!!yBA9#as&jUd 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 ) { + + val size by list::size + + operator fun get(index: Int): Statement = list[index] + + companion object { + val EMPTY = Arguments(emptyList()) + } +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Compiler.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Compiler.kt new file mode 100644 index 0000000..a852ed9 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Compiler.kt @@ -0,0 +1,264 @@ +package net.sergeych.ling + +import kotlin.math.pow + +sealed class ObjType(name: String, val defaultValue: Obj? = null) { + + class Str : ObjType("string", ObjString("")) + class Int : ObjType("real", ObjReal(0.0)) + +} + +/** + * Descriptor for whatever object could be used as argument, return value, + * field, etc. + */ +data class ObjDescriptor( + val type: ObjType, + val mutable: Boolean, +) + +data class MethodDescriptor( + val args: Array, + val result: ObjDescriptor +) + +/* +Meta context contains map of symbols. + +Each symbol can be: + +- a var +- a const +- a function +- a type alias +- a class definition + +Each have in common only its name. + +Var has: type, value. Const is same as var but value is fixed. Function has args and return value, +type alias has target type name. So we have to have something that denotes a _type_ + + */ + + +//data class MetaContext(val symbols: MutableMap = mutableMapOf()) { +// +//} + + +class Compiler { + + fun compile(source: Source): Script { + val tokens = parseLing(source).listIterator() + val start = source.startPos + // at this level: "global" context: just script to execute or new function + // declaration forming closures + val statements = mutableListOf() + while (parseStatement(tokens)?.also { + statements += it + } != null) {/**/ + } + return Script(start, statements) + } + + private fun parseStatement(tokens: ListIterator): Statement? { + val t = tokens.next() + return when (t.type) { + Token.Type.ID -> { + // could be keyword, assignment or just the expression + val next = tokens.next() + if (next.type == Token.Type.EQ) { + // this _is_ assignment statement + AssignStatement( + t.pos, t.value, + parseExpression(tokens) ?: throw ScriptError( + t.pos, + "Expecting expression for assignment operator" + ) + ) + } + // not assignment, maybe keyword statement: + // get back the token which is not '=': + tokens.previous() + // try keyword statement + parseKeywordStatement(t, tokens) + ?: run { + parseExpression(tokens) + } + } + + Token.Type.EOF -> null + + else -> { + // could be expression + tokens.previous() + parseExpression(tokens) + } + } + } + + private fun parseExpression(tokens: ListIterator, level: Int = 0): Statement? { + if (level == lastLevel) + return parseTerm(tokens) + var lvalue = parseExpression(tokens, level + 1) + if (lvalue == null) return null + + while (true) { + + val opToken = tokens.next() + val op = byLevel[level][opToken.value] + if (op == null) { + tokens.previous() + break + } + + val rvalue = parseExpression(tokens, level + 1) + ?: throw ScriptError(opToken.pos, "Expecting expression") + + lvalue = op.generate(opToken.pos, lvalue!!, rvalue) + } + return lvalue + } + + fun parseTerm(tokens: ListIterator): Statement? { + // call op + // index op + // unary op + // parenthesis + // number or string + val t = tokens.next() + // todoL var? + return when (t.type) { +// "+" -> statement { parseNumber(true,tokens) }?????? +// "-" -> statement { parseNumber(false,tokens) } +// "~" -> statement(t.pos) { ObjInt( parseLong(tokens)) } + + Token.Type.PLUS -> { + val n = parseNumber(true, tokens) + statement(t.pos) { n } + } + + Token.Type.MINUS -> { + val n = parseNumber(false, tokens) + statement(t.pos) { n } + } + + Token.Type.INT, Token.Type.REAL, Token.Type.HEX -> { + tokens.previous() + val n = parseNumber(true, tokens) + statement(t.pos) { n } + } + + else -> null + } + + } + + + fun parseLong(tokens: ListIterator): Long = + // todo: hex notation? + getLong(tokens) + + fun getLong(tokens: ListIterator): Long { + val t = tokens.next() + if (t.type != Token.Type.INT) throw ScriptError(t.pos, "expected number here") + return t.value.toLong() + } + + fun parseNumber(isPlus: Boolean, tokens: ListIterator): Obj { + val t = tokens.next() + return when (t.type) { + Token.Type.INT, Token.Type.HEX -> { + val n = t.value.toLong(if (t.type == Token.Type.HEX) 16 else 10) + if (isPlus) ObjInt(n) else ObjInt(-n) + } + + Token.Type.REAL -> { + val d = t.value.toDouble() + if (isPlus) ObjReal(d) else ObjReal(-d) + } + + else -> { + throw ScriptError(t.pos, "expected number") + } + } + } + + /** + * Parse keyword-starting statenment. + * @return parsed statement or null if, for example. [id] is not among keywords + */ + private fun parseKeywordStatement(id: Token, tokens: ListIterator): Statement? { + return null + } + +// fun parseStatement(parser: Parser): Statement? = +// parser.withToken { +// if (tokens.isEmpty()) null +// else { +// when (val token = tokens[0]) { +// else -> { +// rollback() +// null +// } +// } +// } +// } + + companion object { + data class Operator( + val name: String, + val priority: Int, val arity: Int, + val generate: (Pos, Statement, Statement) -> Statement + ) + + val allOps = listOf( +// Operator("||", 0, 2) { pos, a, b -> LogicalOrStatement(pos, a, b) }) + Operator("&&", 1, 2) { pos, a, b -> + LogicalAndStatement(pos, a, b) + }, + // bitwise or 2 + // bitwise and 3 + // equality/ne 4 + // relational <=,... 5 + // shuttle <=> 6 + // bitshhifts 7 + // + - : 7 + Operator("+", 7, 2) { pos, a, b -> + PlusStatement(pos, a, b) + }, + Operator("-", 7, 2) { pos, a, b -> + MinusStatement(pos, a, b) + }, + // * / %: 8 + ) + val lastLevel = 9 + val byLevel: List> = (0.. + allOps.filter { it.priority == l } + .map { it.name to it }.toMap() + } + + fun compile(code: String): Script = Compiler().compile(Source("", code)) + } +} + +fun buildDoubleFromParts( + integerPart: Long, + decimalPart: Long, + exponent: Int +): Double { + // Handle zero decimal case efficiently + val numDecimalDigits = if (decimalPart == 0L) 0 else decimalPart.toString().length + + // Calculate decimal multiplier (10^-digits) + val decimalMultiplier = 10.0.pow(-numDecimalDigits) + + // Combine integer and decimal parts + val baseValue = integerPart.toDouble() + decimalPart.toDouble() * decimalMultiplier + + // Apply exponent + return baseValue * 10.0.pow(exponent) +} + +suspend fun eval(code: String) = Compiler.compile(code).execute() \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt new file mode 100644 index 0000000..4ba7d37 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt @@ -0,0 +1,46 @@ +package net.sergeych.ling + +import kotlin.math.PI + +class Context( + val callerPos: Pos, + val parent: Context? = null, + val args: Arguments = Arguments.EMPTY +) { + + data class Item( + val name: String, var value: Obj?, + val isMutable: Boolean = false + ) + + private val objects = mutableMapOf() + + operator fun get(name: String): Item? = objects[name] ?: parent?.get(name) + + fun copy(from: Pos, args: Arguments = Arguments.EMPTY): Context = Context(from, this, args) + + fun addFn(name: String, fn: suspend Context.() -> Obj) = objects.put(name, Item(name, + object : Statement() { + override val pos: Pos = Pos.builtIn + + override suspend fun execute(context: Context): Obj { + return try { + context.fn() + } catch (e: Exception) { + raise(e.message ?: "unexpected error") + } + } + + }) + ) + +} + +val basicContext = Context(Pos.builtIn).apply { + addFn("println") { + require(args.size == 1) + println(args[0].execute(this).asStr.value) + Void + } + addFn("π") { ObjReal(PI) } +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt new file mode 100644 index 0000000..5f2ed5e --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt @@ -0,0 +1,59 @@ +package net.sergeych.ling + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlin.math.floor + +@Serializable +sealed class Obj { + open val asStr: ObjString by lazy { + if( this is ObjString) this else ObjString(this.toString()) + } +} + +@Serializable +@SerialName("void") +object Void: Obj() { + override fun equals(other: Any?): Boolean { + return other is Void || other is Unit + } +} + +@Serializable +@SerialName("string") +data class ObjString(val value: String): Obj() { + override fun toString(): String = value +} + +interface Numeric { + val longValue: Long + val doubleValue: Double + val toObjInt: ObjInt + val toObjReal: ObjReal +} + +@Serializable +@SerialName("real") +data class ObjReal(val value: Double): Obj(), Numeric { + override val asStr by lazy { ObjString(value.toString()) } + override val longValue: Long by lazy { floor(value).toLong() } + override val doubleValue: Double by lazy { value } + override val toObjInt: ObjInt by lazy { ObjInt(longValue) } + override val toObjReal: ObjReal by lazy { ObjReal(value) } +} + +@Serializable +@SerialName("int") +data class ObjInt(val value: Long): Obj(), Numeric { + override val asStr by lazy { ObjString(value.toString()) } + override val longValue: Long by lazy { value } + override val doubleValue: Double by lazy { value.toDouble() } + override val toObjInt: ObjInt by lazy { ObjInt(value) } + override val toObjReal: ObjReal by lazy { ObjReal(doubleValue) } +} + +@Serializable +@SerialName("bool") +data class ObjBool(val value: Boolean): Obj() { + override val asStr by lazy { ObjString(value.toString()) } +} diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Parser.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Parser.kt new file mode 100644 index 0000000..c3a3035 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Parser.kt @@ -0,0 +1,184 @@ +package net.sergeych.ling + +private val idFirstChars: Set = ( + ('a'..'z') + ('A'..'Z') + '_' + ('а'..'я') + ('А'..'Я') + ).toSet() +val idNextChars: Set = idFirstChars + ('0'..'9') +val digits = ('0'..'9').toSet() +val hexDigits = digits + ('a'..'f') + ('A'..'F') + +fun parseLing(source: Source): List { + val p = Parser(fromPos = source.startPos) + val tokens = mutableListOf() + do { + val t = p.nextToken() + tokens += t + } while(t.type != Token.Type.EOF) + return tokens +} + +private class Parser(fromPos: Pos) { + + private val pos = MutablePos(fromPos) + + /** + * Immutable copy of current position + */ + private val currentPos: Pos get() = pos.toPos() + + private fun raise(msg: String): Nothing = throw ScriptError(currentPos, msg) + + fun nextToken(): Token { + skipws() + if (pos.end) return Token("", currentPos, Token.Type.EOF) + val from = currentPos + return when (val ch = pos.currentChar.also { advance() }) { + '(' -> Token("(", from, Token.Type.LPAREN) + ')' -> Token(")", from, Token.Type.RPAREN) + '{' -> Token("{", from, Token.Type.LBRACE) + '}' -> Token("}", from, Token.Type.RBRACE) + '[' -> Token("[", from, Token.Type.LBRACKET) + ']' -> Token("]", from, Token.Type.RBRACKET) + ',' -> Token(",", from, Token.Type.COMMA) + ';' -> Token(";", from, Token.Type.SEMICOLON) + '=' -> Token("=", from, Token.Type.ASSIGN) + '+' -> Token("+", from, Token.Type.PLUS) + '-' -> Token("-", from, Token.Type.MINUS) + '*' -> Token("*", from, Token.Type.STAR) + '/' -> Token("/", from, Token.Type.SLASH) + '.' -> Token(".", from, Token.Type.DOT) + '<' -> Token("<", from, Token.Type.LT) + '>' -> Token(">", from, Token.Type.GT) + '!' -> Token("!", from, Token.Type.NOT) + '"' -> loadStringToken() + in digits -> { + pos.back() + decodeNumber(loadChars(digits), from) + } + in idFirstChars -> { + // it includes first char, so from current position + Token(ch + loadChars(idNextChars), from, Token.Type.ID) + } + else -> raise("can't parse token") + } + } + + private fun decodeNumber(p1: String, start: Pos): Token = + if( pos.end ) + Token(p1, start, Token.Type.INT) + else if( currentChar == '.' ) { + // could be decimal + advance() + if( currentChar in digits ) { + // decimal part + val p2 = loadChars(digits) + // with exponent? + if( currentChar == 'e' || currentChar == 'E') { + advance() + var negative = false + if(currentChar == '+' ) + advance() + else if(currentChar == '-') { + negative = true + advance() + } + var p3 = loadChars(digits) + if( negative ) p3 = "-$p3" + Token("$p1.${p2}e$p3", start, Token.Type.REAL) + } + else { + // no exponent + Token("$p1.$p2", start, Token.Type.REAL) + } + } + else { + // not decimal + // something like 10.times, method call on integer number + pos.back() + Token(p1, start, Token.Type.INT) + } + } + else { + // could be integer, also hex: + if (currentChar == 'x' && p1 == "0") { + advance() + Token(loadChars(hexDigits), start, Token.Type.HEX).also { + if( currentChar.isLetter() ) + raise("invalid hex literal") + } + } else { + Token(p1, start, Token.Type.INT) + } + } + + + private val currentChar: Char get() = pos.currentChar + + private fun loadStringToken(): Token { + var start = currentPos + + if (currentChar == '"') advance() + else start = start.back() + + val sb = StringBuilder() + while (currentChar != '"') { + if( pos.end ) raise("unterminated string") + when (currentChar) { + '\\' -> { + advance() ?: raise("unterminated string") + when (currentChar) { + 'n' -> sb.append('\n') + 'r' -> sb.append('\r') + 't' -> sb.append('\t') + '"' -> sb.append('"') + else -> sb.append('\\').append(currentChar) + } + } + else -> { + sb.append(currentChar) + advance() + } + } + } + advance() + return Token(sb.toString(), start, Token.Type.STRING) + } + + /** + * Load characters from the set until it reaches EOF or invalid character found. + * stop at EOF on character not in [validChars]. + * @return the string of valid characters, could be empty + */ + private fun loadChars(validChars: Set): String { + val result = StringBuilder() + while (!pos.end) { + val ch = pos.currentChar + if (ch in validChars) { + result.append(ch) + advance() + } else + break + } + return result.toString() + } + + /** + * next non-whitespace char (newline are skipped too) or null if EOF + */ + private fun skipws(): Char? { + while (!pos.end) { + val ch = pos.currentChar + if (ch.isWhitespace()) + advance() + else + return ch + } + return null + } + + private fun advance() = pos.advance() + + init { +// advance() + } +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Pos.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Pos.kt new file mode 100644 index 0000000..54c6654 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Pos.kt @@ -0,0 +1,69 @@ +package net.sergeych.ling + +data class Pos(val source: Source, val line: Int, val column: Int) { + override fun toString(): String { + return "${source.fileName}:$line:$column" + } + + fun back(): Pos = + if( column > 0) Pos(source, line, column-1) + else if( line > 0) Pos(source, line-1, source.lines[line-1].length - 1) + else throw IllegalStateException("can't go back from line 0, column 0") + + val currentLine: String get() = source.lines[line] + + val showSource: String by lazy { + source.lines[line] + "\n" + "-".repeat(column - 1) + "^\n" + } + + companion object { + val builtIn = Pos(Source.builtIn, 0, 0) + } + +} + +class MutablePos(private val from: Pos) { + + val lines = from.source.lines + var line = from.line + private set + var column = from.column + private set + + val end: Boolean get() = + line == lines.size + + fun reset(to: Pos) { + line = to.line + column = to.column + } + + fun toPos(): Pos = Pos(from.source, line, column) + + fun advance(): Char? { + if (end) return null + val current = lines[line] + return if (column+1 < current.length) { + current[column++] + } else { + line++ + column = 0 + if(line >= lines.size) null + else lines[line][column] + } + } + + fun back() { + if (column > 0) column-- + else if (line > 0) + column = lines[--line].length - 1 + else throw IllegalStateException("can't go back from line 0, column 0") + } + val currentChar: Char + get() = + if (end) 0.toChar() + else lines[line][column] + + override fun toString() = "($line:$column)" + +} diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Script.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Script.kt new file mode 100644 index 0000000..c497498 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Script.kt @@ -0,0 +1,22 @@ +package net.sergeych.ling + +class Script( + override val pos: Pos, + private val statements: List = emptyList(), +) : Statement() { + + override suspend fun execute(context: Context): Obj { + // todo: run script + var lastResult: Obj = Void + for (s in statements) { + lastResult = s.execute(context) + } + return lastResult + } + + suspend fun execute() = execute(defaultContext) + + companion object { + val defaultContext: Context = Context(Pos.builtIn) + } +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/ScriptError.kt b/library/src/commonMain/kotlin/net/sergeych/ling/ScriptError.kt new file mode 100644 index 0000000..a3bba71 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/ScriptError.kt @@ -0,0 +1,9 @@ +package net.sergeych.ling + +class ScriptError(val pos: Pos, val errorMessage: String) : Exception( + """ + $pos: Error: $errorMessage + ${pos.currentLine} + ${"-".repeat(pos.column)}^ + """.trimIndent() +) diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Source.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Source.kt new file mode 100644 index 0000000..0a92d04 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Source.kt @@ -0,0 +1,14 @@ +package net.sergeych.ling + +class Source(val fileName: String, text: String) { + + val lines = text.lines().map { it.trimEnd() } + + companion object { + val builtIn: Source by lazy { Source("built-in", "") } + } + + val startPos: Pos = Pos(this, 0, 0) + + fun posAt(line: Int, column: Int): Pos = Pos(this, line, column) +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Token.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Token.kt new file mode 100644 index 0000000..7ee07c5 --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Token.kt @@ -0,0 +1,12 @@ +package net.sergeych.ling + +data class Token(val value: String, val pos: Pos, val type: Type) { + enum class Type { + ID, INT, REAL, HEX, STRING, LPAREN, RPAREN, LBRACE, RBRACE, LBRACKET, RBRACKET, COMMA, + SEMICOLON, COLON, EQ, PLUS, MINUS, STAR, SLASH, ASSIGN, EQEQ, NEQ, LT, LTEQ, GT, + GTEQ, AND, OR, NOT, DOT, ARROW, QUESTION, COLONCOLON, EOF, + } + companion object { +// fun eof(parser: Parser) = Token("", parser.currentPos, Type.EOF) + } +} \ No newline at end of file diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/statements.kt b/library/src/commonMain/kotlin/net/sergeych/ling/statements.kt new file mode 100644 index 0000000..5a233de --- /dev/null +++ b/library/src/commonMain/kotlin/net/sergeych/ling/statements.kt @@ -0,0 +1,117 @@ +package net.sergeych.ling + +fun String.toSource(name: String = "eval"): Source = Source(name, this) + + +abstract class Statement : Obj() { + abstract val pos: Pos + abstract suspend fun execute(context: Context): Obj +} + +fun Statement.raise(text: String): Nothing { + throw ScriptError(pos, text) +} + +fun Statement.require(cond: Boolean, message: () -> String) { + if (!cond) raise(message()) +} + +fun statement(pos: Pos, f: suspend (Context) -> Obj): Statement = object : Statement() { + override val pos: Pos = pos + override suspend fun execute(context: Context): Obj = f(context) +} + +class IfStatement( + override val pos: Pos, + val cond: Statement, val ifTrue: Statement, val ifFalse: Statement? +) : Statement() { + override suspend fun execute(context: Context): Obj { + val c = cond.execute(context) + if (c !is ObjBool) + raise("if: condition must me boolean, got: $c") + + return if (c.value) ifTrue.execute(context) else ifFalse?.execute(context) ?: Void + } +} + +class LogicalAndStatement( + override val pos: Pos, + val left: Statement, val right: Statement +) : Statement() { + override suspend fun execute(context: Context): Obj { + + val l = left.execute(context).let { + (it as? ObjBool) ?: raise("logical and: left operand is not boolean: $it") + } + val r = right.execute(context).let { + (it as? ObjBool) ?: raise("logical and: right operand is not boolean: $it") + } + return ObjBool(l.value && r.value) + } +} + +class PlusStatement( + override val pos: Pos, + val left: Statement, val right: Statement +) : Statement() { + override suspend fun execute(context: Context): Obj { + // todo: implement also classes with 'plus' operator + val l = left.execute(context) + + if (l is ObjString) + return ObjString(l.toString() + right.execute(context).toString()) + + if (l !is Numeric) + raise("left operand is not number: $l") + + val r = right.execute(context) + if (r !is Numeric) + raise("right operand is not boolean: $r") + + return if (l is ObjInt && r is ObjInt) + ObjInt(l.longValue + r.longValue) + else + ObjReal(l.doubleValue + r.doubleValue) + } +} + +class MinusStatement( + override val pos: Pos, + val left: Statement, val right: Statement +) : Statement() { + override suspend fun execute(context: Context): Obj { + // todo: implement also classes with 'minus' operator + val l = left.execute(context) + if (l !is Numeric) + raise("left operand is not number: $l") + + val r = right.execute(context) + if (r !is Numeric) + raise("right operand is not number: $r") + + return if (l is ObjInt && r is ObjInt) + ObjInt(l.longValue - r.longValue) + else + ObjReal(l.doubleValue - r.doubleValue) + } +} + +class AssignStatement(override val pos: Pos, val name: String, val value: Statement) : Statement() { + override suspend fun execute(context: Context): Obj { + val variable = context[name] ?: raise("can't assign: variable does not exist: $name") + variable.value = value.execute(context) + return Void + } +} + +class CallStatement( + override val pos: Pos, + val name: String, + val args: Arguments = Arguments.EMPTY +) : Statement() { + override suspend fun execute(context: Context): Obj { + val callee = context[name] ?: raise("Call: unknown name: $name") + return (callee.value as? Statement)?.execute(context.copy(pos, args)) + ?: raise("Call: not a callable object: $callee") + } +} \ No newline at end of file diff --git a/library/src/commonTest/kotlin/ScriptTest.kt b/library/src/commonTest/kotlin/ScriptTest.kt new file mode 100644 index 0000000..4e6f141 --- /dev/null +++ b/library/src/commonTest/kotlin/ScriptTest.kt @@ -0,0 +1,112 @@ +package io.github.kotlin.fibonacci + +import kotlinx.coroutines.test.runTest +import net.sergeych.ling.* +import kotlin.test.Test +import kotlin.test.assertEquals + +class ScriptTest { + + @Test + fun level0() = runTest { + val s = Script( + Pos.builtIn, + listOf( + CallStatement( + Pos.builtIn, "println", + Arguments(listOf(CallStatement(Pos.builtIn, "π", Arguments.EMPTY))) + ) + ) + ) + s.execute(basicContext) + } + + fun parseFirst(str: String): Token = + parseLing(str.toSource()).firstOrNull()!! + + @Test + fun parseNumbers() { + fun check(expected: String, type: Token.Type, row: Int, col: Int, src: String, offset: Int = 0) { + val source = src.toSource() + assertEquals( + Token(expected, source.posAt(row, col), type), + parseLing(source)[offset] + ) + } + check("1", Token.Type.INT, 0, 0, "1") + check("7", Token.Type.INT, 0, 0, "7") + check("17", Token.Type.INT, 0, 0, "17") + check("17", Token.Type.INT, 0, 0, "17.") + check(".", Token.Type.DOT, 0, 2, "17.", 1) + + // decimals + check("17.2", Token.Type.REAL, 0, 0, "17.2") + check("17.2", Token.Type.REAL, 0, 0, "17.2") + check("17.2", Token.Type.REAL, 0, 0, "17.2 ") + check("17.2", Token.Type.REAL, 0, 1, " 17.2") + check("17.2", Token.Type.REAL, 0, 2, " 17.2 ") + check("17.2e0", Token.Type.REAL, 0, 0, "17.2e0") + check("17.2e-22", Token.Type.REAL, 0, 0, "17.2e-22") + check("17.2e22", Token.Type.REAL, 0, 0, "17.2e+22") + check("17.2e22", Token.Type.REAL, 0, 0, "17.2E+22") + check("17.2e22", Token.Type.REAL, 0, 0, "17.2E22") + check("17.2e-22", Token.Type.REAL, 0, 0, "17.2E-22") + + // hex + check("1", Token.Type.HEX, 0, 0, "0x1") + check("12", Token.Type.HEX, 0, 0, "0x12") + check("12abcdef", Token.Type.HEX, 0, 0, "0x12abcdef.gh") + check(".", Token.Type.DOT, 0, 10, "0x12abcdef.gh", 1) + check("gh", Token.Type.ID, 0, 11, "0x12abcdef.gh", 2) + + check("5", Token.Type.INT, 0, 0, "5 6") + check("6", Token.Type.INT, 0, 2, "5 6", 1) + + } + + @Test + fun parse0() { + val src = """ + println("Hello") + println( "world" ) + """.trimIndent().toSource() + + val p = parseLing(src).listIterator() + + assertEquals(Token("println", src.posAt(0, 0), Token.Type.ID), p.next()) + assertEquals(Token("(", src.posAt(0, 7), Token.Type.LPAREN), p.next()) + assertEquals(Token("Hello", src.posAt(0, 8), Token.Type.STRING), p.next()) + assertEquals(Token(")", src.posAt(0, 15), Token.Type.RPAREN), p.next()) + + assertEquals(Token("println", src.posAt(1, 0), Token.Type.ID), p.next()) + assertEquals(Token("(", src.posAt(1, 7), Token.Type.LPAREN), p.next()) + assertEquals(Token("world", src.posAt(1, 9), Token.Type.STRING), p.next()) + assertEquals(Token(")", src.posAt(1, 17), Token.Type.RPAREN), p.next()) + } + + @Test + fun parse1() { + val src = "2 + 7".toSource() + + val p = parseLing(src).listIterator() + + assertEquals(Token("2", src.posAt(0, 0), Token.Type.INT), p.next()) + assertEquals(Token("+", src.posAt(0, 2), Token.Type.PLUS), p.next()) + assertEquals(Token("7", src.posAt(0, 4), Token.Type.INT), p.next()) + } + + @Test + fun compileNumbers() = runTest { + assertEquals(ObjInt(17), eval("17")) + assertEquals(ObjInt(17), eval("+17")) + assertEquals(ObjInt(-17), eval("-17")) + + + assertEquals(ObjInt(1970), eval("1900 + 70")) + assertEquals(ObjInt(1970), eval("2000 - 30")) + +// assertEquals(ObjReal(3.14), eval("3.14")) + assertEquals(ObjReal(314.0), eval("3.14e2")) + } + +} \ No newline at end of file diff --git a/publishing-readme.md b/publishing-readme.md new file mode 100644 index 0000000..3a35725 --- /dev/null +++ b/publishing-readme.md @@ -0,0 +1,381 @@ +[![official project](http://jb.gg/badges/official.svg)](https://github.com/JetBrains#jetbrains-on-github) + +# Multiplatform library template + +## What is it? + +This repository contains a simple library project, intended to demonstrate a [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) library that is deployable to [Maven Central](https://central.sonatype.com/). + +The library has only one function: generate the [Fibonacci sequence](https://en.wikipedia.org/wiki/Fibonacci_sequence) starting from platform-provided numbers. Also, it has a test for each platform just to be sure that tests run. + +Note that no other actions or tools usually required for the library development are set up, such as [tracking of backwards compatibility](https://kotlinlang.org/docs/jvm-api-guidelines-backward-compatibility.html#tools-designed-to-enforce-backward-compatibility), explicit API mode, licensing, contribution guideline, code of conduct and others. You can find a guide for best practices for designing Kotlin libraries [here](https://kotlinlang.org/docs/api-guidelines-introduction.html). + +## How to publish? + +This guide describes the steps of publishing a library built with Kotlin Multiplatform to the [Maven Central repository](https://central.sonatype.com/). To publish your library, you’ll need to: + +* Set up credentials, including an account on Maven Central and a PGP key to use for signing. +* Configure the publishing plugin in your library’s project. +* Provide your credentials to the publishing plugin so it can sign and upload your artifacts. +* Run the publication task, either locally or using continuous integration. + +This guide assumes that you are: + +- Creating an open-source library. +- Using macOS or Linux. If you are a Windows user, use [GnuPG or Gpg4win](https://gnupg.org/download) to generate a key pair. +- Either not registered on Maven Central yet, or have an existing account that’s suitable for [publishing to the Central Portal](https://central.sonatype.org/publish-ea/publish-ea-guide/) (created after March 12th, 2024, or migrated to the Central Portal by their support). +- Publishing your library in a GitHub repository. +- Using GitHub Actions for continuous integration. + +Most of the steps here are still applicable if you’re using a different setup, but there might be some differences you need to account for. An [important limitation](https://kotlinlang.org/docs/multiplatform-publish-lib.html#host-requirements) is that Apple targets must be built on a machine with macOS. + +Throughout this guide, we’ll use the [https://github.com/kotlin-hands-on/fibonacci](https://github.com/kotlin-hands-on/fibonacci) repository as an example. You can refer to the code of this repository to see how the publishing setup works. You **must replace all example values with your own** as you’re configuring your project. + +### Prepare accounts and credentials + +#### Register a namespace + +Artifacts published to Maven repositories are identified by their coordinates, for example `com.example:library:1.0.0`. These coordinates are made up of three parts, separated by colons: the `groupId`, `artifactId`, and `version`. + +As a first step for publishing to Maven Central, you’ll need to have a verified namespace. The `groupId` of the artifacts you publish will have to start with the name of your verified namespace. For example, if you register the `com.example` namespace, you’ll be able to publish artifacts with the `groupId` set to `com.example` or `com.example.libraryname`. + +To get started with publishing to Maven Central, sign in (or create a new account) on the [Maven Central](https://central.sonatype.com/) portal. Once signed in, navigate to [Namespaces](https://central.sonatype.com/publishing/namespaces) under your profile, and click the Add Namespace button. Here, you can register a namespace for your artifacts, either based on your GitHub account or a domain name that you own. + +**For a GitHub repository** +Using your GitHub account to create a namespace is a good option if you don’t own a domain name to use for publication. To create a namespace based on your GitHub account: + +1. Enter `io.github.` as your namespace. For example, `io.github.kotlin-hands-on`. +2. Copy the Verification Key displayed. +3. On GitHub, create a new repository with your GitHub account with the verification key as the repository’s name. For example, `http://github.com/kotlin-hands-on/ex4mpl3c0d`. +4. Navigate back to Maven Central, and click on the Verify Namespace button. After verification succeeds you can delete the repository you’ve created. + +**For a domain name** +To use a domain name that you own as your namespace: + +1. Enter your domain as the namespace using a reverse-DNS form. If your domain is `example.com`, enter `com.example`. +2. Copy the Verification Key displayed. +3. Create a new DNS TXT record with the verification key as its contents. See [Maven Central’s FAQ](https://central.sonatype.org/faq/how-to-set-txt-record/) for more information on how to do this with various domain registrars. +4. Navigate back to Maven Central, and click on the Verify Namespace button. After verification succeeds you can delete the TXT record you’ve created. + +#### Generate a Key Pair + +Artifacts published to Maven Central [must be signed with a PGP signature](https://central.sonatype.org/publish/requirements/gpg/), which allows users to validate the origin of artifacts. + +To get started with signing, you’ll need to generate a key pair: + +* The **private key** is used to sign your artifacts, and should never be shared with others. +* The **public key** can be used by others to validate the signature of the artifacts, and should be published. + +The `gpg` tool that can manage signatures for you is available from [their website](https://gnupg.org/download/index.html). You can also install it using package managers such as [Homebrew](https://brew.sh/): + +```bash +brew install gpg +``` +Generate a key pair with the following command, and fill in the required details when prompted. + +```bash +gpg --full-generate-key +``` + +Choose the recommended defaults for the type of key to be created. You can leave these selections empty and press Enter to accept the default values. + +> [!NOTE] +> At the time of writing, this is `ECC (sign and encrypt)` with `Curve 25519`. Older versions of `gpg` might default to `RSA` with a `3072` bit key size. + +Next, you’ll be prompted to set the expiration of the key. If you choose to create a key that automatically expires after a set amount of time, you’ll need to [extend its validity](https://central.sonatype.org/publish/requirements/gpg/#dealing-with-expired-keys) when it expires. + +You will be asked for your real name, email, and a comment. You can leave the comment empty. + +```text +Please select what kind of key you want: + (1) RSA and RSA + (2) DSA and Elgamal + (3) DSA (sign only) + (4) RSA (sign only) + (9) ECC (sign and encrypt) *default* + (10) ECC (sign only) + (14) Existing key from card +Your selection? 9 + +Please select which elliptic curve you want: + (1) Curve 25519 *default* + (4) NIST P-384 + (6) Brainpool P-256 +Your selection? 1 + +Please specify how long the key should be valid. + 0 = key does not expire + = key expires in n days + w = key expires in n weeks + m = key expires in n months + y = key expires in n years +Key is valid for? (0) 0 +Key does not expire at all + +Is this correct? (y/N) y +GnuPG needs to construct a user ID to identify your key. +``` + +You will be asked for a passphrase to encrypt the key, which you have to repeat. Keep this passphrase stored securely and privately. You’ll be using it later to access the private key. + +Let’s take a look at the key we’ve created with the following command: + +```bash +gpg --list-keys +``` + +The output will look something like this: + +```text +pub ed25519 2024-10-06 [SC] + F175482952A225BFC4A07A715EE6B5F76620B385CE +uid [ultimate] Your name + sub cv25519 2024-10-06 [E] +``` + +You’ll need to use the long alphanumerical identifier of your key displayed here in the following steps. + +#### Upload the public key + +You need to [upload the public key to a keyserver](https://central.sonatype.org/publish/requirements/gpg/#distributing-your-public-key) for it to be accepted by Maven Central. There are multiple available keyservers, we’ll use `keyserver.ubuntu.com` as a default choice. + +Run the following command to upload your public key using `gpg`, **substituting your own keyid** in the parameters: + +```bash +gpg --keyserver keyserver.ubuntu.com --send-keys F175482952A225BFC4A07A715EE6B5F76620B385CE +``` + +#### Export your private key + +To let your Gradle project access your private key, you’ll need to export it to a file. Use the following command, **passing in your own keyid** as a parameter. You will be prompted to enter the passphrase you’ve used when creating the key. + +```bash +gpg --armor --export-secret-keys F175482952A225BFC4A07A715EE6B5F76620B385CE > key.gpg +``` + +This will create a `key.gpg` file which contains your private key. + +> [!CAUTION] +> Never share a private key with anyone. + +If you check the contents of the file, you should see contents similar to this: + +```text +-----BEGIN PGP PRIVATE KEY BLOCK----- +lQdGBGby2X4BEACvFj7cxScsaBpjty60ehgB6xRmt8ayt+zmgB8p+z8njF7m2XiN +... +bpD/h7ZI7FC0Db2uCU4CYdZoQVl0MNNC1Yr56Pa68qucadJhY0sFNiB63KrBUoiO +-----END PGP PRIVATE KEY BLOCK----- +``` + +#### Generate the user token + +Your project will also need to authenticate with Maven Central to upload artifacts. On the Central Portal, navigate to the [Account](https://central.sonatype.com/account) page, and click on *Generate User Token*. + +The output will look like the example below, containing a username and a password. Store this information securely, as it can’t be viewed again on the Central Portal. If you lose these credentials, you’ll need to generate new ones later. + +```xml + + ${server} + l3nfaPmz + gh9jT9XfnGtUngWTZwTu/8241keYdmQpipqLPRKeDLTh + +``` + +### Configure the project + +#### Prepare your library project + +If you started developing your library from a template project, this is a good time to change any default names in the project to match your own library’s name. This includes the name of your library module, and the name of the root project in your top-level `build.gradle.kts` file. + +If you have an Android target in your project, you should follow the [steps to prepare your Android library release](https://developer.android.com/build/publish-library/prep-lib-release). This, at a minimum, requires you to [specify an appropriate namespace](https://developer.android.com/build/publish-library/prep-lib-release#choose-namespace) for your library, so that a unique R class will be generated when their resources are compiled. Notice that the namespace is different from the Maven namespace created in the [Register a namespace](#register-a-namespace) section above. + +```kotlin +// build.gradle.kts + +android { + namespace = "io.github.kotlinhandson.fibonacci" +} +``` + +#### Set up the publishing plugin + +This guide uses [vanniktech/gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) to help with publications to Maven Central. You can read more about the advantages of the plugin [here](https://vanniktech.github.io/gradle-maven-publish-plugin/#advantages-over-maven-publish). See the [plugin’s documentation](https://vanniktech.github.io/gradle-maven-publish-plugin/central/) to learn more about its usage and available configuration options. + +To add the plugin to your project, add the following line in the plugins block, in your library module’s `build.gradle.kts` file: + +```kotlin +// build.gradle.kts + +plugins { + id("com.vanniktech.maven.publish") version "0.29.0" +} +``` + +*Note: for the latest available version of the plugin, check its [releases page](https://github.com/vanniktech/gradle-maven-publish-plugin/releases).* + +In the same file, add the following configuration. Customize all these values appropriately for your library. + +```kotlin +// build.gradle.kts + +mavenPublishing { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + + signAllPublications() + + coordinates(group.toString(), "fibonacci", version.toString()) + + pom { + name = "Fibonacci library" + description = "A mathematics calculation library." + inceptionYear = "2024" + url = "https://github.com/kotlin-hands-on/fibonacci/" + licenses { + license { + name = "The Apache License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" + distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt" + } + } + developers { + developer { + id = "kotlin-hands-on" + name = "Kotlin Developer Advocate" + url = "https://github.com/kotlin-hands-on/" + } + } + scm { + url = "https://github.com/kotlin-hands-on/fibonacci/" + connection = "scm:git:git://github.com/kotlin-hands-on/fibonacci.git" + developerConnection = "scm:git:ssh://git@github.com/kotlin-hands-on/fibonacci.git" + } + } +} +``` + +Note that it’s also possible to use Gradle properties instead. + +Some of the most important, required settings here are: + +* The `coordinates`, which specify the `groupId`, `artifactId`, and `version` of your library. +* The [license](https://central.sonatype.org/publish/requirements/#license-information) that you’re publishing your library under. +* The [developer information](https://central.sonatype.org/publish/requirements/#developer-information) which lists the authors of the library. +* [SCM (Source Code Management) information](https://central.sonatype.org/publish/requirements/#scm-information), which specifies where the sources of your library are available. + +### Publish to Maven Central from Continuous Integration + +#### Add a GitHub Actions workflow to your project + +You can set up continuous integration which builds and publishes your library for you. We’ll use [GitHub Actions](https://docs.github.com/en/actions) as an example. + +To get started, add the following workflow to your repository, in the `.github/workflows/publish.yml` file. + +```yaml +# .github/workflows/publish.yml + +name: Publish +on: + release: + types: [released, prereleased] +jobs: + publish: + name: Release build and publish + runs-on: macOS-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + - name: Publish to MavenCentral + run: ./gradlew publishToMavenCentral --no-configuration-cache + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY_CONTENTS }} +``` + +After committing and pushing this change, this workflow will run automatically when you create a release (including a pre-release) in the GitHub repository hosting your project. It checks out the current version of your code, sets up a JDK, and then runs the `publishToMavenCentral` Gradle task. + +> [!NOTE] +> Alternatively, you could configure the workflow to [trigger when a tag is pushed](https://stackoverflow.com/a/61892639) to your repository. +> +> The script above disables Gradle [configuration cache](https://docs.gradle.org/current/userguide/configuration_cache.html) for the publication task by adding `--no-configuration-cache` to the Gradle command, as the publication plugin does not support it (see this [open issue](https://github.com/gradle/gradle/issues/22779)). +> +> Reminder: When using `publishToMavenCentral`, you’ll still need to check and release your deployment manually on the website, as described in the previous section. You may use `publishAndReleaseToMavenCentral` instead for a fully automated release. + +This action will need your signing details and your Maven Central credentials. These will be configured as GitHub Actions secrets in the next section. The configuration of the workflow above takes these secrets and places them into environment variables, which will make them available to the Gradle build automatically. + +### Add secrets to GitHub + +To use the keys and credentials required for publication in your GitHub Action workflow while keeping them private, you need to place those values into secrets. From your GitHub repository, go to `Settings` \> `(Security) Secrets and variables > Actions`. + +Click on the `New repository secret` button, and add the following secrets: + +- `MAVEN_CENTRAL_PASSWORD` and `MAVEN_CENTRAL_PASSWORD` are the values generated by the Central Portal website in the [Generate User Token](#generate-the-user-token) section. +- `SIGNING_KEY_ID` is **the last 8 characters** of your signing key’s identifier. +- `SIGNING_PASSWORD` is the passphrase you’ve provided when generating your signing key. +- `GPG_KEY_CONTENTS` should contain the contents of your GPG private key file, which you’ve created earlier in the [Export your private key](#export-your-private-key) section. + +![](/images/github_secrets.png) + +Note again that the names used for these secrets must match those used by the workflow that accesses their values. + +#### Create a release on GitHub + +With the workflow and secrets set up, you’re now ready to [create a release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) that will trigger the publication of your library. + +Go to your GitHub repository’s main page, and click on Releases in the menu in the right sidebar. + +![](/images/github_releases.png) + +Click *Draft a new release*. + +![](/images/draft_release.png) + +Each release creates a new tag. Set the name for the tag to be created, and set a name for the release (these may be identical). Note that setting a version here does not change the version of your coordinates configured in your `build.gradle.kts` file, so you should update that version before creating a new release. + +![](/images/create_release_and_tag.png) + +Double-check the branch you want to target with the release (especially if you want to release from a branch that’s different from your default), and add appropriate release notes for your new version. + +The checkboxes below allow you to mark a release as a pre-release (useful for alpha, beta, or RC versions of a library), or to set the release as the latest available one: + +![](/images/release_settings.png) + +Click the *Publish release* button to create the new release. This will immediately show up on your GitHub repository’s main page. + +Click the Actions tab on the top of your GitHub repository. Here you’ll see the new workflow was triggered by the GitHub release. Click it to see the outputs of the publication task. + +After this task completes successfully, navigate to the [Deployments](https://central.sonatype.com/publishing/deployments) dashboard. You should see a new deployment here. This deployment will be in the *pending* and *validating* states for some time while Maven Central performs checks on it. + +Once your deployment moves to a *validated* state, you should see that it contains all the artifacts you’ve uploaded. If everything looks correct, click the *Publish* button to release these artifacts. + +![](/images/published_on_maven_central.png) + +Note that it will take some time (about 15–30 minutes, usually) after the release for the artifacts to be available publicly on Maven Central. +Also note that the library may be available for use before they are indexed on [the Maven Central website](https://central.sonatype.com/). + +There’s also another task available which both uploads and releases the artifacts automatically once the deployment is verified, without having to manually release them on the website: + +```bash +./gradlew publishAndReleaseToMavenCentral +``` + +**Et voilà, you have successfully published your library to Maven Central.** + +# Next steps +- Share your library with the Kotlin Community in the `#feed` channel in the [Kotlin Slack](https://kotlinlang.slack.com/) (To sign up visit https://kotl.in/slack.) +- Add [shield.io badges](https://shields.io/badges/maven-central-version) to your README. +- Create a documentation site for your project using [Writerside](https://www.jetbrains.com/writerside/). +- Share API documentation for your project using [Dokka](https://kotl.in/dokka). +- Add [Renovate](https://docs.renovatebot.com/) to automatically update dependencies. + +# Other resources +* [Publishing via the Central Portal](https://central.sonatype.org/publish-ea/publish-ea-guide/) +* [Gradle Maven Publish Plugin \- Publishing to Maven Central](https://vanniktech.github.io/gradle-maven-publish-plugin/central/) diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..aa09cf7 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,20 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + maven("https://maven.universablockchain.com/") + maven("https://gitea.sergeych.net/api/packages/SergeychWorks/maven") + mavenLocal() + } +} + +rootProject.name = "ling" +include(":library")