Website

Check-in [c896d3739b]
Login
Overview
Comment:Rebrand from Play to Stabel
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c896d3739b535f1caf9693afc24a7bbb0e7e62a6c916462844eea9c6f08affb2
User & Date: robin.hansen on 2021-06-04 11:11:52
Other Links: manifest | tags
Context
2021-06-08
09:33
Add community page with links to zulip, twitter and compiler repo. check-in: a562f1f447 user: robin.hansen tags: trunk
2021-06-04
11:11
Rebrand from Play to Stabel check-in: c896d3739b user: robin.hansen tags: trunk
2021-06-03
09:51
Update copyright year in LICENSE. check-in: 2836a083e0 user: robin.hansen tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Modified deploy.sh from [e35eb07dd4] to [d05e9660d3].

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

npm ci
npm run build

# Upload to s3
pushd dist

aws s3 cp ./index.html s3://play-website \
    --cache-control max-age=600

aws s3 cp ./*.css s3://play-website \
    --cache-control immutable

aws s3 cp ./playground.html s3://play-website \
    --cache-control max-age=600

aws s3 cp ./*.js s3://play-website \
    --cache-control immutable

popd







|


|


|


|



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

npm ci
npm run build

# Upload to s3
pushd dist

aws s3 cp ./index.html s3://stabel-website \
    --cache-control max-age=600

aws s3 cp ./*.css s3://stabel-website \
    --cache-control immutable

aws s3 cp ./playground.html s3://stabel-website \
    --cache-control max-age=600

aws s3 cp ./*.js s3://stabel-website \
    --cache-control immutable

popd

Modified src/index.html from [e499889c81] to [d6f30a7738].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
..
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Play</title>

        <link rel="stylesheet" href="index.css">
    </head>
    <body>
        <header>
            <div id="header-content">
                <div id="rename-info">This project is being renamed. Read more <a href="https://fossils.play-lang.dev/compiler/technote/2c86a090f4e1efb80b3b851e15a0eaf1c1c49479" title="Read about renaming of project">here</a>.</div>

                <nav>
                    <h1>
                        <span class="big">Play</span>
                        <span class="small">alpha 1</span>
                    </h1>

                    <ul>
                        <li><a title="Get caught up on the latest news" href="https://fossils.play-lang.dev/compiler/timeline?udc=1&ss=m&n=10&y=e&advm=0">News</a></li>
                        <li><a title="Join the discussion" href="https://fossils.play-lang.dev/community">Forum</a></li>
                        <li><a title="Access the source code" href="https://fossils.play-lang.dev">Source</a></li>
                    </ul>
                </nav>

                <h2>A small, portable language, for making reliable applications</h2>

                <ul>
                    <li>You can learn the syntax and semantics in an afternoon</li>
                    <li>The compiler helps you find mistakes with a strong static type system</li>
                    <li>Tightly controlled side effects gives you a better control over third party code</li>
                    <li>Run your code on a server or in the browser, using web assembly</li>
                </ul>

                <a class="link-button" alt="Try the Play language" href="/playground.html">
                    Try
                </a>
            </div>
        </header>

        <main>
            <h3>Minimal, yet flexible</h3>

            <p>The syntax and semantics of Play is heavily inspired by Forth. This means that the syntax is clean and free of many control characters while the semantics consist of few, but powerful, rules.</p>

            <pre class="shell right">
                # Returns 3

                def: main
                : 2 increment

                def: increment
                : 1 +
            </pre>

            <p>Without going into too much detail, code in Play consists of whitespace-separated functions which are called in a left-to-right fashion. The return value, or values, of a function call serve as the input arguments for the next function call. Numbers are functions which return themselves. Technically, this entire paragraph is valid Play syntax.</p>

            <h3>Easy to reason about</h3>

            <p>Play also improves on Forth in several ways. A strong, static type system helps you prevent bugs and to document your code. Errors and IO are represented in the type system, so that forgetting to deal with a certain error condition is caught at compile time. All data structures in Play are also immutable, which greatly reduces the number of states your program can be in, which again makes your code easy to reason about.</p>

            <pre class="shell left">
                Compilation failed:

                9 | def: some-word
                10| type: -- Bool
                11| : 1
................................................................................

                The type of 'some-word' is specified to be  -- Bool.
                However, it seems that the actual type is:  -- Int.
            </pre>

            <h3>Portable</h3>

            <p>Your code can run on the command line, on a server or even in the browser. As Play is compiled to web assembly, you're sure to enjoy the exact same semantics wherever your code is executed.</p>

            <h3 class="clear">In Alpha</h3>

            <p>Play is still in early development. There are currently no strings, arrays or even garbage collection. All of this will come in time. For more information, take a look at the <a alt="Read the roadmap" href="https://fossils.play-lang.dev/compiler/wiki?name=roadmap">roadmap</a>.</p>
        </main>

        <footer>
            <ul>
                <li>© 2020-2021 Robin Heggelund Hansen</li>
                <li><a href="https://twitter.com/stabellanguage" title="Stabel's twitter profile" target="_blank">Twitter</a></li>
                <li><a href="https://stabel.zulipchat.com" title="Stabel's zulip chat" target="_blank">Zulip</a></li>
            </ul>
        </footer>
    </body>
</html>



|






<
<


|




|
|
|












|








|











|



|







 







|



|











1
2
3
4
5
6
7
8
9
10


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
..
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Stabel</title>

        <link rel="stylesheet" href="index.css">
    </head>
    <body>
        <header>
            <div id="header-content">


                <nav>
                    <h1>
                        <span class="big">Stabel</span>
                        <span class="small">alpha 1</span>
                    </h1>

                    <ul>
                        <li><a title="Get caught up on the latest news" href="https://fossils.stabel-lang.org/compiler/timeline?udc=1&ss=m&n=10&y=e&advm=0">News</a></li>
                        <li><a title="Join the discussion" href="https://fossils.stabel-lang.org/community">Forum</a></li>
                        <li><a title="Access the source code" href="https://fossils.stabel-lang.org">Source</a></li>
                    </ul>
                </nav>

                <h2>A small, portable language, for making reliable applications</h2>

                <ul>
                    <li>You can learn the syntax and semantics in an afternoon</li>
                    <li>The compiler helps you find mistakes with a strong static type system</li>
                    <li>Tightly controlled side effects gives you a better control over third party code</li>
                    <li>Run your code on a server or in the browser, using web assembly</li>
                </ul>

                <a class="link-button" alt="Try Stabel" href="/playground.html">
                    Try
                </a>
            </div>
        </header>

        <main>
            <h3>Minimal, yet flexible</h3>

            <p>The syntax and semantics of Stabel is heavily inspired by Forth. This means that the syntax is clean and free of many control characters while the semantics consist of few, but powerful, rules.</p>

            <pre class="shell right">
                # Returns 3

                def: main
                : 2 increment

                def: increment
                : 1 +
            </pre>

            <p>Without going into too much detail, code in Stabel consists of whitespace-separated functions which are called in a left-to-right fashion. The return value, or values, of a function call serve as the input arguments for the next function call. Numbers are functions which return themselves. Technically, this entire paragraph is valid Stabel syntax.</p>

            <h3>Easy to reason about</h3>

            <p>Stabel also improves on Forth in several ways. A strong, static type system helps you prevent bugs and to document your code. Errors and IO are represented in the type system, so that forgetting to deal with a certain error condition is caught at compile time. All data structures in Stabel are also immutable, which greatly reduces the number of states your program can be in, which again makes your code easy to reason about.</p>

            <pre class="shell left">
                Compilation failed:

                9 | def: some-word
                10| type: -- Bool
                11| : 1
................................................................................

                The type of 'some-word' is specified to be  -- Bool.
                However, it seems that the actual type is:  -- Int.
            </pre>

            <h3>Portable</h3>

            <p>Your code can run on the command line, on a server or even in the browser. As Stabel is compiled to web assembly, you're sure to enjoy the exact same semantics wherever your code is executed.</p>

            <h3 class="clear">In Alpha</h3>

            <p>Stabel is still in early development. There are currently no strings, arrays or even garbage collection. All of this will come in time. For more information, take a look at the <a alt="Read the roadmap" href="https://fossils.stabel-lang.org/compiler/wiki?name=roadmap">roadmap</a>.</p>
        </main>

        <footer>
            <ul>
                <li>© 2020-2021 Robin Heggelund Hansen</li>
                <li><a href="https://twitter.com/stabellanguage" title="Stabel's twitter profile" target="_blank">Twitter</a></li>
                <li><a href="https://stabel.zulipchat.com" title="Stabel's zulip chat" target="_blank">Zulip</a></li>
            </ul>
        </footer>
    </body>
</html>