Menu

Tree [339631] default tip /
 History

Read Only access


File Date Author Commit
 bin 2021-12-20 miyakawataku miyakawataku [ecfb78] add runtime JUL setup
 config 2025-04-30 miyakawataku miyakawataku [19e3c4] add script to make a maven bundle
 etc 2021-12-20 miyakawataku miyakawataku [d53ace] use JUL instead of Logback during test; because...
 gradle 2024-09-07 miyakawataku miyakawataku [a39749] update Gradle to 8.10
 man 2025-09-28 miyakawataku miyakawataku [edf8d7] update manual
 src 17 hours ago miyakawataku miyakawataku [d886ae] add Japanese translation of kinkdoc of ATOMIC
 .hgignore 2025-03-20 miyakawataku miyakawataku [82772f] separate message files of a directory to multip...
 .hgtags 2025-10-13 miyakawataku miyakawataku [611aad] Added tag 0.9.4-beta for changeset c9d586cd554d
 Jenkinsfile 2025-10-11 miyakawataku miyakawataku [47b398] update jenkins tasks
 LICENSE.txt 2014-12-29 miyakawataku miyakawataku [31d796] the year part of the copyright notice in docume...
 README.rst 2025-08-02 miyakawataku miyakawataku [d8c638] update README
 build.gradle 2025-10-10 miyakawataku miyakawataku [5ccbc2] update build scripts
 gradle.properties 2025-10-13 miyakawataku miyakawataku [99b897] bump up version number
 gradlew 2024-09-07 miyakawataku miyakawataku [a39749] update Gradle to 8.10
 gradlew.bat 2024-09-07 miyakawataku miyakawataku [a39749] update Gradle to 8.10
 settings.gradle 2018-11-15 miyakawataku miyakawataku [218000] set the project name so that build works with d...

Read Me

Kink - Kink language runtime

Kink is an object-based programming language, adopting object system without inheritance, and delimited continuations.

Kink is also an implementation of Kink language runtime, which runs on JVM.

Build Kink

The build is set up to run on Ubuntu 24.04, but other Unix-like systems could also be used as a build environment.

The following tools are required to build Kink artifacts:

  • JDK 21
    • on $JAVA_HOME environment variable
  • GNU bash
    • bash apt package
    • required for doc, manualPo, kinkTest targets
  • GNU make
    • make apt package
    • required for doc, manualPo targets
  • graphviz
    • graphviz apt package
    • required for doc target
  • gettext
    • gettext apt package
    • required for doc, manualPo targets
  • Sphinx
    • python3-sphinx apt package
    • required for doc, manualPo targets
    • command can be configured as sphinx_build_command property in gradle.properties
  • OpenSSL 3+
    • required for kinkTest target
  • MinGW GCC
    • gcc-mingw-w64 apt package
    • required for exeFile target
    • command can be configured as mingw_gcc_command property in gradle.properties
  • Mercurial
    • mercurial apt package
    • required for tarball target, the source tree must be cloned by Mercurial
    • to clone the source tree, run hg clone http://hg.code.sf.net/p/kink-lang/kink

The following is a list of important Gradle tasks:

  • ./gradlew libDir
    • builds lib/*.jar
    • you can use bin/kink command after the task
  • ./gradlew exeFile
    • builds bin/kink.exe and bin/kinkw.exe
  • ./gradlew doc
    • builds the document under doc/ directory
  • ./gradlew manualPo -Planguage={Language} -Pcontent={ContentPath}
    • creates or updates a .po file for the manual in: src/manual/_translation/{Language}/LC_MESSAGES
    • currently, the only valid value for {Language} is ja
    • {ContentPath} can be like changelog or api/kink-STR
  • ./gradlew tarball
    • builds ./kink-{version}.tar.gz, which is the distribution package
    • the source tree must be cloned by Mercurial.
  • ./gradlew test
    • runs JUnit tests
    • this task is also available on Windows
  • ./gradlew kinkTest
    • runs Kink tests
  • ./gradlew clean
    • removes generated files

Run Kink

The following tools are required to build Kink artifacts:

  • JDK 21
  • GNU bash; only on Unix-like systems

First extract kink-{version} directory from the zip archive or tarball archive.

Then launch REPL by running kink-{version}/bin/kink. If you want line editing, get rlwrap and run rlwrap kink-{version}/bin/kink.

You can get help by running kink-{version}/bin/kink --help.

On Windows, you have two exe files: kink.exe and kinkw.exe. The first one launches java.exe, so it suits for CUI applications. The latter launches javaw.exe, so its suits for GUI applications.

Licenses

Kink is developed by Miyakawa Taku and distributed under the MIT license. See LICENSE.txt.

Kink distributions may include thirdparty softwares. See doc/license.html or src/docroot/license.rst for the licenses of the thirdparty softwares.

Author