From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.lisp.guile.user Subject: Re: guile can't find a chinese named file Date: Thu, 16 Feb 2017 18:06:42 +0200 Message-ID: <83wpcqxgq5.fsf@gnu.org> References: <878tpsqtzl.fsf@fencepost.gnu.org> <87zii8bcdw.fsf@elektro.pacujo.net> <87y3xspcux.fsf@fencepost.gnu.org> <578885360.4452806.1487105647708@mail.yahoo.com> <87r330cwhj.fsf@elektro.pacujo.net> <191859705.4469709.1487109121157@mail.yahoo.com> <20170214221914.1483ddb1@bother.homenet> <20170215091832.GA28017@tuxteam.de> <83inobz8yl.fsf@gnu.org> <20170215202056.GB3723@tuxteam.de> <83d1ejyz2e.fsf@gnu.org> <87y3x7kvwr.fsf@elektro.pacujo.net> <837f4qzo31.fsf@gnu.org> <87h93u4q5e.fsf@elektro.pacujo.net> <831suyzm11.fsf@gnu.org> <83zihmy6wb.fsf@gnu.org> <87wpcq38sa.fsf@elektro.pacujo.net> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1487262859 17478 195.159.176.226 (16 Feb 2017 16:34:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 16 Feb 2017 16:34:19 +0000 (UTC) Cc: guile-user@gnu.org To: Marko Rauhamaa Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Feb 16 17:34:15 2017 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceP0Y-0004E5-FL for guile-user@m.gmane.org; Thu, 16 Feb 2017 17:34:14 +0100 Original-Received: from localhost ([::1]:47712 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceP0d-0005kN-VQ for guile-user@m.gmane.org; Thu, 16 Feb 2017 11:34:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47206) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceOZa-0001xi-Lu for guile-user@gnu.org; Thu, 16 Feb 2017 11:06:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceOZW-0003ei-Jr for guile-user@gnu.org; Thu, 16 Feb 2017 11:06:22 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceOZW-0003ee-Gv; Thu, 16 Feb 2017 11:06:18 -0500 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2328 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ceOZV-0005FV-TG; Thu, 16 Feb 2017 11:06:18 -0500 In-reply-to: <87wpcq38sa.fsf@elektro.pacujo.net> (message from Marko Rauhamaa on Thu, 16 Feb 2017 09:16:21 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13260 Archived-At: > From: Marko Rauhamaa > Cc: guile-user@gnu.org > Date: Thu, 16 Feb 2017 09:16:21 +0200 > > If I understood it correctly, someone just told us emacs maps illegal > UTF-8 to another form of illegal UTF-8 and back. That's better in that > it's bytes to bytes (leaving Unicode out), but it's not immediately > obvious to me why you have to transform the byte sequence at all. Because it allows to solve all the problems you raise in the rest of this thread. > Look at the problem of concatenation. We could have a case where two > illegal UTF-8 (or UTF-16) snippets are concatenated to get valid UTF-8 > (or UTF-16). That operation fails if you try to translate the snippets > to strings before concatenation. Such concatenation operations are > commonplace when dealing with filenames (eg, split(1)). You assume that Emacs concatenates strings by just splicing its bytes. But that's a far cry from what Emacs does, precisely to countermand such problems. I think David described enough of what's happening to explain why Emacs is not susceptible to such failures. These tricks, which all happen seamlessly and transparently, are exactly why it took Emacs so long to get where it is today. It takes many moons to see the problems, analyze them, devise solutions that don't break, and implement both the 90%-successful heuristics and the opt-in solutions for the other 10%. The important point for Guile is that the solution is there, in Free Software, documented well enough, and people who understand the implementation and can explain its subtleties are still here, ready to help. All it takes is for Guile to decide it wants to implement something similar.