From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings] Date: Fri, 05 Sep 2014 13:28:43 +0400 Message-ID: <5409824B.1000408@yandex.ru> 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 1409909361 382 80.91.229.3 (5 Sep 2014 09:29:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 5 Sep 2014 09:29:21 +0000 (UTC) Cc: Paul Eggert , Emacs development discussions To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Sep 05 11:29:15 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 1XPppS-0003b1-4z for ged-emacs-devel@m.gmane.org; Fri, 05 Sep 2014 11:29:14 +0200 Original-Received: from localhost ([::1]:56615 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPppR-0001Ub-JN for ged-emacs-devel@m.gmane.org; Fri, 05 Sep 2014 05:29:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPpp8-0001Tj-BE for emacs-devel@gnu.org; Fri, 05 Sep 2014 05:29:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XPpp1-0005Wd-9D for emacs-devel@gnu.org; Fri, 05 Sep 2014 05:28:54 -0400 Original-Received: from forward3l.mail.yandex.net ([84.201.143.136]:60767) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XPpp0-0005WU-Vi for emacs-devel@gnu.org; Fri, 05 Sep 2014 05:28:47 -0400 Original-Received: from smtp16.mail.yandex.net (smtp16.mail.yandex.net [95.108.252.16]) by forward3l.mail.yandex.net (Yandex) with ESMTP id 84C94150147B; Fri, 5 Sep 2014 13:28:45 +0400 (MSK) Original-Received: from smtp16.mail.yandex.net (localhost [127.0.0.1]) by smtp16.mail.yandex.net (Yandex) with ESMTP id B17C36A02F9; Fri, 5 Sep 2014 13:28:44 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp16.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id wBckB5AGYj-Sh20tMap; Fri, 5 Sep 2014 13:28:44 +0400 (using TLSv1.2 with cipher AES128-SHA (128/128 bits)) (Client certificate not present) X-Yandex-Uniq: 56addd10-c3a1-4421-8062-35d2ce71d989 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1409909324; bh=MA9zVpXhEG2/H1rG+fvNC6VwyQ+53aJT4MCKZNIiKjY=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=S66py+6AdKhAOkXnQie6AXFS54D8l7f2tVKAooHDiUF7BTpfabfm5eeBYihmATR9Q 3KU5KXMWvwyr22JgBsP4KdK9DkvhdJTMwLRRFvry78bF5ivW3pgoZPj/6i/C+DgKMc INxniNy+ueH9ULxpi/6WOXNmFA0bb1bZ+owQU4I8= Authentication-Results: smtp16.mail.yandex.net; dkim=pass header.i=@yandex.ru User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 84.201.143.136 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:174033 Archived-At: On 09/05/2014 08:24 AM, Stefan Monnier wrote: > Your benchmark for `cons' showed that there's some potential benefit, > but then we have to figure out which Fcons calls can be replaced by > alloca ones, and then assess whether the result is worth the effort > (and the risk, since such alloca-allocated thingies need to be handled > with care, making sure they can't escape to Elisp, and also using the > stack more intensively increases the risk of crashing into the > stack depth limit). Surely this is a bit risky and requires careful looking how this object is used. On the other side, it's not too hard to debug; use of local object outside of its scope causes the very likely eassert/crash at next GC, and the fault address is very different from what we see with heap objects. Dmitry