From fe5b4b8bb7a24ef5a2d56715d0374e64e1d92107 Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Wed, 1 May 2024 11:56:59 +0300 Subject: [PATCH] change site, add docs --- build.xml | 2 +- docs/docs.adoc | 7 +++ docs/install.adoc | 59 ++++++++++++++++++++++ site/index.html | 122 +++++++++++++++++++--------------------------- site/styles.css | 114 +++++++++++++++++++++++-------------------- 5 files changed, 176 insertions(+), 128 deletions(-) create mode 100644 docs/docs.adoc create mode 100644 docs/install.adoc diff --git a/build.xml b/build.xml index c010876..982e170 100644 --- a/build.xml +++ b/build.xml @@ -56,7 +56,7 @@ - + diff --git a/docs/docs.adoc b/docs/docs.adoc new file mode 100644 index 0000000..94c9bc3 --- /dev/null +++ b/docs/docs.adoc @@ -0,0 +1,7 @@ +# Truffle ISLISP + +## <> + +## <> + +## <> \ No newline at end of file diff --git a/docs/install.adoc b/docs/install.adoc new file mode 100644 index 0000000..516caa2 --- /dev/null +++ b/docs/install.adoc @@ -0,0 +1,59 @@ +# Installing & running ISLISP Truffle +:toc: left + +## Install + +### Installing on Windows + +1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/ +2. Download `islisp.exe` artifact, place it in convenient location eg `C:\Program files\ISLISP\islisp.exe` +3. Optionally; add above directory to your PATH system variable https://www.wikihow.com/Change-the-PATH-Environment-Variable-on-Windows . + +### Installing on Linux + +1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/ +2. Download `islisp-linux` artifact, place it in convenient location eg `/opt/islisp/islisp` +3. You might need to execute `chmod +x islisp-linux` after downloading to make it executable. +4. Optionally; add above directory to your PATH system variable https://www.baeldung.com/linux/path-variable . + +### Installing on Mac + +1. Click on a release from https://github.com/arvyy/islisp-truffle/releases/ +2. Download `islisp-mac` artifact, place it in `/usr/local/bin/islisp` +3. You might need to execute `chmod +x islisp-mac` after downloading to make it executable. + +### Running on Docker + +ISLISP images are provided on docker hub https://hub.docker.com/r/arvyy/islisp/tags + +### Running on Java app + +TODO + +## Run + +Run interpreter with `-h` or `--help` option to see command line help. + +### Configure library source location + +When using `require` form, islisp searches from roots provided through `-sp ` or `--sourcepath ` parameter (when using standalone launcher), or `islisp.Sourcepath` context option (when embedding in java). Parameter value: set of paths, separated by system path separate (`:` on unix, `;` on windows). + +### Enabling debugging + +Provide `-d ` or `--debug-chrome ` to start debug session through chrome tools. After starting a session, a link should appear in standard output, paste it to chrome url bar to start debugging. + +Provide `-dap ` or `--debug-dap ` to start debug session through debugger adapter protocol (such as through VSCode). + +If you're using Docker, don't forget to also forward chosen ports. + +### Enabling profiling + +TODO + +### Execution modes + +Invoking interpreter with a file parameter will run said file and exit upon completion. + +Invoking interpreter with a `-` parameter will make it read source from standard input, execute it, and exit upon completion. + +Otherwise, interpreter is started in an interactive REPL mode. \ No newline at end of file diff --git a/site/index.html b/site/index.html index 9500040..c6b4e5d 100644 --- a/site/index.html +++ b/site/index.html @@ -1,76 +1,52 @@ - - Truffle ISLISP - - - - - - - - - - -
- -
-

Truffle ISLISP

- ISLISP2007 standard implementation on GraalVM's Truffle framework. -
-
-

Features

-
-
ISLISP, a spiritually CommonLisp-lite:
-
    -
  • Adhoc polymorphism through generic methods;
  • -
  • Dynamic and lexical scoping;
  • -
  • Procedural macros.
  • -
-
-
-
Gains from implementing through Truffle framework:
-
    -
  • Fast performancewip;
  • -
  • C FFI;
  • -
  • Tooling support such as debugger through DAP or Chrome tools;
  • -
  • Interop with other truffle implementations such as java, python, javascript, llvm, and more.
  • -
-
-
-
-

Downloads

-

- Downloads are provided through Github releases. -

