summaryrefslogtreecommitdiffstats
path: root/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton-...
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2024-12-10 21:06:34 -0500
committerSacha Chua <sacha@sachachua.com>2024-12-10 21:32:43 -0500
commit80600a58aee5e82ed923c8a141a63bb366d3e667 (patch)
tree0b5beb8ebb8c76f808b2676f26f2cff9a82fa951 /2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt
parent76c84b5a22e12c845aa6a109ab627db2a2be032c (diff)
downloademacsconf-wiki-80600a58aee5e82ed923c8a141a63bb366d3e667.tar.xz
emacsconf-wiki-80600a58aee5e82ed923c8a141a63bb366d3e667.zip
update guile captions
Diffstat (limited to '2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt')
-rw-r--r--2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt118
1 files changed, 59 insertions, 59 deletions
diff --git a/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt b/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt
index 1c952084..35cf8ccd 100644
--- a/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt
+++ b/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt
@@ -1,13 +1,13 @@
-WEBVTT captioned by anush
+WEBVTT captioned by anush, checked by robin
00:00.000 --> 00:03.066
-Hello everyone, I'm Robin Templeton,
+Hello everyone. I'm Robin Templeton,
00:03.083 --> 00:05.750
and I'm going to talk about Emacs Beguiled
00:05.766 --> 00:13.866
-and recent progress on the Guile Emacs project.
+and recent progress on the Guile-Emacs project.
00:13.883 --> 00:16.433
First of all, if you're not familiar with Guile,
@@ -25,7 +25,7 @@ and in the same family as Emacs Lisp,
and Guile is GNU's official extension language.
00:28.166 --> 00:30.400
-The goal of the Guile Emacs project
+The goal of the Guile-Emacs project
00:30.400 --> 00:34.950
is to use Guile as the basis for Emacs's Lisp support.
@@ -85,7 +85,7 @@ than is currently feasible.
Of course, this raises the question of
01:31.133 --> 01:34.033
-why Guile is suitable for this product.
+why Guile is suitable for this project.
01:34.050 --> 01:36.666
And we chose Guile for a few reasons.
@@ -103,10 +103,10 @@ using its compiler tower.
To add support for a new language to Guile,
01:46.883 --> 01:50.066
-You only have to write a compiler
+you only have to write a compiler
01:50.083 --> 01:52.550
-from the source language to TRIAL[??],
+from the source language to Tree-IL,
01:52.566 --> 01:55.800
which is essentially a low-level,
@@ -118,7 +118,7 @@ minimal representation of Scheme.
All of Guile's compiler optimizations
02:01.800 --> 02:04.433
-occur at the TRIAL[??] layer or lower,
+occur at the Tree-IL layer or lower,
02:04.450 --> 02:06.033
so you don't need to worry
@@ -133,7 +133,7 @@ when initially implementing your language.
Guile also has some Lisp features
02:14.650 --> 02:18.316
-that are very rare in schema implementations.
+that are very rare in Scheme implementations.
02:18.333 --> 02:20.033
For example, it has a nil value
@@ -142,16 +142,16 @@ For example, it has a nil value
that counts as both false and an empty list,
02:23.933 --> 02:25.633
-just like an Elisp,
+just like in Elisp,
02:25.650 --> 02:30.466
-and it also has a version of the Common Lisp object system
+and it also has a version of the Common Lisp Object System
02:30.483 --> 02:37.200
-and its metoptic[??] protocol, which is called GOOPS.
+and its metaobject protocol, which is called GOOPS.
02:37.200 --> 02:40.150
-The idea of Guile Emacs has a pretty long history.
+The idea of Guile-Emacs has a pretty long history,
02:40.166 --> 02:43.866
going back at least three decades.
@@ -166,10 +166,10 @@ half a dozen previous implementation attempts.
But the current iteration began with
02:49.966 --> 02:52.866
-a series of six Summer of Code internships,
+a series of six Summer of Code internships:
02:52.883 --> 02:56.033
-Daniel Kraft's[??] in 2009,
+Daniel Kraft's in 2009,
02:56.050 --> 03:01.200
and then my internships from 2010 to 2014.
@@ -196,22 +196,22 @@ In Emacs, I modified the garbage collector
and the data structures for Lisp objects
03:18.600 --> 03:23.033
-to use their libgal equivalents.
+to use their libguile equivalents.
03:23.050 --> 03:26.950
I replaced Emacs' Lisp evaluator
03:26.966 --> 03:32.200
-with the one provided by guile-elisp.[??]
+with the one provided by Guile Elisp.
03:32.200 --> 03:34.033
-After a little over a year of work
+After a little over a year of work,
03:34.050 --> 03:37.950
at the end of the 2014 internship,
03:37.966 --> 03:44.316
-I ended up with a fully functional prototype of Guile Emacs.
+I ended up with a fully functional prototype of Guile-Emacs.
03:44.333 --> 03:48.916
It used Guile Elisp alone as its Lisp implementation
@@ -235,28 +235,28 @@ as well as ease of integration with the Emacs C code.
But it was nonetheless a major milestone for the project.
04:11.566 --> 04:19.600
-Let's take just a moment to look at guile-elisp.
+Let's take just a moment to look at Guile-Elisp.
04:19.600 --> 04:23.233
-For starters, we have access to guile modules.
+For starters, we have access to Guile modules.
04:23.250 --> 04:25.116
-If we call guile's version function,
+If we call Guile's <i>version</i> function,
04:25.133 --> 04:30.516
-we can see that we're running under guile 3.0,
+we can see that we're running under Guile 3.0.
04:30.533 --> 04:33.233
-have access to some of the numeric tower
+We have access to some of the numeric tower
04:33.250 --> 04:39.516
via the arithmetic functions. We also have multiple values.
04:39.533 --> 04:43.950
-We have to be careful to use Guile's values procedure here,
+We have to be careful to use Guile's <i>values</i> procedure here,
04:43.966 --> 04:46.666
-not the CL libraries,
+not the CL library's,
04:46.683 --> 04:48.833
but you can see that this works properly
@@ -271,28 +271,28 @@ Finally, we have tail call elimination.
Naturally, we're going to use factorial to demonstrate it.
05:02.883 --> 05:05.633
-If n is zero, return the answer,
+If <i>n</i> is zero, return the answer,
05:05.650 --> 05:14.266
-else recurse with n less one and n times a.
+else recurse with <i>n</i> less one and <i>n</i> times <i>a</i>.
05:14.283 --> 05:16.150
-Of course this definition works correctly,
+Of course, this definition works correctly,
05:16.166 --> 05:18.950
but it gets more interesting
05:18.966 --> 00:05:25.000
-if we communicate the answer with an error.
+if we communicate the answer with an error,
00:05:25.100 --> 05:29.633
-or to look at a backtrace.
+in order to look at a backtrace.
05:29.650 --> 05:32.350
You can see here that there are
05:32.366 --> 05:35.516
-no calls to fact visible in between
+no calls to <i>fact</i> visible in between
05:35.533 --> 05:37.833
the request to evaluate
@@ -313,7 +313,7 @@ This is essential for any kind
of serious functional programming.
00:06:00.116 --> 06:03.033
-That's a peek at guile-elisp.
+That's a peek at Guile-Elisp.
06:03.050 --> 06:08.066
In 2015, I left university to go work on web technologies,
@@ -328,13 +328,13 @@ But that's been changing recently.
During the last few months,
06:16.083 --> 06:17.633
-I've been working with Larry Valkama[??]
+I've been working with Larry Valkama
06:17.650 --> 06:20.716
-to rebase guile-emacs
+to rebase Guile-Emacs
06:20.733 --> 06:24.833
-onto the development branch of upstream emacs,
+onto the development branch of upstream Emacs,
06:24.850 --> 06:29.666
including the past decade's worth of upstream development.
@@ -358,7 +358,7 @@ where they haven't been properly adjusted
for changes in the Emacs implementation.
06:52.200 --> 06:56.833
-but we do have by now a version of Emacs 30
+But we do have by now a version of Emacs 30
06:56.850 --> 06:57.800
which boots correctly
@@ -403,10 +403,10 @@ an order of magnitude faster than ordinary Elisp,
and that's based on micro benchmarks
07:43.933 --> 00:07:46.133
-like the Gabriel[??] benchmarks.
+like the Gabriel benchmarks.
00:07:46.233 --> 00:07:50.900
-but there's clearly a lot of room
+But there's clearly a lot of room
00:07:50.900 --> 00:07:53.150
to improve our compiler's output.
@@ -415,7 +415,7 @@ to improve our compiler's output.
If you want to mark your calendars,
07:56.650 --> 08:00.150
-we're expecting to have a usable version of Guile Emacs 30
+we're expecting to have a usable version of Guile-Emacs 30
08:00.166 --> 00:08:03.016
out sometime next spring.
@@ -448,7 +448,7 @@ On the Emacs side, we'll be working initially
on abstracting away the details of the Lisp implementation
08:35.333 --> 00:08:37.433
-where they're not relevant,
+where they're not relevant.
00:08:37.533 --> 08:40.716
And that will clean up the Emacs code base a bit.
@@ -469,16 +469,16 @@ We're also going to be adding new features to Emacs Lisp.
We've seen a few of them already.
08:59.333 --> 09:02.633
-The new [??] tower, tail call optimization,
+The numeric tower, tail call optimization,
09:02.650 --> 09:04.550
-common list compatibility.
+Common Lisp compatibility.
09:04.566 --> 09:07.950
We're also going to provide access to Fibers,
09:07.966 --> 09:12.466
-which is a guide library based on ideas from concurrent ML
+which is a Guile library based on ideas from Concurrent ML
09:12.483 --> 09:15.716
that provides much more powerful facilities
@@ -490,7 +490,7 @@ for concurrent and parallel programming
than what Emacs currently offers.
00:09:24.666 --> 09:32.233
-This plan meets Guile Emacs' basic goals,
+This plan meets Guile-Emacs' basic goals,
09:32.250 --> 09:36.316
and it's work that we could maybe get integrated upstream
@@ -502,7 +502,7 @@ in a reasonable amount of time.
But it's also worth considering what more we can do,
00:09:42.600 --> 09:46.600
-and what effect Guile Emacs might have on Emacs
+and what effect Guile-Emacs might have on Emacs
09:46.600 --> 00:09:50.566
if it becomes simply Emacs.
@@ -538,7 +538,7 @@ and being written in C means
that they can't be practically redefined.
10:28.083 --> 10:34.433
-the use of C can become a barrier to extending Emacs
+The use of C can become a barrier to extending Emacs
10:34.450 --> 10:36.233
or customizing its behavior.
@@ -553,10 +553,10 @@ as much of Emacs as possible in Lisp.
One way to speed up this process
10:46.050 --> 10:49.400
-would be to provide a common Lisp implementation for Guile.
+would be to provide a Common Lisp implementation for Guile.
10:49.400 --> 10:54.833
-Note that between guile-elisp and guile-scheme,
+Note that between Guile Elisp and Guile Scheme,
10:54.850 --> 10:57.516
we have all of the essential ingredients
@@ -568,7 +568,7 @@ for a Common Lisp environment. We can also share code
with other Common Lisp implementations
11:06.016 --> 11:10.200
-such as SBCL and SICL[??].
+such as SBCL and SICL.
11:10.200 --> 11:13.800
Overall, the duration of the project
@@ -592,7 +592,7 @@ It could be a model for future improvements to Elisp,
because Elisp and CL can interact directly without problems.
11:34.883 --> 11:38.400
-and it would be very easy for Elisp
+And it would be very easy for Elisp
11:38.400 --> 11:41.466
to borrow language features from Common Lisp.
@@ -640,7 +640,7 @@ to compile Emacs to WebAssembly,
making it available perhaps in web browsers
12:33.200 --> 12:37.233
-or on systems with the WebAssembly system interface.
+or on systems with the WebAssembly System Interface.
12:37.250 --> 12:41.266
But it would also be a great victory
@@ -649,7 +649,7 @@ But it would also be a great victory
for practical software freedom.
12:43.050 --> 12:45.866
-That's the idea that freedom one,
+That's the idea that Freedom One,
12:45.883 --> 12:48.350
the freedom to study and modify programs,
@@ -661,7 +661,7 @@ should not just be legally and technically possible,
but should be actively encouraged
12:53.333 --> 12:57.066
-by our competing environments.
+by our computing environments.
12:57.083 --> 13:00.116
Emacs is really one of the archetypal examples of this,
@@ -733,7 +733,7 @@ We'll certainly be looking at the practicality
of these kinds of changes
14:20.966 --> 00:14:25.033
-as we continue developing Guile Emacs.
+as we continue developing Guile-Emacs.
00:14:25.133 --> 00:14:29.933
Finally, how can you get involved
@@ -778,10 +778,10 @@ We can always use bug reports,
and we're interested in what kind of features
15:18.883 --> 15:21.716
-people actually want to see in Guile Emacs.
+people actually want to see in Guile-Emacs.
15:21.733 --> 00:15:25.200
-Guile Emacs is also being developed
+Guile-Emacs is also being developed
00:15:25.300 --> 00:15:27.816
by a small worker cooperative,
@@ -799,10 +799,10 @@ and subscribing to our mailing lists
so that you can keep up with news on the project.
15:45.600 --> 15:47.316
-If you're watching this at Emacsconf,
+If you're watching this at EmacsConf,
15:47.333 --> 15:50.466
there will be a Q&A session immediately following this,
15:50.483 --> 15:57.066
-and thanks for watching.
+and thanks for watching!