From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Sun, 18 Oct 2015 15:17:26 +0200 Message-ID: <876124nwnt.fsf@fencepost.gnu.org> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <87oag4jk74.fsf@wanadoo.es> <87k2qrki45.fsf@wanadoo.es> <8737xf9je9.fsf@fencepost.gnu.org> <87pp0fm0j3.fsf@gnu.org> <87r3kusx8z.fsf@fencepost.gnu.org> <83lhb26eb9.fsf@gnu.org> <876126key3.fsf@gnu.org> <83fv1a6bfu.fsf@gnu.org> <87d1weo7u9.fsf@gnu.org> <83zizi3qr0.fsf@gnu.org> <87lhb1n81y.fsf@gnu.org> <83si594wt3.fsf@gnu.org> <87io64iigs.fsf@gnu.org> <87r3kso1gr.fsf@fencepost.gnu.org> <87wpuks5ek.fsf@T420.taylan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1445174301 28714 80.91.229.3 (18 Oct 2015 13:18:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 18 Oct 2015 13:18:21 +0000 (UTC) Cc: Ludovic =?iso-8859-1?Q?Court=E8s?= , Eli Zaretskii , emacs-devel@gnu.org To: taylanbayirli@gmail.com (Taylan Ulrich =?utf-8?Q?=22Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer=22?=) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 18 15:18:20 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Znnqs-0004bW-JO for ged-emacs-devel@m.gmane.org; Sun, 18 Oct 2015 15:18:18 +0200 Original-Received: from localhost ([::1]:33960 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Znnqr-0002bS-PP for ged-emacs-devel@m.gmane.org; Sun, 18 Oct 2015 09:18:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnnqU-0002XY-Tq for emacs-devel@gnu.org; Sun, 18 Oct 2015 09:17:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZnnqT-0002C1-9k for emacs-devel@gnu.org; Sun, 18 Oct 2015 09:17:54 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46836) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnnqO-00029b-FQ; Sun, 18 Oct 2015 09:17:48 -0400 Original-Received: from localhost ([127.0.0.1]:60654 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1ZnnqN-0004AH-An; Sun, 18 Oct 2015 09:17:47 -0400 Original-Received: by lola (Postfix, from userid 1000) id CEB71E0DB0; Sun, 18 Oct 2015 15:17:26 +0200 (CEST) In-Reply-To: <87wpuks5ek.fsf@T420.taylan> ("Taylan Ulrich =?utf-8?Q?=5C=22Bay=C4=B1rl=C4=B1=2FKammer=5C=22=22's?= message of "Sun, 18 Oct 2015 14:54:59 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191945 Archived-At: taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") writes: > David Kastrup writes: > >> I quote from the GUILE project page: >> >> What is Guile? What can it do for you? >> >> Guile is the GNU Ubiquitous Intelligent Language for Extensions, the >> official extension language for the GNU operating system. >> >> Guile is a library designed to help programmers create flexible >> applications. Using Guile in an application allows the application's >> functionality to be extended by users or other programmers with >> plug-ins, modules, or scripts. Guile provides what might be >> described as "practical software freedom," making it possible for >> users to customize an application to meet their needs without >> digging into the application's internals. >> >> I don't see a qualifier "unless you were planning to write a text >> editor". GUILE even has "Extensions" in its name. As well as >> "Ubiquitous". So how do you reckon that it should not be used for >> extending text editors? And how do you plead at the same time that it >> should be used for extending Emacs? >> >> It's not just for the sake of GuileEmacs that GUILE needs to work on the >> cost of passing even mere UTF-8 into GUILE and back out. GUILE cannot >> even pass its own strings through its own string ports without >> converting back and forth. > > The state of the world of software would be even more horrible than it > is now if every program tried to accommodate for every possible > invalid input with something other than gracefully aborting. (Many > abort ungracefully, sadly.) It is not the job of an extension language to dictate application behavior. > Guile's string library is for working with strings (surprise!), not > arbitrary byte vectors. It is not the job of an extension language to dictate the concept of "character". Of course, not everything can be supported out of the box and there are limits to what can be supported due to technical reasons. However, the stance of the GUILE developers is to stop people using GUILE from doing things they consider not their problem. This stance, possibly partly due to only a single developer working in isolation on the "unstable" branch and everybody else confined to changes in the "stable" branch, is going to end a roadblock for projects like GuileEmacs. > For arbitrary byte vectors, Guile has bytevectors (surprise!!). > > If one implemented a text editor from scratch in Guile and wanted to > allow editing files with no proper encoding, one would use an > abstraction on top of bytevectors. It is not the job of an extension language to dictate what constitutes "proper encoding". It is the job of the application. > I'm pretty sure that nearly every programming language with a sane > string library does more or less the same thing. Even Emacs has unibyte strings. But it does not refuse using string operators on them. GUILE bytevectors don't offer substrings and other basic operations. > This is not a problem of Guile; it's a fundamental problem of the > requirement to allow working with byte vectors that "ideally are but > are not necessarily" strings. Offering a data type encapsulating that > idea that falls between byte vectors and strings is a very special > case and it should not be surprising that a general-purpose > programming language doesn't provide such a data type by default. GUILE is first and foremost an extension language. That is how it advertises itself on its web page. That it supports the general-purpose programming language Scheme is a boon and implementation choice. If GUILE developers insist on GUILE being foremost a general-purpose programming language rather than an extension language, they should notify the GNU project and change their web page. There is no point in GNU promoting GUILE as an extension language if the GUILE developers are no longer on board with that target. > For some fun that can result from functions with ill-defined domains, > see the shell-quasiquote thread. Yay for code injection! It's more like "yay for culture difference". You prefer functions being useful for fewer cases while touting that as an advantage. That is a pretty alien concept to established Emacs developers, Emacs being the proverbial glue and shoe string across dozens of different platforms right from the beginning of GNU where POSIX would have been luxury. --=20 David Kastrup