- Windows / Linux / MacOS links provide downloads of a standalone interpreter compiled to native binary for corresponding OS. Note, that the interpreter - had been compiled to only include core ISLISP language, it doesn't include other languages like javascript, python, etc. Either - build the project yourself with necessary language dependencies added, or use the jar language distribution (see below) in an environemnt geared - towards truffle polyglot programming. -

- Language jar link contains the core language itself. You will need to use it if you want to create customized runtime (such as, different security configuration, - or different language dependencies), or if you just plainly want to use islisp scripts from java directly. -

- No stable releases are yet availablewip. -

- No docker nor maven repository releases are yet availablewip. - - -

-
-

Nigtly

- -
-
-
-
- + + Truffle ISLISP + + + + + + + + + +
+
+ +
+
+

Truffle ISLISP

+ ISLISP2007 standard implementation on GraalVM's Truffle framework. +
+
+

Features

+
+
ISLISP, a spiritually CommonLisp-lite:
+
    +
  • Adhoc polymorphism through generic methods;
  • +
  • Dynamic and lexical scoping;
  • +
  • Procedural macros.
  • +
+
+
+
Gains from implementing through Truffle framework:
+
    +
  • Fast performancewip;
  • +
  • C FFI;
  • +
  • Tooling support such as debugger through DAP or Chrome tools;
  • +
  • Interop with other truffle implementations such as java, python, javascript, llvm, and more.
  • +
+
+
+
+ +
+ diff --git a/site/styles.css b/site/styles.css index 6f2f246..039a84c 100644 --- a/site/styles.css +++ b/site/styles.css @@ -18,22 +18,49 @@ html { } .big-logo { - height: 100px; + height: 100%; + width: 100%; +} + +.content-wrap { + position: relative; + display: grid; + padding: 1em; + max-width: 960px; margin: auto; - display: block; + padding-top: 2em; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto; + grid-template-areas: + "logo main" + "footer footer"; } -nav { - display: flex; - align-self: stretch; +@media(max-width: 800px) { + .content-wrap { + grid-template-columns: 1fr; + grid-template-areas: + "logo" + "main" + "footer"; + } + .big-logo-aside { + margin-bottom: 2em; + } } -nav *:first-child { - margin-left: auto; +.big-logo-aside { + grid-area: logo; +} + +footer { + grid-area: footer; + display: flex; + justify-content: center; } -.nav-link { - margin: 0.5em; +footer > * { + margin-right: 2em; } a { @@ -48,19 +75,16 @@ a:hover { background-color: var(--link-color); } -body { - display: flex; - flex-direction: column; - align-items: center; - background-color: var(--bg-color); +main { + line-height: 1.5em; + grid-area: main; } -main { - display: flex; - max-width: 960px; - width: 100%; - flex-direction: column; - align-items: stretch; +.main-section { + margin-bottom: 2em; + padding: 1em; + background-color: color-mix(in srgb, var(--bg-color), transparent 20%); + box-shadow: 0 0 20px 10px color-mix(in srgb, var(--bg-color), transparent 20%); } h1, h2 { @@ -70,17 +94,6 @@ h1, h2 { margin-bottom: 0.5em; } -.main-section { - margin-top: 1em; - margin-bottom: 0.5em; - padding: 2em; - line-height: 1.5em; - background-color: var(--bg-color2); - border-bottom: 4px var(--border-color) solid; - border-right: 4px var(--border-color) solid; - box-shadow: var(--shadow-color) 0 10px 40px; -} - li { margin-left: 1em; } @@ -109,31 +122,24 @@ li::before { font-weight: bold; } -.release { - display: flex; - flex-wrap: wrap; -} - -.release__item { - margin: 2em; - padding: 1em; - flex: 1; - max-width: 300px; - border: var(--border-color) solid 1px; +p { + margin-top: 1em; } -.release__title { - text-align: center; - font-size: 1.2em; - color: var(--heading-color); -} +html, body { + padding: 0; -.release__coming-soon { - font-weight: bold; - font-style: italic; - color: var(--text-color-muted); } -p { - margin-top: 1em; -} +.background { + position: fixed; + width: 200vw; + height: 200vh; + transform: translate(-100vw, -100vh) rotate(20deg) translate(100vw, 0); + background-repeat: repeat; + background-size: 100px; + background-image: + url('data:image/svg+xml;utf8,\ + \ + truffle islisp'); +} \ No newline at end of file