aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-05-13 14:54:47 +0000
committers-ol <s+removethis@s-ol.nu>2025-03-02 14:24:47 +0000
commit1009e82b4dc2d262bce74f160a49eeb27ee66997 (patch)
treedf64d2a3aa19fb3484c15901c623d1848b83a159
parentadd fltk4lua copilot UI (diff)
downloadalive-1009e82b4dc2d262bce74f160a49eeb27ee66997.tar.gz
alive-1009e82b4dc2d262bce74f160a49eeb27ee66997.zip
add website to version.moon, update rockspec
-rw-r--r--README.md6
-rw-r--r--alv/version.moon5
-rwxr-xr-xbin/alv-fltk4
-rwxr-xr-xdist/pack-win.sh6
-rwxr-xr-xdist/release.sh15
-rw-r--r--dist/rocks/alive-scm-4.rockspec87
-rw-r--r--docs/gen/layout.moon1
-rw-r--r--docs/guide.md2
-rw-r--r--docs/index.md2
-rw-r--r--docs/internals/extensions.md10
10 files changed, 115 insertions, 23 deletions
diff --git a/README.md b/README.md
index 3c6e459..fa5b863 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ manually.
## docs
With `make` the HTML documentation is generated in `docs/`.
-The latest documentation is publicly available online at [alive.s-ol.nu][docs].
+The latest documentation is publicly available online at [alv.s-ol.nu][docs].
## starting the copilot
@@ -62,5 +62,5 @@ development, simply pass the files as arguments:
[discount]: https://luarocks.org/modules/craigb/discount
[ldoc]: https://github.com/s-ol/LDoc
-[docs]: https://alive.s-ol.nu
-[guide]: https://alive.s-ol.nu/guide.html
+[docs]: https://alv.s-ol.nu
+[guide]: https://alv.s-ol.nu/guide.html
diff --git a/alv/version.moon b/alv/version.moon
index e2754a2..ef370c3 100644
--- a/alv/version.moon
+++ b/alv/version.moon
@@ -6,8 +6,9 @@
--- exports
-- @table exports
-- @tfield string tag the last versions git tag
--- @tfield string web the repo web URL
--- @tfield string repo the git repo URL
+-- @tfield string repo the repo web URL
+-- @tfield string git the git repo URL
+-- @tfield string web the project web URL
-- @tfield string release the web URL of this release
{
tag: "v0.1"
diff --git a/bin/alv-fltk b/bin/alv-fltk
index 526724c..8075540 100755
--- a/bin/alv-fltk
+++ b/bin/alv-fltk
@@ -28,7 +28,7 @@ class GUICopilot extends Copilot
\add "&File/&Open script", '^o', -> @open!
\add "&File/&Quit", '^q', -> @window\hide!
@pause = \add "Run (^P)", '^p', @\pause, nil, fl.MENU_TOGGLE
- \add "Help", nil, -> fl.open_uri 'https://alv.s-ol.nu'
+ \add "Help", nil, -> fl.open_uri version.web
tile = fl.Tile 5, 40, 390, 160
@window.resizable = tile
@@ -75,7 +75,7 @@ class GUICopilot extends Copilot
about: =>
fl.alert "alive #{version.tag} fltkCopilot.
-visit alv.s-ol.nu for more information."
+visit #{version.web} for more information."
open: (file) =>
file or= fl.file_chooser "Open Script", '*.alv', 'script.alv'
diff --git a/dist/pack-win.sh b/dist/pack-win.sh
index 06595f6..c2dee87 100755
--- a/dist/pack-win.sh
+++ b/dist/pack-win.sh
@@ -36,17 +36,17 @@ EOF
mkdir "dist/$BUNDLE/alv-lib"
cat <<EOF >"dist/$BUNDLE/alv-lib/README.txt"
-You can use this directory to add extensions to alive.
+You can use this directory to add extensions to alv.
See the extension documentation here for more information:
-https://alive.s-ol.nu/internals/topics/extensions.md.html
+https://alv.s-ol.nu/stable/internals/topics/extensions.md.html
EOF
cat <<EOF >"dist/$BUNDLE/README.md"
alive $TAG
==========
-https://alive.s-ol.nu
+https://alv.s-ol.nu
https://github.com/s-ol/alive
License
diff --git a/dist/release.sh b/dist/release.sh
index d6522a8..f2b1e57 100755
--- a/dist/release.sh
+++ b/dist/release.sh
@@ -26,13 +26,15 @@ else
--- exports
-- @table exports
-- @tfield string tag the last versions git tag
--- @tfield string web the repo web URL
--- @tfield string repo the git repo URL
+-- @tfield string repo the repo web URL
+-- @tfield string git the git repo URL
+-- @tfield string web the project web URL
-- @tfield string release the web URL of this release
{
tag: "${TAG}"
- web: "https://github.com/s-ol/alive"
- repo: "https://github.com/s-ol/alive.git"
+ repo: "https://github.com/s-ol/alive"
+ git: "https://github.com/s-ol/alive.git"
+ web: "https://alv.s-ol.nu"
release: "https://github.com/s-ol/alive/releases/tag/${TAG}"
}
EOF
@@ -64,7 +66,7 @@ expressions persist and update until they are removed from the source code, and
the interpreter keeps no state that you cannot manipulate directly in the
source. This yields a direct-manipulation like experience with a purely
text-based language and works without special editor support.]],
- homepage = "https://alive.s-ol.nu",
+ homepage = "https://alv.s-ol.nu",
license = "GPL-3",
}
@@ -90,7 +92,8 @@ $(list_modules alv-lib)
},
bin = {
"bin/alv",
- "bin/alv-wx"
+ "bin/alv-wx",
+ "bin/alv-fltk",
},
},
}
diff --git a/dist/rocks/alive-scm-4.rockspec b/dist/rocks/alive-scm-4.rockspec
new file mode 100644
index 0000000..bffdac5
--- /dev/null
+++ b/dist/rocks/alive-scm-4.rockspec
@@ -0,0 +1,87 @@
+package = "alive"
+version = "scm-4"
+
+source = {
+ url = "git://github.com/s-ol/alive.git",
+}
+
+description = {
+ summary = "Experimental livecoding environment with persistent expressions",
+ detailed = [[
+This is an experimental livecoding language and environment, in which
+expressions persist and update until they are removed from the source code, and
+the interpreter keeps no state that you cannot manipulate directly in the
+source. This yields a direct-manipulation like experience with a purely
+text-based language and works without special editor support.]],
+ homepage = "https://alv.s-ol.nu",
+ license = "GPL-3",
+}
+
+dependencies = {
+ "lua",
+ "moonscript >= 0.5.0",
+ "lpeg ~> 0.10",
+ "luafilesystem",
+ "luasystem",
+ "luasocket",
+ "osc",
+}
+
+build = {
+ type = "builtin",
+ modules = {},
+ copy_directories = { "docs" },
+ install = {
+ lua = {
+ ["alv.ast"] = "alv/ast.moon",
+ ["alv.base.builtin"] = "alv/base/builtin.moon",
+ ["alv.base.fndef"] = "alv/base/fndef.moon",
+ ["alv.base.init"] = "alv/base/init.moon",
+ ["alv.base.input"] = "alv/base/input.moon",
+ ["alv.base.match"] = "alv/base/match.moon",
+ ["alv.base.op"] = "alv/base/op.moon",
+ ["alv.base.pureop"] = "alv/base/pureop.moon",
+ ["alv.builtin"] = "alv/builtin.moon",
+ ["alv.cell"] = "alv/cell.moon",
+ ["alv.copilot"] = "alv/copilot.moon",
+ ["alv.cycle"] = "alv/cycle.moon",
+ ["alv.error"] = "alv/error.moon",
+ ["alv.init"] = "alv/init.moon",
+ ["alv.invoke"] = "alv/invoke.moon",
+ ["alv.logger"] = "alv/logger.moon",
+ ["alv.module"] = "alv/module.moon",
+ ["alv.parsing"] = "alv/parsing.moon",
+ ["alv.registry"] = "alv/registry.moon",
+ ["alv.result.base"] = "alv/result/base.moon",
+ ["alv.result.const"] = "alv/result/const.moon",
+ ["alv.result.evt"] = "alv/result/evt.moon",
+ ["alv.result.init"] = "alv/result/init.moon",
+ ["alv.result.io"] = "alv/result/io.moon",
+ ["alv.result.sig"] = "alv/result/sig.moon",
+ ["alv.rtnode"] = "alv/rtnode.moon",
+ ["alv.scope"] = "alv/scope.moon",
+ ["alv.tag"] = "alv/tag.moon",
+ ["alv.type"] = "alv/type.moon",
+ ["alv.util"] = "alv/util.moon",
+ ["alv.version"] = "alv/version.moon",
+
+ ["alv-lib.logic"] = "alv-lib/logic.moon",
+ ["alv-lib.math"] = "alv-lib/math.moon",
+ ["alv-lib.midi"] = "alv-lib/midi.moon",
+ ["alv-lib.midi.core"] = "alv-lib/midi/core.moon",
+ ["alv-lib.midi.launchctl"] = "alv-lib/midi/launchctl.moon",
+ ["alv-lib.osc"] = "alv-lib/osc.moon",
+ ["alv-lib.pilot"] = "alv-lib/pilot.moon",
+ ["alv-lib.random"] = "alv-lib/random.moon",
+ ["alv-lib.sc"] = "alv-lib/sc.moon",
+ ["alv-lib.string"] = "alv-lib/string.moon",
+ ["alv-lib.time"] = "alv-lib/time.moon",
+ ["alv-lib.util"] = "alv-lib/util.moon",
+ },
+ bin = {
+ "bin/alv",
+ "bin/alv-wx",
+ "bin/alv-fltk",
+ },
+ },
+}
diff --git a/docs/gen/layout.moon b/docs/gen/layout.moon
index f695963..4d43737 100644
--- a/docs/gen/layout.moon
+++ b/docs/gen/layout.moon
@@ -62,6 +62,7 @@ abs = (page) ->
-- builtin-name; mod.name/name; mod.name
link = (ref) ->
return version.web if ref == '*web*'
+ return version.git if ref == '*git*'
return version.repo if ref == '*repo*'
return version.release if ref == '*release*'
diff --git a/docs/guide.md b/docs/guide.md
index 483f60a..94f3e27 100644
--- a/docs/guide.md
+++ b/docs/guide.md
@@ -59,7 +59,7 @@ be a note marking the parts of the guide where specific dependencies are
required.
After installing the dependencies, you can download the `alv` source code
-from the [releases page][:*release*:], or clone the [git repository][:*web*:]:
+from the [releases page][:*release*:], or clone the [git repository][:*repo*:]:
$ git clone https://github.com/s-ol/alive.git
diff --git a/docs/index.md b/docs/index.md
index 7979876..1ed709a 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -16,7 +16,7 @@ system seamlessly, without resetting any part of your program (unless you want
it to).
`alv` is free and open source software. The code is currently being hosted
-[on github][:*web*:], and is licensed under [GPLv3][license].
+[on github][:*repo*:], and is licensed under [GPLv3][license].
If you want to learn more or try out `alv` yourself, the
[getting started][guide] page is a good place to start. On the other hand, if
diff --git a/docs/internals/extensions.md b/docs/internals/extensions.md
index bc07e58..e541d9a 100644
--- a/docs/internals/extensions.md
+++ b/docs/internals/extensions.md
@@ -155,7 +155,7 @@ There are four types of `Result`s that can be created:
to the same value it already had. They are updated using `SigStream:set`.
- `EvtStream`s transmit *momentary events*. They can transmit multiple events
in a single tick. `EvtStream`s do not keep a value set on the last tick on
- the next tick. They are updated using `EvtStream:add`.
+ the next tick. They are updated using `EvtStream:set`.
- `IOStream`s are like `EvtStream`s, but their `IOStream:poll` method is
polled by the event loop at the start of every tick. This gives them a chance
to effectively create changes 'out of thin air' and kickstart the execution
@@ -190,19 +190,19 @@ will be necessary.
To implement a custom IOStream, create it as a class that inherits from the
`IOStream` base and implement the constructor and `IOStream:poll`:
- import IOStream from require 'alv.base'
+ import T, IOStream from require 'alv.base'
class UnreliableStream extends IOStream
- new: => super 'bang'
+ new: => super T.bang
poll: =>
if math.random! < 0.1
- @add true
+ @set true
In the constructor, you should call the super-constructor `EvtStream.new` to
set the event type. Often this will be a custom event that is only used inside
your extension (such as e.g. the `midi/port` type in the [midi][modules-midi]
-module), but it can also be a primitive type like `'num'` in this example. In
+module), but it can also be a primitive type like `T.bang` in this example. In
`:poll`, your IOStream is given a chance to communicate with the external world
and create any resulting events. The example stream above randomly sends bang
events out, with a 10% chance each 'tick' of the system. Note that there is no