Skip to content

Commit

Permalink
change site, add docs
Browse files Browse the repository at this point in the history
  • Loading branch information
arvyy committed May 1, 2024
1 parent 071b1b9 commit fe5b4b8
Show file tree
Hide file tree
Showing 5 changed files with 176 additions and 128 deletions.
2 changes: 1 addition & 1 deletion build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
<delete dir="${basedir}/dist/site"/>
<exec executable="${shell.executable}" dir="docs">
<arg value="${shell.prefix}"/>
<arg value="asciidoctor apireference.adoc"/>
<arg value="asciidoctor apireference.adoc docs.adoc install.adoc building.adoc"/>
</exec>
<copy todir="${basedir}/dist/site">
<fileset dir="site"></fileset>
Expand Down
7 changes: 7 additions & 0 deletions docs/docs.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Truffle ISLISP

## <<install.adoc#, Installation and running>>

## <<building.adoc#, Building from source>>

## <<apireference.adoc#, API reference>>
59 changes: 59 additions & 0 deletions docs/install.adoc
Original file line number Diff line number Diff line change
@@ -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 <paths>` or `--sourcepath <paths>` 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 <port>` or `--debug-chrome <port>` 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 <port>` or `--debug-dap <port>` 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.
122 changes: 49 additions & 73 deletions site/index.html
Original file line number Diff line number Diff line change
@@ -1,76 +1,52 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Truffle ISLISP</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="icon.svg">
<link href="https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
</head>
<body>
<nav>
<a class="nav-link" href="apireference.html">Docs</a>
<a class="nav-link" href="https://github.com/arvyy/islisp-truffle/">Source code</a>
</nav>
<main>
<img src="icon.svg" class="big-logo">
<section class="main-section">
<h1>Truffle ISLISP</h1>
<a href="http://islisp.org/docs/islisp-v23.pdf">ISLISP2007 standard</a> implementation on <a href="https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/">GraalVM's Truffle framework</a>.
</section>
<section class="main-section">
<h2>Features</h2>
<div class="list-group">
<div class="list-group__title">ISLISP, a spiritually CommonLisp-lite:</div>
<ul>
<li>Adhoc polymorphism through generic methods;</li>
<li>Dynamic and lexical scoping;</li>
<li>Procedural macros.</li>
</ul>
</div>
<div class="list-group">
<div class="list-group__title">Gains from implementing through Truffle framework:</div>
<ul>
<li>Fast performance<span class="wip">wip</span>;</li>
<li>C FFI;</li>
<li>Tooling support such as debugger through DAP or Chrome tools;</li>
<li>Interop with other truffle implementations such as java, python, javascript, llvm, and more.</li>
</ul>
</div>
</section>
<section class="main-section">
<h2>Downloads</h2>
<p>
Downloads are provided through Github releases.
<p>
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.
<p>
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.
<p>
No stable releases are yet available<span class="wip">wip</span>.
<p>
No docker nor maven repository releases are yet available<span class="wip">wip</span>.


<div class="release">
<div class="release__item">
<h3 class="release__title">Nigtly</h3>
<ul class="release__downloads">
<li><a href="https://github.com/arvyy/islisp-truffle/releases/download/nightly/islisp.exe">Windows</a></li>
<li><a href="https://github.com/arvyy/islisp-truffle/releases/download/nightly/islisp-linux">Linux</a></li>
<li><a href="https://github.com/arvyy/islisp-truffle/releases/download/nightly/islisp-macos">MacOS</a></li>
<li><a href="https://github.com/arvyy/islisp-truffle/releases/download/nightly/islisp.jar">Language jar</a></li>
</ul>
</div>
</div>
</section>
</main>
</body>
<head>
<title>Truffle ISLISP</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="icon.svg">
<link href="https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link href="styles.css" rel="stylesheet">
</head>
<body>
<div class="background"></div>
<div class="content-wrap">
<aside class="big-logo-aside">
<img src="icon.svg" class="big-logo" alt="Cringe logo spelling 'TRIL', you really didn't want to see that">
</aside>
<main>
<section class="main-section">
<h1>Truffle ISLISP</h1>
<a href="http://islisp.org/docs/islisp-v23.pdf">ISLISP2007 standard</a> implementation on <a href="https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/">GraalVM's Truffle framework</a>.
</section>
<section class="main-section">
<h2>Features</h2>
<div class="list-group">
<div class="list-group__title">ISLISP, a spiritually CommonLisp-lite:</div>
<ul>
<li>Adhoc polymorphism through generic methods;</li>
<li>Dynamic and lexical scoping;</li>
<li>Procedural macros.</li>
</ul>
</div>
<div class="list-group">
<div class="list-group__title">Gains from implementing through Truffle framework:</div>
<ul>
<li>Fast performance<span class="wip">wip</span>;</li>
<li>C FFI;</li>
<li>Tooling support such as debugger through DAP or Chrome tools;</li>
<li>Interop with other truffle implementations such as java, python, javascript, llvm, and more.</li>
</ul>
</div>
</section>
</main>
<footer>
<a href="install.html">Install</a>
<a href="docs.html">Docs</a>
<a href="https://github.com/arvyy/islisp-truffle">Source</a>
</footer>
</div>
</body>
</html>
114 changes: 60 additions & 54 deletions site/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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 {
Expand All @@ -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;
}
Expand Down Expand Up @@ -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,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 30">\
<rect x="-10" y="-10" fill="%23151515" width="200" height="100"></rect>\
<text x="0" y="20" fill="%23212b25">truffle islisp</text></svg>');
}

0 comments on commit fe5b4b8

Please sign in to comment.