From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Zach Shaftel Newsgroups: gmane.emacs.devel Subject: Re: Update 1 on Bytecode Offset tracking Date: Thu, 16 Jul 2020 20:24:40 -0400 Message-ID: <875zanounr.fsf@gmail.com> References: <87a700fk3j.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32610"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.4.10; emacs 28.0.50 Cc: Rocky Bernstein , emacs-devel@gnu.org To: Andrea Corallo Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jul 17 02:25:24 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jwEBo-0008Om-GF for ged-emacs-devel@m.gmane-mx.org; Fri, 17 Jul 2020 02:25:24 +0200 Original-Received: from localhost ([::1]:57472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jwEBn-0007Ao-Fj for ged-emacs-devel@m.gmane-mx.org; Thu, 16 Jul 2020 20:25:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39332) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwEBA-0006jj-OT for emacs-devel@gnu.org; Thu, 16 Jul 2020 20:24:44 -0400 Original-Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]:42997) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jwEB9-0005VZ-8H; Thu, 16 Jul 2020 20:24:44 -0400 Original-Received: by mail-qk1-x730.google.com with SMTP id 145so7338272qke.9; Thu, 16 Jul 2020 17:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=vYcQcw8oQ5MuUHS4PH2AYqRIEB3pWpB4ea76cMZmnUo=; b=ge48QlX+EpKDpVWl6i+c2VuR7smVZnxZM8LFx5ONeiOxjUFm2szCJGdMvhl7Z82dHW 4dIKwCAxfpw5ayjlxoWt+Azdd/ZeOz8jDHmYxudcvjDV4+BIO72j9bGgVItXwOvKZEX6 EyzUzVUkPmJUFUUXu9POyKQ4l3r9kUFuzNlU+uGDQDFagCxQ4FCY0Cqf9Bq5+eXUt0ep BAe0aGAxhHBBx+k+O6quUafbHg7Cmdn94HvQtNC/GQEvSdBMo+drNuL4qT5PAmAsQQ7j Si/5XvrN/ylOjX1jLecPRcmV3kkcZBcuOe0CBStB3t9NaTqGtqZkq5sh0tTLzJ78Mjui MBfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=vYcQcw8oQ5MuUHS4PH2AYqRIEB3pWpB4ea76cMZmnUo=; b=awYfKerwireNJSDDp6vWuRriX5CfxVQkEdNS65XozEFjnfUlSAlxbD1JdJqU/btsYQ D5QLm9sAt80rSWvxhgXJrPV0Fr1oja2oCZ9mEdw2HfQPbp7d/Bg9NuQndpJQ99l6YHcC gcLXP9/n2fH9c9HTmoFTUHRzOYjql5iKQ3XFHYDalNr1MM2EmG4IHqZ8EJGPn6jGnqGG /laDP8jcJiauiDKlzckWCLme7INiCJ1RTrTiv7ISvIugWlpxrAqchsmJrd8Fu3N27LaW x4oqC8izhk5bvsjPCTK7e3SBYrJpmWqyr/qFQtr0niVcQn95uNzb7AAQx0IA6AVqSr6p jMHg== X-Gm-Message-State: AOAM532apJkxU4mCmO7YCzZQfLhoC7oWR0VNy+84zoAfK12QRRlt2UCl rfDm6iKTD59ZbEQzdbLRGgP0FMgMUrHjCA== X-Google-Smtp-Source: ABdhPJxYnquKy9oP41SuB5VDwqO56XZZDwbG4kzY2wXLdIvtoPp8W96ZF27LWLTYR8PecFl/N5I+aA== X-Received: by 2002:a37:6c9:: with SMTP id 192mr6723616qkg.107.1594945481696; Thu, 16 Jul 2020 17:24:41 -0700 (PDT) Original-Received: from arch-thinkpad ([2604:2000:2f41:2d00::1]) by smtp.gmail.com with ESMTPSA id u23sm7896030qkk.53.2020.07.16.17.24.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2020 17:24:41 -0700 (PDT) In-reply-to: Received-SPF: pass client-ip=2607:f8b0:4864:20::730; envelope-from=zshaftel@gmail.com; helo=mail-qk1-x730.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:252994 Archived-At: Hi Andrea, Andrea Corallo writes: > Hi Zach and Rocky, > > IMO having the exact offset for all functions in the stack except the > last is already a measurable improvement. Reevaluating the top function > and rerunning is not a huge deal, reevaluating N functions and rerunning > each time trying to figure out what is going wrong and where on the > contrary can be considerably more painful. Absolutely, and since this deficiency arises when errors are signalled from byte ops other than `Bcall`, many backtraces still present accurate offsets top to bottom. > Zach Shaftel writes: > >> With respect to reporting offsets, using code from edebug we have a >> Lisp-Expression reader that will track source-code locations and >> store the information in a source-map-expression cl-struct. The code >> in progress is here. >> >> Information currently saved is: >> >> The expression itself >> The exact string that was read >> Begin and end point=E2=80=8Bs of the sexp in the buffer >> source-map-expression children (for conses and vectors) >> >> which can be generated for a whole lisp file with the function >> source-map-file. We are testing this on lots of files such as the >> lisp files in the GNU Emacs distribution. After this is done we will >> try hooking this into the compilation process. > > Regarding the reader I fear modifying the C one will be the only way if > we want to have something sufficiently high performance to be used as > default. I suspect you're right that processing and saving this information in Lisp won't be fast enough to maintain reasonable compilation time. Perhaps it could be made available as an option, in the form of alternate byte-compile functions for example, but that would be an unfortunate compromise. Down the line, perhaps the native compiler could change that. > That said having one to begin with experimenting is a very > good start. I guess we'll want to have the 'children' as key of an hash > where the rest is the value. That's the plan! > Thanks you and Rocky for the effort! > > Andrea