Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Gerwitz <mtg@gnu.org>2018-02-08 23:40:00 -0500
committerMike Gerwitz <mtg@gnu.org>2018-02-08 23:40:00 -0500
commit7e3f3f0b0abab25f7ca3774199a875047a49883f (patch)
treebc0738ced02244754cbc1f914c2be8c478eb8ef3
parente8c9c6cdd8e58c8660470046d3177e2d3e9af0c2 (diff)
downloadulambda-7e3f3f0b0abab25f7ca3774199a875047a49883f.tar.gz
ulambda-7e3f3f0b0abab25f7ca3774199a875047a49883f.tar.bz2
ulambda-7e3f3f0b0abab25f7ca3774199a875047a49883f.zip
Gibble=>Ulambda Scheme
Gibble is still the ultimate goal, but since I seem to have gone down precisely the path that I did _not_ want to go down (implementing a full Scheme), this deserves to be its own project. Oh, and Gibble is the "{General=>Graphical} Block-Based Learning Environment".
-rw-r--r--README.md22
-rw-r--r--build-aux/bootstrap.html10
-rw-r--r--build-aux/bootstrap.js6
-rw-r--r--build-aux/bootstrap/Bootstrap.js22
-rw-r--r--build-aux/bootstrap/birth.scm17
-rw-r--r--build-aux/bootstrap/prebirth.js24
-rw-r--r--build-aux/bootstrap/rebirth.scm18
-rw-r--r--build-aux/bootstrap/rebirth/es.scm4
-rw-r--r--build-aux/bootstrap/rebirth/macro.scm8
-rw-r--r--build-aux/bootstrap/rebirth/relibprebirth.scm4
10 files changed, 60 insertions, 75 deletions
diff --git a/README.md b/README.md
index 908e527..f7343a5 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-# General Interactive Block-Based Learning Environment (Gibble)
+# Ulambda Scheme
<!--
- Copyright (C) 2017 Mike Gerwitz
+ Copyright (C) 2018 Mike Gerwitz
- This file is part of Gibble.
+ This file is part of Ulambda Scheme.
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice and
@@ -10,18 +10,12 @@
of any kind.
-->
-Cute name, little information.
+Ulambda Scheme (also abbreviated "Y Scheme") is a self-hosting Scheme.
+The primary compiler target is JavaScript.
-Check back later. I have plenty of information to give, but it is all
-fairly information and chaotic notes that need to be organized. Besides,
-you're not supposed to even see the repository in this state (outside of its
-history, at least)---what are you doing here!? Intruder! Prepare thyself
-for the wrath of the Gibble!
+There's a lot more to be said, but that story will evolve over time.
```
- _ _
- ,--0---0--.
- | |
- | |
- `---------'
+\/ Ulambda
+ \ Scheme
```
diff --git a/build-aux/bootstrap.html b/build-aux/bootstrap.html
index 2b800f2..2fc3007 100644
--- a/build-aux/bootstrap.html
+++ b/build-aux/bootstrap.html
@@ -2,9 +2,9 @@
<!--
Copyright (C) 2017 Mike Gerwitz
- This file is part of Gibble.
+ This file is part of Ulambda Scheme.
- Gibble is free software: you can redistribute it and/or modify
+ Ulambda Scheme is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
@@ -20,7 +20,7 @@
<html>
<head>
<meta charset="utf-8" />
- <title>Gibble Lisp Browserstrap</title>
+ <title>Ulambda Scheme Browserstrap</title>
<style type="text/css">
* {
font-family: monospace;
@@ -35,7 +35,7 @@
</style>
</head>
<body>
- <h1>Gibble Lisp Bootstrap</h1>
+ <h1>Ulambda Scheme Bootstrap</h1>
<pre id="log">
This is the in-browser version of the bootstrap process; it operates
@@ -56,7 +56,7 @@ I'll wait for you to click the button below to get started.
<noscript>
<p>
<strong>Bootstrapping requires JavaScript.</strong>
- All of Gibble requires JavaScript, actually.
+ All of Ulambda requires JavaScript, actually.
</p>
</noscript>
diff --git a/build-aux/bootstrap.js b/build-aux/bootstrap.js
index 2a6c00e..afef5da 100644
--- a/build-aux/bootstrap.js
+++ b/build-aux/bootstrap.js
@@ -1,11 +1,11 @@
/**
- * Command-line bootstrap procedure for Gibble Lisp
+ * Command-line bootstrap procedure for Ulambda Scheme
*
* Copyright (C) 2017 Mike Gerwitz
*
- * This file is part of Gibble.
+ * This file is part of Ulambda Scheme.
*
- * Gibble is free software: you can redistribute it and/or modify
+ * Ulambda Scheme is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
diff --git a/build-aux/bootstrap/Bootstrap.js b/build-aux/bootstrap/Bootstrap.js
index 3ab5b19..caad92c 100644
--- a/build-aux/bootstrap/Bootstrap.js
+++ b/build-aux/bootstrap/Bootstrap.js
@@ -1,11 +1,11 @@
/**
- * Bootstrap procedure for Gibble Lisp
+ * Bootstrap procedure for Ulambda Scheme
*
- * Copyright (C) 2017 Mike Gerwitz
+ * Copyright (C) 2017, 2018 Mike Gerwitz
*
- * This file is part of Gibble.
+ * This file is part of Ulambda Scheme.
*
- * Gibble is free software: you can redistribute it and/or modify
+ * Ulambda Scheme is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
@@ -18,12 +18,12 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * Ideally, the user should be able to bootstrap Gibble Lisp with nothing
+ * Ideally, the user should be able to bootstrap Ulambda Scheme with nothing
* more than what they already have installed on their computer, in the
- * environment that Gibble was designed to run in---the web
- * browser. Node.js was used during official development, but that is a
- * large system that should not be a necessary dependency---it should be
- * needed only for convenience.
+ * environment that Ulambda was designed to run in---the web browser.
+ * Node.js was used during official development, but that is a large system
+ * that should not be a necessary dependency---it should be needed only for
+ * convenience.
*
* To run this process on a local development environment using Node.js, see
* `../bootstrap.js'. To run in your web browser, see `../bootstrap.html'.
@@ -33,7 +33,7 @@
/**
- * Bootstrap procedure for Gibble Lisp
+ * Bootstrap procedure for Ulambda Scheme
*
* This abstracts the bootstrap process in such a way that it can be run in
* any JavaScript environment. Notably, we need to support not only Node.js
@@ -72,7 +72,7 @@ class Bootstrap
/**
* Perform bootstrapping process
*
- * This compiles each of the phases of Gibble beginning with
+ * This compiles each of the phases of Ulambda Scheme beginning with
* Prebirth. This will evolve in complexity as we continue to move
* forward. Each step of the process is self-verifying.
*
diff --git a/build-aux/bootstrap/birth.scm b/build-aux/bootstrap/birth.scm
index c2ae3fa..3890f2f 100644
--- a/build-aux/bootstrap/birth.scm
+++ b/build-aux/bootstrap/birth.scm
@@ -1,10 +1,10 @@
;;; Prebirth Lisp implemented in Prebirth Lisp (self-hosting)
;;;
-;;; Copyright (C) 2017 Mike Gerwitz
+;;; Copyright (C) 2017, 2018 Mike Gerwitz
;;;
-;;; This file is part of Gibble.
+;;; This file is part of Ulambda Scheme.
;;;
-;;; Gibble is free software: you can redistribute it and/or modify
+;;; Ulambda Scheme is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU Affero General Public License as
;;; published by the Free Software Foundation, either version 3 of the
;;; License, or (at your option) any later version.
@@ -17,10 +17,11 @@
;;; You should have received a copy of the GNU Affero General Public License
;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;;
-;;; THIS IS TEMPORARY CODE that will be REWRITTEN IN GIBBLE LISP ITSELF after
-;;; a very basic bootstrap is complete. It is retained as an important
-;;; artifact for those who wish to build Gibble from scratch without using
-;;; another version of Gibble itself. This is called "self-hosting".
+;;; THIS IS TEMPORARY CODE that will be REWRITTEN IN GIBBLE LISP ITSELF
+;;; after a very basic bootstrap is complete. It is retained as an
+;;; important artifact for those who wish to build Ulambda Scheme from
+;;; scratch without using another version of Ulambda itself. This is called
+;;; "self-hosting".
;;;
;;; This is the Prebirth Lisp implementation of the JavaScript Prebirth
;;; compiler, found in `prebirth.js'---that compiler can be used to compile
@@ -39,7 +40,7 @@
;;; the manually written `libprebirth.js' to function. Rebirth will remove
;;; that completely, which bootstraps the runtime in its entirety. At that
;;; point, all development will be exclusively in Scheme and we can get on
-;;; with Gibble.
+;;; with Ulambda Scheme.
;; pair selection
(define (cadr xs)
diff --git a/build-aux/bootstrap/prebirth.js b/build-aux/bootstrap/prebirth.js
index d2c67e0..a205630 100644
--- a/build-aux/bootstrap/prebirth.js
+++ b/build-aux/bootstrap/prebirth.js
@@ -1,11 +1,11 @@
/**
- * Bootstrap Gibble Lisp ("Prebirth")
+ * Bootstrap Ulambda Scheme ("Prebirth")
*
* Copyright (C) 2017 Mike Gerwitz
*
- * This file is part of Gibble.
+ * This file is part of Ulambda Scheme.
*
- * Gibble is free software: you can redistribute it and/or modify
+ * Ulambda Scheme is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
@@ -18,23 +18,19 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * THIS IS TEMPORARY CODE that will be REWRITTEN IN GIBBLE LISP ITSELF after
- * a very basic bootstrap is complete. It is retained as an important
- * artifact for those who wish to build Gibble from scratch without using
- * another version of Gibble itself. This is called "self-hosting".
+ * THIS IS TEMPORARY CODE that will be REWRITTEN IN ULAMBDA SCHEME ITSELF
+ * after a very basic bootstrap is complete. It is retained as an important
+ * artifact for those who wish to build Ulambda Scheme from scratch without
+ * using another version of Ulambda itself. This is called "self-hosting".
*
* Rather than producing a sophisticated self-hosting language, this
* language will be a terribly incomplete and inadequate version of what
* will ultimately become a formidable and competent language.
*
* I refer to this entire complication process as "Prebirth".¹ The "Birth"
- * of Gibble is the act of reimplementing this Prebirth in a Prebirth
- * version of Gibble Lisp itself. It's the chicken-and-egg paradox, without
- * the paradox.²
- *
- * Gibble Lisp is _not_ the most primitive language that will be understood
- * by the system---it is too high-level. After Birth, the language can
- * devolve into something more powerful and workable.
+ * of Ulambda Scheme is the act of reimplementing this Prebirth in a
+ * Prebirth version of Ulambda itself. It's the chicken-and-egg paradox,
+ * without the paradox.²
*
* Some minor terminology:
* - AST: Abstract Syntax Tree, a processed form of the CST.
diff --git a/build-aux/bootstrap/rebirth.scm b/build-aux/bootstrap/rebirth.scm
index 73c7927..1fece03 100644
--- a/build-aux/bootstrap/rebirth.scm
+++ b/build-aux/bootstrap/rebirth.scm
@@ -2,9 +2,9 @@
;;;
;;; Copyright (C) 2017, 2018 Mike Gerwitz
;;;
-;;; This file is part of Gibble.
+;;; This file is part of Ulambda Scheme.
;;;
-;;; Gibble is free software: you can redistribute it and/or modify
+;;; Ulambda Scheme is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU Affero General Public License as
;;; published by the Free Software Foundation, either version 3 of the
;;; License, or (at your option) any later version.
@@ -17,10 +17,10 @@
;;; You should have received a copy of the GNU Affero General Public License
;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;;
-;;; THIS IS TEMPORARY CODE that will be REWRITTEN IN ULAMBDA SCHEME after
-;;; a very basic bootstrap is complete. It is retained as an important
-;;; artifact for those who wish to build Gibble from scratch without using
-;;; another version of Gibble itself. This is called "self-hosting".
+;;; THIS IS TEMPORARY CODE that will be REWRITTEN IN ULAMBDA SCHEME after a
+;;; very basic bootstrap is complete. It is retained as an important
+;;; artifact for those who wish to build Ulambda Scheme from scratch without
+;;; using another version of Ulambda itself. This is called "self-hosting".
;;;
;;; This is the compiler for Rebirth Lisp---it builds off of Birth by
;;; first eliminating the need for libprebirth; this allows _all_
@@ -37,12 +37,6 @@
;;; Rererebirth, or Re*birth, or Reⁿbirth---it is a recursively self-hosting
;;; compiler. It adds features to itself each time it compiles itself.
;;;
-;;; The ultimate goal after all of those compilation steps is to produce a
-;;; compiler that can support the actual Scheme to be used by Gibble:
-;;; Ulambda Scheme (abbreviated "Y Scheme", for an upside-down lambda, where
-;;; "Y" stands for the Y combinator). More on the name in the future
-;;; (perhaps see the Ulambda documentation).
-;;;
;;; Note that we're dealing with a small subset of Scheme here, so certain
;;; things might be done differently given a proper implementation.
;;;
diff --git a/build-aux/bootstrap/rebirth/es.scm b/build-aux/bootstrap/rebirth/es.scm
index 10a39d6..8928ede 100644
--- a/build-aux/bootstrap/rebirth/es.scm
+++ b/build-aux/bootstrap/rebirth/es.scm
@@ -2,9 +2,9 @@
;;;
;;; Copyright (C) 2017, 2018 Mike Gerwitz
;;;
-;;; This file is part of Gibble.
+;;; This file is part of Ulambda Scheme.
;;;
-;;; Gibble is free software: you can redistribute it and/or modify
+;;; Ulambda Scheme is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU Affero General Public License as
;;; published by the Free Software Foundation, either version 3 of the
;;; License, or (at your option) any later version.
diff --git a/build-aux/bootstrap/rebirth/macro.scm b/build-aux/bootstrap/rebirth/macro.scm
index 804c44a..732a144 100644
--- a/build-aux/bootstrap/rebirth/macro.scm
+++ b/build-aux/bootstrap/rebirth/macro.scm
@@ -2,9 +2,9 @@
;;;
;;; Copyright (C) 2017, 2018 Mike Gerwitz
;;;
-;;; This file is part of Gibble.
+;;; This file is part of Ulambda Scheme.
;;;
-;;; Gibble is free software: you can redistribute it and/or modify
+;;; Ulambda Scheme is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU Affero General Public License as
;;; published by the Free Software Foundation, either version 3 of the
;;; License, or (at your option) any later version.
@@ -109,8 +109,8 @@
;; on blindly. Any errors resulting from undefined procedures, for
;; example, occur at runtime in the compiled output.
;;
- ;; These are features that will be implemented in Gibble Lisp; that's
- ;; not something to distract ourselves with now.
+ ;; These are features that will be implemented in Ulambda Scheme;
+ ;; that's not something to distract ourselves with now.
;;
;; So there are some corollaries:
;;
diff --git a/build-aux/bootstrap/rebirth/relibprebirth.scm b/build-aux/bootstrap/rebirth/relibprebirth.scm
index 42302ad..c0f110e 100644
--- a/build-aux/bootstrap/rebirth/relibprebirth.scm
+++ b/build-aux/bootstrap/rebirth/relibprebirth.scm
@@ -2,9 +2,9 @@
;;;
;;; Copyright (C) 2017, 2018 Mike Gerwitz
;;;
-;;; This file is part of Gibble.
+;;; This file is part of Ulambda Scheme.
;;;
-;;; Gibble is free software: you can redistribute it and/or modify
+;;; Ulambda Scheme is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU Affero General Public License as
;;; published by the Free Software Foundation, either version 3 of the
;;; License, or (at your option) any later version.