From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings] Date: Fri, 05 Sep 2014 00:15:23 -0700 Organization: UCLA Computer Science Department Message-ID: <5409630B.6030201@cs.ucla.edu> References: <5405BE5D.1090003@yandex.ru> <5405DE8B.4050201@yandex.ru> <5406EC21.4060200@yandex.ru> <5407281C.3090302@cs.ucla.edu> <54073621.2040403@yandex.ru> <540744F5.2010804@cs.ucla.edu> <5407F1B7.6090704@yandex.ru> <5407F4E6.2040809@cs.ucla.edu> <5407FDF4.7020504@yandex.ru> <54086B1A.8070506@yandex.ru> <54087B5E.10402@yandex.ru> <54088D63.8010406@cs.ucla.edu> <54093561.2010507@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1409901369 31818 80.91.229.3 (5 Sep 2014 07:16:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 5 Sep 2014 07:16:09 +0000 (UTC) Cc: Stefan Monnier , Emacs development discussions To: Dmitry Antipov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Sep 05 09:16:01 2014 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 1XPnkX-0003Ro-7c for ged-emacs-devel@m.gmane.org; Fri, 05 Sep 2014 09:16:01 +0200 Original-Received: from localhost ([::1]:55796 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPnkW-0002E5-Ho for ged-emacs-devel@m.gmane.org; Fri, 05 Sep 2014 03:16:00 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57332) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPnkD-0002D5-0k for emacs-devel@gnu.org; Fri, 05 Sep 2014 03:15:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XPnk5-0001ot-8K for emacs-devel@gnu.org; Fri, 05 Sep 2014 03:15:40 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:50940) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPnk5-0001oi-2B for emacs-devel@gnu.org; Fri, 05 Sep 2014 03:15:33 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 6EADAA6000E; Fri, 5 Sep 2014 00:15:32 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XHxcNUvO-r+r; Fri, 5 Sep 2014 00:15:23 -0700 (PDT) Original-Received: from [192.168.1.9] (pool-71-177-17-123.lsanca.dsl-w.verizon.net [71.177.17.123]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id A3EB3A60003; Fri, 5 Sep 2014 00:15:23 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 In-Reply-To: <54093561.2010507@yandex.ru> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 131.179.128.62 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:174031 Archived-At: Dmitry Antipov wrote: > I'm voting for simpler and cleaner version with > alloca/fallback to regular GC for vectors and strings. I like the idea of simpler and cleaner, but your patch's implementations of build_local_vector and build_local_string use alloca expressions as function arguments, and the GNU API for alloca doesn't support that. You can work around the problem by using statement expressions, falling back on plain Fmake_vector and/or make_string for compilers that don't support statement expressions. To address Stefan's concern about alloca-allocated thingies escaping to Elisp, is there some way you can include a runtime test for that, when checking is enabled? It wouldn't have to catch every escapee, just a high percentage of them.