diff options
author | Sacha Chua <sacha@sachachua.com> | 2021-11-28 15:53:37 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2021-11-28 15:53:37 -0500 |
commit | f02bf10e32b65cab36b7d3cdb19196663d40980b (patch) | |
tree | 5ee07e9573fd529a23e13fce0577d0a886d4f631 /2021/captions | |
parent | e98263c3727bac0e33bfa9f0f1f41d6f6ffc135a (diff) | |
download | emacsconf-wiki-f02bf10e32b65cab36b7d3cdb19196663d40980b.tar.xz emacsconf-wiki-f02bf10e32b65cab36b7d3cdb19196663d40980b.zip |
Update
Diffstat (limited to '')
-rw-r--r-- | 2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt | 1421 |
1 files changed, 1421 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt b/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt new file mode 100644 index 00000000..12a7a6ad --- /dev/null +++ b/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt @@ -0,0 +1,1421 @@ +WEBVTT + + +00:00.960 --> 00:00:03.760 +welcome everyone uh my name is ferming i + +00:03.760 --> 00:00:05.120 +work as a commonwealth engineer at + +00:05.120 --> 00:00:08.000 +ribbon pack and today i'm going to talk + +00:08.000 --> 00:00:09.519 +about + +00:09.519 --> 00:00:11.360 +how to build an e-max + +00:11.360 --> 00:00:12.240 +right + +00:12.240 --> 00:00:16.640 +so uh let's start by defining what is an + +00:16.640 --> 00:00:18.000 +imax + +00:18.000 --> 00:00:20.080 +so that this can be a really this can be + +00:20.080 --> 00:00:21.920 +really hard depending on + +00:21.920 --> 00:00:23.920 +what you want to say what you want to + +00:23.920 --> 00:00:26.320 +qualify what emas is and not i'm going + +00:26.320 --> 00:00:27.920 +to + +00:27.920 --> 00:00:29.519 +get just this definition it's not the + +00:29.519 --> 00:00:31.840 +best but it's mine right + +00:31.840 --> 00:00:34.480 +so i would argue that an emacs should + +00:34.480 --> 00:00:37.440 +have text editing capabilities + +00:37.440 --> 00:00:38.879 +i wouldn't say it should be a text + +00:38.879 --> 00:00:41.120 +editor but it should be able to work + +00:41.120 --> 00:00:43.200 +really well with text + +00:43.200 --> 00:00:45.680 +as you have introspection and a global + +00:45.680 --> 00:00:46.879 +state + +00:46.879 --> 00:00:49.760 +so you can ask them every time + +00:49.760 --> 00:00:51.680 +um software itself i think it should be + +00:51.680 --> 00:00:54.879 +able to modify itself while running + +00:54.879 --> 00:00:56.640 +um so you shouldn't be static and you + +00:56.640 --> 00:00:59.280 +shouldn't never restart for + +00:59.280 --> 00:01:01.359 +any reason like in engineering max you + +01:01.359 --> 00:01:03.280 +can't predefine every function or every + +01:03.280 --> 00:01:05.680 +functionality the way you want + +01:05.680 --> 00:01:09.360 +and extensibility should not be limited + +01:09.360 --> 00:01:11.040 +with this i mean that if you add a new + +01:11.040 --> 00:01:12.560 +package shouldn't be a difference you + +01:12.560 --> 00:01:14.960 +shouldn't have an api + +01:14.960 --> 00:01:18.560 +to extend the software and the entire uh + +01:18.560 --> 00:01:20.640 +software itself should be the external + +01:20.640 --> 00:01:22.640 +api code + +01:22.640 --> 00:01:25.360 +i'll argue that's also + +01:25.360 --> 00:01:26.640 +um + +01:26.640 --> 00:01:28.320 +should be list base + +01:28.320 --> 00:01:29.759 +but + +01:29.759 --> 00:01:32.880 +um it's controversial so + +01:32.880 --> 00:01:34.720 +yes they're going to get this definition + +01:34.720 --> 00:01:37.280 +and then extend upon it so + +01:37.280 --> 00:01:38.880 +bear with me + +01:38.880 --> 00:01:41.920 +so right now uh genuine max is the best + +01:41.920 --> 00:01:44.079 +emacs that we have that's not the only + +01:44.079 --> 00:01:46.320 +one uh + +01:46.320 --> 00:01:48.479 +not even the first one imax but it's the + +01:48.479 --> 00:01:49.680 +best one that we have the one that we're + +01:49.680 --> 00:01:51.759 +using the one that we that i'm using + +01:51.759 --> 00:01:54.079 +right now and the one that we're here + +01:54.079 --> 00:01:55.280 +for + +01:55.280 --> 00:01:57.759 +but as we all know it's not perfect i'm + +01:57.759 --> 00:01:59.759 +going to highlight some + +01:59.759 --> 00:02:02.479 +um imperfection that all that we should + +02:02.479 --> 00:02:05.119 +know i guess that you must have + +02:05.119 --> 00:02:07.360 +so the first one is that uh i would + +02:07.360 --> 00:02:09.440 +argue that inmate lisp is a good lisp + +02:09.440 --> 00:02:11.280 +but it's not a general purpose + +02:11.280 --> 00:02:13.280 +programming language + +02:13.280 --> 00:02:15.040 +you can do pretty crazy things with + +02:15.040 --> 00:02:16.959 +emacs but i will argue that you can do + +02:16.959 --> 00:02:18.400 +also do that with + +02:18.400 --> 00:02:20.640 +brain [ __ ] i'm not comparing them i know + +02:20.640 --> 00:02:22.239 +with my list so much better than brain + +02:22.239 --> 00:02:24.720 +[ __ ] but that's not an argument in + +02:24.720 --> 00:02:26.480 +mclisp it's + +02:26.480 --> 00:02:29.599 +a language for an editor + +02:29.599 --> 00:02:32.080 +not for writing + +02:32.080 --> 00:02:34.720 +game engine for example + +02:34.720 --> 00:02:37.040 +um it's not the fastest lisp we all know + +02:37.040 --> 00:02:40.239 +this is um + +02:40.239 --> 00:02:42.319 +not in the middle i will say was really + +02:42.319 --> 00:02:44.720 +slow now it's getting better maybe with + +02:44.720 --> 00:02:46.480 +the c integration + +02:46.480 --> 00:02:49.200 +um thanks to andrea it can be even + +02:49.200 --> 00:02:51.680 +better but we'll see and has limited + +02:51.680 --> 00:02:55.360 +concurrency this will still be the case + +02:55.360 --> 00:02:58.159 +it has shared threats first i know + +02:58.159 --> 00:03:00.000 +it's not perfect and it's also not that + +03:00.000 --> 00:03:01.040 +fast + +03:01.040 --> 00:03:03.360 +and even though this for some people is + +03:03.360 --> 00:03:04.480 +not an issue + +03:04.480 --> 00:03:06.080 +i'll argue that for me it's an issue + +03:06.080 --> 00:03:07.920 +which is the canoe emac score is written + +03:07.920 --> 00:03:09.840 +in the c + +03:09.840 --> 00:03:13.519 +um i'm not a big fan of c i mean i have + +03:13.519 --> 00:03:15.519 +wrote things about c in the past and + +03:15.519 --> 00:03:16.840 +it's + +03:16.840 --> 00:03:20.560 +okay as a language but um i prefer i'll + +03:20.560 --> 00:03:22.800 +be in lisp so i can hack on it easily + +03:22.800 --> 00:03:24.720 +and really find it while it's running + +03:24.720 --> 00:03:27.440 +all in just one language so you don't + +03:27.440 --> 00:03:29.920 +have to learn two languages to get into + +03:29.920 --> 00:03:30.959 +it + +03:30.959 --> 00:03:33.120 +um even though it's just ten percent of + +03:33.120 --> 00:03:35.599 +emacs right but still there needs to be + +03:35.599 --> 00:03:38.799 +maintained and yeah + +03:38.799 --> 00:03:41.120 +i don't like that uh kind of uh a max + +03:41.120 --> 00:03:43.040 +aspect but just + +03:43.040 --> 00:03:45.360 +this was just my opinion okay so while + +03:45.360 --> 00:03:46.720 +you're like you know mac's pretty good + +03:46.720 --> 00:03:48.400 +you should use it + +03:48.400 --> 00:03:50.319 +you probably use it if you're here and + +03:50.319 --> 00:03:53.280 +use it every day it's great + +03:53.280 --> 00:03:54.239 +so + +03:54.239 --> 00:03:56.560 +some people in the past + +03:56.560 --> 00:03:58.080 +wanted to write + +03:58.080 --> 00:04:00.480 +an e-max of course and not the emacs + +04:00.480 --> 00:04:02.400 +and they think about different things + +04:02.400 --> 00:04:04.799 +and they attempt to write similar emacs + +04:04.799 --> 00:04:07.680 +like things i'm going to um + +04:07.680 --> 00:04:09.519 +i know there's a lot of more way more + +04:09.519 --> 00:04:12.879 +emacs than the one i'm going to say now + +04:12.879 --> 00:04:16.000 +but i just going to + +04:16.000 --> 00:04:18.639 +focus on the emacs that uh meets the + +04:18.639 --> 00:04:20.639 +criteria are not like + +04:20.639 --> 00:04:23.280 +uh the linux turbo's emacs right which + +04:23.280 --> 00:04:24.479 +is just a c + +04:24.479 --> 00:04:28.400 +simple e max to write c for me that may + +04:28.400 --> 00:04:30.160 +be uh + +04:30.160 --> 00:04:32.400 +an e max for the people but not for me i + +04:32.400 --> 00:04:34.639 +wouldn't argue that that's not + +04:34.639 --> 00:04:36.720 +really an emacs just an editor with + +04:36.720 --> 00:04:38.560 +commands similar to imax + +04:38.560 --> 00:04:40.160 +but + +04:40.160 --> 00:04:43.120 +i digress okay so the language i will + +04:43.120 --> 00:04:45.120 +argue that common lisp may be the best + +04:45.120 --> 00:04:46.320 +language + +04:46.320 --> 00:04:47.759 +period + +04:47.759 --> 00:04:49.600 +sorry about that the best language for + +04:49.600 --> 00:04:51.520 +writing emacs also + +04:51.520 --> 00:04:53.759 +um it's a timeless standard reaching in + +04:53.759 --> 00:04:57.520 +the 1990s is fast and reliable + +04:57.520 --> 00:05:00.160 +it's a great lisp i will argue that the + +05:00.160 --> 00:05:01.840 +best lisp but i don't want to get any + +05:01.840 --> 00:05:03.280 +trouble so i would just say it's great + +05:03.280 --> 00:05:04.400 +lisp + +05:04.400 --> 00:05:06.880 +um has good library support doesn't have + +05:06.880 --> 00:05:08.720 +like a huge library like i would say + +05:08.720 --> 00:05:12.160 +python or c but pretty + +05:12.160 --> 00:05:14.800 +robust and good library + +05:14.800 --> 00:05:18.000 +similar to mclisp which may seem as a + +05:18.000 --> 00:05:21.120 +historical accident which maybe it is + +05:21.120 --> 00:05:23.919 +but also in this case has some + +05:23.919 --> 00:05:26.160 +interesting properties that will + +05:26.160 --> 00:05:29.280 +be discussed + +05:29.280 --> 00:05:30.960 +later + +05:30.960 --> 00:05:32.400 +okay so + +05:32.400 --> 00:05:33.600 +um + +05:33.600 --> 00:05:35.280 +taking common lisps a language to write + +05:35.280 --> 00:05:36.479 +an imax i'm going to get some + +05:36.479 --> 00:05:37.759 +technologies in documentation that we + +05:37.759 --> 00:05:40.720 +can use to write an e-max in common lisp + +05:40.720 --> 00:05:43.440 +so the first one is mcclaim which is an + +05:43.440 --> 00:05:45.039 +implementation of a + +05:45.039 --> 00:05:47.120 +common lisp interface standard + +05:47.120 --> 00:05:50.320 +this is great i mean i loved how + +05:50.320 --> 00:05:52.720 +this is written how it is defined i like + +05:52.720 --> 00:05:54.479 +standard things + +05:54.479 --> 00:05:57.440 +um mclean it's a marvelous tool i will + +05:57.440 --> 00:05:59.759 +argue that it's the best + +05:59.759 --> 00:06:01.280 +um toolkit + +06:01.280 --> 00:06:03.039 +i wouldn't say there's a toolkit because + +06:03.039 --> 00:06:05.360 +it's way more extense than it but it's + +06:05.360 --> 00:06:07.919 +great i would highly recommend if you + +06:07.919 --> 00:06:10.639 +want to write a gui application in + +06:10.639 --> 00:06:14.400 +common lisp well mcclain is great + +06:14.400 --> 00:06:18.400 +also some people thought about + +06:18.400 --> 00:06:20.160 +libraries for writing emac style + +06:20.160 --> 00:06:22.720 +application so to create an emacs some + +06:22.720 --> 00:06:24.720 +people already thought about this and + +06:24.720 --> 00:06:26.479 +wrote a paper + +06:26.479 --> 00:06:27.440 +um + +06:27.440 --> 00:06:29.840 +one of them was robert strand + +06:29.840 --> 00:06:32.319 +which is the guy more interested in in + +06:32.319 --> 00:06:34.880 +imax like things + +06:34.880 --> 00:06:36.479 +and this paper is great you can get a + +06:36.479 --> 00:06:37.759 +lot of information how you can write + +06:37.759 --> 00:06:39.360 +your application get + +06:39.360 --> 00:06:41.039 +similar functionality and all the things + +06:41.039 --> 00:06:43.600 +that i said before + +06:43.600 --> 00:06:45.840 +and also the same + +06:45.840 --> 00:06:47.039 +of the + +06:47.039 --> 00:06:49.199 +robert strand or the guys that wrote + +06:49.199 --> 00:06:52.240 +that paper also wrote clefo which is + +06:52.240 --> 00:06:54.479 +a library for text editor buffer but + +06:54.479 --> 00:06:57.599 +more important it's also a definition + +06:57.599 --> 00:06:59.599 +so this video + +06:59.599 --> 00:07:02.639 +out there will where he explains + +07:02.639 --> 00:07:03.599 +um + +07:03.599 --> 00:07:05.919 +what clapper is so he wrote an + +07:05.919 --> 00:07:08.479 +implementation of clover but it's more + +07:08.479 --> 00:07:12.000 +of like a + +07:12.000 --> 00:07:12.880 +um + +07:12.880 --> 00:07:14.400 +yeah + +07:14.400 --> 00:07:17.599 +like a standard like a way to write + +07:17.599 --> 00:07:20.639 +uh how buffers or work in emacs + +07:20.639 --> 00:07:23.280 +and i think it's better + +07:23.280 --> 00:07:25.599 +in some ways that what imac genuine mac + +07:25.599 --> 00:07:26.960 +does right now + +07:26.960 --> 00:07:29.039 +um in other ways it's really interesting + +07:29.039 --> 00:07:31.759 +and i just have had a lot of fun + +07:31.759 --> 00:07:33.360 +implementing it so + +07:33.360 --> 00:07:35.919 +i'm using it more or less + +07:35.919 --> 00:07:38.080 +uh so yeah that's some great + +07:38.080 --> 00:07:40.479 +documentation great foundation so you + +07:40.479 --> 00:07:42.080 +don't have to + +07:42.080 --> 00:07:43.599 +i mean it's + +07:43.599 --> 00:07:44.879 +really + +07:44.879 --> 00:07:46.319 +interesting to write everything by + +07:46.319 --> 00:07:48.080 +yourself because you are + +07:48.080 --> 00:07:49.120 +a great + +07:49.120 --> 00:07:51.440 +programmer and you you want to have + +07:51.440 --> 00:07:52.879 +control of everything i understand + +07:52.879 --> 00:07:54.800 +everything from the ground up but we + +07:54.800 --> 00:07:56.720 +have to understand that + +07:56.720 --> 00:07:58.879 +an imax it's a really complex + +07:58.879 --> 00:08:00.639 +application + +08:00.639 --> 00:08:01.759 +and + +08:01.759 --> 00:08:03.120 +i will say that if you have some + +08:03.120 --> 00:08:05.520 +foundation it will be easier and you + +08:05.520 --> 00:08:08.479 +don't have to rewrite the wheel 20 times + +08:08.479 --> 00:08:10.080 +right + +08:10.080 --> 00:08:12.720 +okay so attempts uh the same guy robert + +08:12.720 --> 00:08:13.680 +strand + +08:13.680 --> 00:08:16.879 +have two climax which is emacs and emacs + +08:16.879 --> 00:08:19.360 +like thing written in common lisp + +08:19.360 --> 00:08:21.599 +um the first ones the third one is + +08:21.599 --> 00:08:23.360 +abandon and the second one is a work in + +08:23.360 --> 00:08:24.840 +progress + +08:24.840 --> 00:08:27.039 +um it's really interesting the second + +08:27.039 --> 00:08:29.440 +one uses in fact the clefor buffer + +08:29.440 --> 00:08:32.159 +implementation one question + +08:32.159 --> 00:08:36.880 +and the first one is just a mcclaim um + +08:36.880 --> 00:08:39.200 +front end remax so it's really tight the + +08:39.200 --> 00:08:40.800 +so the the + +08:40.800 --> 00:08:42.959 +interface retired with the api so it's + +08:42.959 --> 00:08:44.880 +basically i'm sickly + +08:44.880 --> 00:08:48.320 +um software that's similar to an emacs + +08:48.320 --> 00:08:49.360 +right + +08:49.360 --> 00:08:51.760 +and the third one it's a lem project + +08:51.760 --> 00:08:54.240 +which is a common lisp editor that aims + +08:54.240 --> 00:08:56.320 +to be really close to remax and it + +08:56.320 --> 00:08:59.519 +probably fits the criteria but + +08:59.519 --> 00:09:01.600 +and uses the encourages for the + +09:01.600 --> 00:09:03.279 +interface for as i know and it's really + +09:03.279 --> 00:09:05.200 +commonly focused so it even has some + +09:05.200 --> 00:09:08.560 +major modes for other languages but + +09:08.560 --> 00:09:09.839 +i mean it's + +09:09.839 --> 00:09:11.279 +um + +09:11.279 --> 00:09:13.440 +it's mainly for common lisp written by + +09:13.440 --> 00:09:15.680 +common lisp and for common list + +09:15.680 --> 00:09:18.080 +developers + +09:18.080 --> 00:09:21.839 +um so i decided to write my own emacs + +09:21.839 --> 00:09:23.839 +but i don't want to write everything + +09:23.839 --> 00:09:25.680 +from scratch + +09:25.680 --> 00:09:28.720 +because i'm not a creator programmer + +09:28.720 --> 00:09:29.839 +and also because probably there's + +09:29.839 --> 00:09:33.040 +something that some people already tried + +09:33.040 --> 00:09:34.640 +and the first thing i noticed with all + +09:34.640 --> 00:09:36.480 +these attempts + +09:36.480 --> 00:09:38.959 +that they fail in compete with emacs so + +09:38.959 --> 00:09:41.920 +to say they don't have an imax conf + +09:41.920 --> 00:09:43.839 +and they don't support genuine max + +09:43.839 --> 00:09:45.440 +packages + +09:45.440 --> 00:09:46.880 +and that's a big deal because they're + +09:46.880 --> 00:09:49.519 +more of the thousands packages out there + +09:49.519 --> 00:09:51.040 +under great + +09:51.040 --> 00:09:53.120 +and imagine they want to convince + +09:53.120 --> 00:09:54.800 +someone to say hey try this editor + +09:54.800 --> 00:09:57.440 +instead of x thing + +09:57.440 --> 00:09:59.839 +i would say okay can i use git things so + +09:59.839 --> 00:10:02.079 +i have to write a git + +10:02.079 --> 00:10:02.959 +um + +10:02.959 --> 00:10:04.640 +liar + +10:04.640 --> 00:10:07.360 +maggot or mode and i want to play tetris + +10:07.360 --> 00:10:09.440 +the other road so that's + +10:09.440 --> 00:10:10.640 +really + +10:10.640 --> 00:10:12.640 +hard for one person to do + +10:12.640 --> 00:10:14.079 +so someone + +10:14.079 --> 00:10:16.240 +thought similar so they say okay i'm + +10:16.240 --> 00:10:18.079 +going to rewrite the maxi aph common + +10:18.079 --> 00:10:19.200 +lisp + +10:19.200 --> 00:10:21.440 +it was this is what back in 2005 by sol + +10:21.440 --> 00:10:22.399 +bets + +10:22.399 --> 00:10:24.000 +sabits + +10:24.000 --> 00:10:26.000 +but it was banjo in 2007. the project + +10:26.000 --> 00:10:27.600 +was called lice + +10:27.600 --> 00:10:28.640 +and + +10:28.640 --> 00:10:31.600 +it was a really interesting approach + +10:31.600 --> 00:10:34.880 +um it wasn't finished and it was lost in + +10:34.880 --> 00:10:35.920 +time + +10:35.920 --> 00:10:37.440 +so my idea was to continue with the + +10:37.440 --> 00:10:38.880 +project so the foundation was really + +10:38.880 --> 00:10:40.320 +interesting even though i didn't like + +10:40.320 --> 00:10:42.160 +some other + +10:42.160 --> 00:10:43.760 +designing choices + +10:43.760 --> 00:10:45.360 +um but i want to continue with projects + +10:45.360 --> 00:10:47.519 +finished you cannot see emacs api add a + +10:47.519 --> 00:10:49.839 +compatibility layer to use canoe max + +10:49.839 --> 00:10:52.000 +packages that's the selling point right + +10:52.000 --> 00:10:53.760 +so you don't have to + +10:53.760 --> 00:10:56.000 +use new things + +10:56.000 --> 00:10:57.839 +i like my emacs i just want to have my + +10:57.839 --> 00:11:00.560 +emacs with commodities that's it and + +11:00.560 --> 00:11:02.959 +also better probably a better buffer + +11:02.959 --> 00:11:05.519 +implementation so the idea now that uh + +11:05.519 --> 00:11:07.839 +having an imaginativity layer + +11:07.839 --> 00:11:10.320 +is there improving e-max upon it right + +11:10.320 --> 00:11:13.040 +you can use the e-max api or the new one + +11:13.040 --> 00:11:14.880 +depending on your needs + +11:14.880 --> 00:11:15.760 +you can also have that that + +11:15.760 --> 00:11:19.120 +compatibility of both + +11:19.120 --> 00:11:21.920 +so um i come up with cedar + +11:21.920 --> 00:11:25.839 +um cedar is my attempt is a nice + +11:25.839 --> 00:11:27.120 +fork + +11:27.120 --> 00:11:30.079 +i will say the hug for hard fork because + +11:30.079 --> 00:11:32.399 +i change um + +11:32.399 --> 00:11:35.200 +a lot of things and add a lot of things + +11:35.200 --> 00:11:37.519 +but it's similar still similar + +11:37.519 --> 00:11:38.320 +um + +11:38.320 --> 00:11:39.680 +and for this demo i'm going to use the + +11:39.680 --> 00:11:41.839 +cidar and courses branch we want to test + +11:41.839 --> 00:11:44.880 +it out because the other ones are a work + +11:44.880 --> 00:11:46.560 +in progress so one + +11:46.560 --> 00:11:48.079 +it's the mclean + +11:48.079 --> 00:11:49.519 +club for implementation which is not + +11:49.519 --> 00:11:51.360 +finished and doesn't run + +11:51.360 --> 00:11:54.560 +and the other one is with the visual + +11:54.560 --> 00:11:54.959 +that's to explain here but basically + +11:54.959 --> 00:11:57.200 +and debugger + +11:57.200 --> 00:11:59.600 +it's an interesting debugger similar to + +11:59.600 --> 00:12:01.839 +slime + +12:01.839 --> 00:12:04.560 +which is the superior lisp + +12:04.560 --> 00:12:07.279 +for re max let's begin with max so it's + +12:07.279 --> 00:12:12.079 +increases base also like um + +12:12.079 --> 00:12:13.760 +like limb + +12:13.760 --> 00:12:16.959 +but um way more easy simple + +12:16.959 --> 00:12:19.279 +um i + +12:19.279 --> 00:12:22.880 +write well i translate more or less this + +12:22.880 --> 00:12:24.560 +list mode functionality + +12:24.560 --> 00:12:26.079 +and it has similar + +12:26.079 --> 00:12:28.079 +genuine max api + +12:28.079 --> 00:12:29.600 +we'll see that in the demo + +12:29.600 --> 00:12:31.600 +um it's usable but i work in progress + +12:31.600 --> 00:12:33.279 +instead of functionality right now i'm + +12:33.279 --> 00:12:35.279 +not focusing on stability yet i'm + +12:35.279 --> 00:12:38.240 +focusing finish the mclean front end + +12:38.240 --> 00:12:41.120 +which i'm not even halfway there + +12:41.120 --> 00:12:42.720 +but i hope to finish it + +12:42.720 --> 00:12:45.519 +maybe next year who knows + +12:45.519 --> 00:12:46.959 +finish the compatibility layer from the + +12:46.959 --> 00:12:48.399 +new max packages i seen this i think + +12:48.399 --> 00:12:50.959 +this is doable i know how to do it i + +12:50.959 --> 00:12:52.639 +just need time + +12:52.639 --> 00:12:53.600 +maybe + +12:53.600 --> 00:12:55.760 +a little bit of caffeine + +12:55.760 --> 00:12:57.040 +coffee + +12:57.040 --> 00:12:59.279 +so uh let's go with the demo right + +12:59.279 --> 00:13:02.079 +so uh let's open terminal what's this + +13:02.079 --> 00:13:04.800 +anchor base let's go to quick lisp + +13:04.800 --> 00:13:06.800 +log there + +13:06.800 --> 00:13:11.279 +um and let's run it + +13:11.279 --> 00:13:13.760 +okay so now that we're here um it give + +13:13.760 --> 00:13:16.000 +us the welcome thing this is the main + +13:16.000 --> 00:13:17.519 +buffer it's like we'll say the emacs + +13:17.519 --> 00:13:19.200 +buffer when you enter + +13:19.200 --> 00:13:21.040 +um so we know that it's firming this is + +13:21.040 --> 00:13:22.800 +not hardcoded + +13:22.800 --> 00:13:25.040 +okay and now we see it's a major mode in + +13:25.040 --> 00:13:27.200 +the bottom right lisp + +13:27.200 --> 00:13:29.360 +it's lisp interaction and + +13:29.360 --> 00:13:32.880 +this is the name of the buffer right + +13:32.880 --> 00:13:35.600 +um okay so we have a couple of buffers + +13:35.600 --> 00:13:38.240 +we have scratch which is the fundamental + +13:38.240 --> 00:13:40.720 +mode and messages all right + +13:40.720 --> 00:13:42.399 +okay so + +13:42.399 --> 00:13:44.639 +let's get some interesting things first + +13:44.639 --> 00:13:46.399 +uh let's open a file + +13:46.399 --> 00:13:48.959 +so i think it's in + +13:48.959 --> 00:13:51.199 +programming + +13:51.199 --> 00:13:53.440 +a max + +13:53.440 --> 00:13:56.480 +conf 2021 and let's go to c there + +13:56.480 --> 00:13:58.079 +let's go to demo + +13:58.079 --> 00:14:00.000 +so let's open a file so + +14:00.000 --> 00:14:01.440 +um + +14:01.440 --> 00:14:03.040 +phone lock is not yet + +14:03.040 --> 00:14:04.399 +um + +14:04.399 --> 00:14:06.240 +well it's implemented so it's there but + +14:06.240 --> 00:14:07.920 +it's not active by default + +14:07.920 --> 00:14:09.680 +so let's open + +14:09.680 --> 00:14:11.360 +uh mx + +14:11.360 --> 00:14:13.600 +and let's go lisp + +14:13.600 --> 00:14:16.079 +interaction mode + +14:16.079 --> 00:14:17.279 +right + +14:17.279 --> 00:14:19.199 +so this when you show me here is the + +14:19.199 --> 00:14:21.680 +implementation of the kill sex sex + +14:21.680 --> 00:14:24.240 +express s expression command + +14:24.240 --> 00:14:28.880 +which is exactly the same point by point + +14:28.880 --> 00:14:31.279 +from the emacs one you can go right now + +14:31.279 --> 00:14:32.959 +umax and ask + +14:32.959 --> 00:14:35.279 +how is skills s expression defined this + +14:35.279 --> 00:14:36.480 +is the same + +14:36.480 --> 00:14:38.560 +and this is how you define a key so we + +14:38.560 --> 00:14:41.920 +have we can say uh describe + +14:41.920 --> 00:14:43.839 +symbol + +14:43.839 --> 00:14:46.399 +the package will be + +14:46.399 --> 00:14:48.399 +cedar and the symbol is + +14:48.399 --> 00:14:50.480 +global map + +14:50.480 --> 00:14:51.610 +global map + +14:51.610 --> 00:14:53.279 +[Applause] + +14:53.279 --> 00:14:54.240 +so + +14:54.240 --> 00:14:56.160 +it's a top level global keymap + +14:56.160 --> 00:14:58.480 +thank you for the information + +14:58.480 --> 00:15:02.160 +um but you can also say okay uh can i + +15:02.160 --> 00:15:05.120 +say okay + +15:05.120 --> 00:15:08.000 +global map + +15:08.000 --> 00:15:10.079 +okay i'll be giving this a key map so + +15:10.079 --> 00:15:11.600 +even though i want to aim to have the + +15:11.600 --> 00:15:12.480 +same + +15:12.480 --> 00:15:15.920 +um api the + +15:15.920 --> 00:15:17.760 +um sorry + +15:17.760 --> 00:15:20.079 +uh the back thing so the back end is + +15:20.079 --> 00:15:22.480 +going to be class oriented and not same + +15:22.480 --> 00:15:24.720 +any max but the return expression should + +15:24.720 --> 00:15:27.680 +be really similar so if we say current + +15:27.680 --> 00:15:29.759 +buffer + +15:29.759 --> 00:15:31.759 +it will give us the buffer it's not the + +15:31.759 --> 00:15:33.759 +same in emacs but it's a buffer object + +15:33.759 --> 00:15:35.519 +and we can also ask + +15:35.519 --> 00:15:37.519 +about let me try to remember + +15:37.519 --> 00:15:39.440 +oh there we are + +15:39.440 --> 00:15:40.639 +um + +15:40.639 --> 00:15:41.839 +but for + +15:41.839 --> 00:15:45.680 +name we can close this and open one here + +15:45.680 --> 00:15:48.079 +and we can say okay so we have this + +15:48.079 --> 00:15:48.959 +thing + +15:48.959 --> 00:15:50.959 +that will give us the name so uh this is + +15:50.959 --> 00:15:52.800 +similar to the emacs api + +15:52.800 --> 00:15:54.399 +as we saw we + +15:54.399 --> 00:15:55.120 +so + +15:55.120 --> 00:15:57.519 +briefly we have a lot a couple of + +15:57.519 --> 00:15:58.639 +commands + +15:58.639 --> 00:16:00.240 +um + +16:00.240 --> 00:16:02.160 +kills expression also have a little bit + +16:02.160 --> 00:16:03.759 +of + +16:03.759 --> 00:16:06.639 +help kill word kill line + +16:06.639 --> 00:16:07.680 +region + +16:07.680 --> 00:16:08.959 +kill buffer + +16:08.959 --> 00:16:11.440 +all things that we expect from emacs + +16:11.440 --> 00:16:12.800 +um + +16:12.800 --> 00:16:14.320 +and yeah this is there's a couple of + +16:14.320 --> 00:16:16.160 +things i may show but i think this is + +16:16.160 --> 00:16:18.320 +good enough i don't have enough time if + +16:18.320 --> 00:16:20.720 +you want more information + +16:20.720 --> 00:16:22.800 +so let's go back to it let's close the + +16:22.800 --> 00:16:25.680 +buffer does it work no it doesn't work + +16:25.680 --> 00:16:28.079 +okay now the head buffer no ah let's go + +16:28.079 --> 00:16:29.920 +to cedar + +16:29.920 --> 00:16:32.320 +okay so if you want more information + +16:32.320 --> 00:16:32.870 +um + +16:32.870 --> 00:16:34.399 +[Applause] + +16:34.399 --> 00:16:36.880 +first of all thank you very much um + +16:36.880 --> 00:16:39.040 +sorry i don't have enough time to show + +16:39.040 --> 00:16:40.320 +too much too many things i will see + +16:40.320 --> 00:16:42.560 +there but um + +16:42.560 --> 00:16:44.639 +yeah uh + +16:44.639 --> 00:16:45.839 +if you want more information you can + +16:45.839 --> 00:16:48.079 +always send me an email this is my + +16:48.079 --> 00:16:50.240 +webpage + +16:50.240 --> 16:53.720 +thank you very much |