Avail
所属分类:collect
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2023-07-02 21:40:34
上 传 者:
sh-1993
说明: Avail编程语言。包括虚拟机、标准库和标准示例。,
(The Avail programming language. Includes the virtual machine, standard library, and standard examples.,)
文件列表:
LICENSE.txt (1507, 2023-10-04)
avail-artifact/ (0, 2023-10-04)
avail-artifact/.idea/ (0, 2023-10-04)
avail-artifact/.idea/.name (14, 2023-10-04)
avail-artifact/.idea/jsonSchemas.xml (1090, 2023-10-04)
avail-artifact/.idea/vcs.xml (183, 2023-10-04)
avail-artifact/LICENSE (1538, 2023-10-04)
avail-artifact/build.gradle.kts (5805, 2023-10-04)
avail-artifact/gradle.properties (27, 2023-10-04)
avail-artifact/gradle/ (0, 2023-10-04)
avail-artifact/gradle/wrapper/ (0, 2023-10-04)
avail-artifact/gradle/wrapper/gradle-wrapper.jar (59821, 2023-10-04)
avail-artifact/gradle/wrapper/gradle-wrapper.properties (202, 2023-10-04)
avail-artifact/gradlew (8070, 2023-10-04)
avail-artifact/gradlew.bat (2674, 2023-10-04)
avail-artifact/settings.gradle.kts (38, 2023-10-04)
avail-artifact/src/ (0, 2023-10-04)
avail-artifact/src/main/ (0, 2023-10-04)
avail-artifact/src/main/kotlin/ (0, 2023-10-04)
avail-artifact/src/main/kotlin/org/ (0, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/ (0, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/ (0, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/ArtifactDescriptor.kt (3782, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailArtifact.kt (3585, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailArtifactBuildPlan.kt (9808, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailArtifactException.kt (644, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailArtifactMetadata.kt (3492, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailArtifactType.kt (340, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/AvailRootFileMetadata.kt (1254, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/DigestUtility.kt (3601, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/PackageType.kt (1665, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/ResourceType.kt (674, 2023-10-04)
avail-artifact/src/main/kotlin/org/availlang/artifact/Utility.kt (441, 2023-10-04)
... ...
| **Release** | **Version** |
|--------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Avail VM](https://github.com/AvailLang/Avail/blob/master/avail) | [![Maven Central](https://github.com/AvailLang/Avail/blob/master/https://img.shields.io/badge/maven--central-v2.0.0.alpha27-0f824e)](https://github.com/AvailLang/Avail/blob/master/https://central.sonatype.com/namespace/org.availlang) |
| [Avail Standard Library](https://github.com/AvailLang/Avail/blob/master/avail/distro/src/avail) | [![Maven Central](https://github.com/AvailLang/Avail/blob/master/https://img.shields.io/badge/maven--central-v2.0.0.alpha23--1.6.1.alpha14-0f824e)](https://github.com/AvailLang/Avail/blob/master/https://central.sonatype.com/namespace/org.availlang) |
| [Avail Artifact](https://github.com/AvailLang/Avail/blob/master/../avail-artifact) | [![Maven Central](https://github.com/AvailLang/Avail/blob/master/https://img.shields.io/badge/maven--central-v2.0.0.alpha22-0f824e)](https://github.com/AvailLang/Avail/blob/master/https://search.maven.org/artifact/org.availlang/avail-artifact) |
| [Avail Gradle Plugin](https://github.com/AvailLang/Avail/blob/master/../gradle-plugin) | [![Maven Central](https://github.com/AvailLang/Avail/blob/master/https://img.shields.io/badge/maven--central-v2.0.0.alpha20-0f824e)](https://github.com/AvailLang/Avail/blob/master/https://plugins.gradle.org/plugin/org.availlang.avail-plugin) |
OVERVIEW
--------------------------------------------------------------------------------
Avail is a multi-paradigmatic general purpose programming language whose feature
set emphasizes support for constructing domain-specific languages (DSLs). Anvil
is the integrated development environment (IDE) of Avail, and it is bundled
directly with the language for convenience. Due to the advanced lexical and
syntactical features of Avail, popular IDEs such as IntelliJ and Eclipse are
unsuitable for use, so you should use Anvil for best ergonomics.
Avail is an open-source project that comprises a
[language virtual machine](https://github.com/AvailLang/Avail/blob/master/https://en.wikipedia.org/wiki/Virtual_machine), a
standard library, and an IDE. All three are released under the
[3-clause BSD license](https://github.com/AvailLang/Avail/blob/master/https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29).
* [Quickstart](https://github.com/AvailLang/Avail/blob/master/#quickstart)
* [Before Obtaining Avail](https://github.com/AvailLang/Avail/blob/master/#before-obtaining-avail)
* [Obtaining Avail](https://github.com/AvailLang/Avail/blob/master/#obtaining-avail)
* [Building Anvil](https://github.com/AvailLang/Avail/blob/master/#building)
* [Running Anvil](https://github.com/AvailLang/Avail/blob/master/#running)
* [Embedding Avail](https://github.com/AvailLang/Avail/blob/master/#embedding-avail)
This document describes the entire process of obtaining, installing,
configuring, and running Anvil, for the purpose of developing software in Avail.
If you are an experienced software developer, already familiar with Git, Java,
and Gradle, then you probably want to proceed directly to
[Quickstart](https://github.com/AvailLang/Avail/blob/master/#quickstart) so that you can begin using Avail as quickly as
possible.
If you prefer gentler guidance or more detailed information, then you should
probably read the other sections below as well.
In this document, `$PROJ` always refers to the directory into which you cloned
Avail.
QUICKSTART
--------------------------------------------------------------------------------
Herein is the fastest path to getting started, so that you can jump right into
writing Avail. The steps below will:
1. Clone Avail onto your system.
2. Build Anvil from source code.
3. Open Anvil on your desktop.
If (1) you are using a Unix-based system, such as Linux, macOS, Minimalist GNU
for Windows (MinGW), or Windows Subsystem for Linux (WSL), and (2) you already
have access to Git:
```shell
$ git clone https://github.com/AvailLang/Avail.git $PROJ
$ cd $PROJ
$ ./gradlew :avail:packageAndRun
```
If (1) you are using vanilla Windows and (2) you already have access to Git:
```shell
$ git.exe clone https://github.com/AvailLang/Avail.git $PROJ
$ cd $PROJ
$ .\gradlew.bat :avail:packageAndRun
```
Anvil's project manager should open on your desktop. You can now:
1. Explore the Avail standard library and official examples by opening
[examples-avail-config.json](https://github.com/AvailLang/Avail/blob/master/avail/examples-avail-config.json), or
2. Create your own Avail project, based on the Avail standard library.
(Screenshots and additional guidance will follow, when the official release of
Avail 2.0.0 approaches.)
BEFORE OBTAINING AVAIL
--------------------------------------------------------------------------------
In order to obtain Avail locally you will need to make sure that you have
obtained and installed the prerequisite software:
--------------------------------------------------------------------------------
1) **Git**: This is the version control software used by the Avail team to
develop and deliver Avail.
To see if you have Git installed, try this:
```shell
$ git version
```
If Git is installed and available on your path, then it will respond with a
version string like:
git version 2.39.2
The latest version of Git can be obtained at:
http://git-scm.com/
Please follow any installation directions provided by the Git website or
included with the Git product.
The main command is called `git`. Please make sure that it is available on your
path.
--------------------------------------------------------------------------------
2) **Java**: You will need version 17 of the Java Development Kit (JDK) Standard
Edition (SE), _NOT_ an earlier version. Many modern systems already have some
version of the JDK, so you should check your JDK version before obtaining and
installing it from OpenJDK (or some other vendor). You can do so like this:
```shell
$ javac -version
```
And hopefully you get back something like this:
javac 17.0.2
Otherwise, the latest version of the JDK can be obtained at:
https://jdk.java.net/
Please follow any installation directions provided by the website or included
with the JDK, especially with respect to setting up the appropriate environment
variables for command-line use.
The commands of interest are `java` and `javac`. Please make sure that these are
on your path.
OBTAINING AVAIL
--------------------------------------------------------------------------------
The preferred method of acquiring Avail is from The Avail Foundation's official
public repository. This repository is located at:
https://github.com/AvailLang/Avail.git
Choose the directory where you would like the local copy of the Avail repository
to reside (i.e., `$PROJ`). Clone the official public repository into it like
this:
```shell
$ git clone https://github.com/AvailLang/Avail.git $PROJ
```
Even if you are planning to install Avail for system-wide usage, you will
probably want to choose a non-system directory to house the local copy of the
Avail repository.
BUILDING
--------------------------------------------------------------------------------
To compile Anvil into an executable JAR, without automatically running it
thereafter, navigate to `$PROJ` and use the provided Gradle wrapper. On a
Unix-based system:
```shell
$ ./gradlew :avail:package
```
On vanilla Windows:
```shell
$ .\gradlew.bat :avail:package
```
You should see output similar to this:
> Configure project :avail
Java version for tests: 17
AvailRoot(49): /Users/avail/projects/avail/distro/src/avail
AvailRoot(57): /Users/avail/projects/avail/distro/src/builder-tests
AvailRoot(52): /Users/avail/projects/avail/distro/src/examples
AvailRoot(51): /Users/avail/projects/avail/distro/src/website
> Configure project :avail-stdlib
BUILD SUCCESSFUL in 9s
12 actionable tasks: 5 executed, 1 from cache, 6 up-to-date
Toward the end of the transcript you should find `BUILD SUCCESSFUL`, which
indicates that your build is ready to use. You can find it here:
$PROJ/avail-anvil.jar
This executable JAR file contains the whole of Anvil, which bundles the Avail
compiler toolchain and runtime within.
Naturally, you can move `avail-anvil.jar` to another location if you feel so
inclined.
You will need to adjust the paths mentioned below to account for relocation if
you have done this.
RUNNING
--------------------------------------------------------------------------------
At any time after Anvil has been built, you can navigate to `$PROJ` and launch
Anvil using the provided Gradle wrapper. To launch Anvil on a Unix-based system:
```shell
$ ./gradlew :avail:run
```
To launch Anvil on vanilla Windows:
```shell
$ .\gradlew.bat :avail:run
```
If the default JDK on your system is version 17 or later, you may be able to
double click this JAR file to launch Anvil.
If all else fails, you can also launch Anvil by invoking `java` directly. On
a Unix-based system:
```shell
$ java -jar $PROJ/avail-anvil.jar
```
On vanilla Windows:
```shell
$ java.exe -jar $PROJ\avail-anvil.jar
```
EMBEDDING AVAIL
--------------------------------------------------------------------------------
If you wish to embed Avail into a larger JVM project, rather than use Avail as a
standalone language, you can import a prebuilt version of Avail as a dependency.
See the
[Avail Gradle Plugin](https://github.com/AvailLang/Avail/blob/master/gradle-plugin) for more
details on how to accomplish this. You can also refer to our
[example projects](https://github.com/AvailLang/Avail/blob/master/examples) to see how Avail can be
incorporated into a JVM project.
--------------------------------------------------------------------------------
Thank you for using Avail!
on behalf of Avail
Richard Arriaga
Mark van Gulik
Leslie Schultz
Todd L Smith
近期下载者:
相关文件:
收藏者: