From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel,gmane.comp.gnu.guix.devel Subject: Re: The size of =?utf-8?B?4oCYLmdv4oCZ?= files Date: Wed, 24 Jun 2020 14:11:14 +0200 Message-ID: <87k0zw3bq5.fsf@pobox.com> References: <875zc5z18d.fsf@gnu.org> <877dwirndv.fsf@igalia.com> <87sgf4gr01.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="5933"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cc: guix-devel , Guile Devel To: Ludovic =?utf-8?Q?Court=C3=A8s?= Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Wed Jun 24 14:11:42 2020 Return-path: Envelope-to: guile-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 1jo4Fh-0001SK-MS for guile-devel@m.gmane-mx.org; Wed, 24 Jun 2020 14:11:41 +0200 Original-Received: from localhost ([::1]:60010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jo4Fg-0004cy-Jz for guile-devel@m.gmane-mx.org; Wed, 24 Jun 2020 08:11:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jo4FW-0004cb-Ss; Wed, 24 Jun 2020 08:11:30 -0400 Original-Received: from fanzine.igalia.com ([178.60.130.6]:49360) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jo4FU-0000m6-FF; Wed, 24 Jun 2020 08:11:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=LBDw3BWEMSQZpZaeZsQJA8B8e5H5erXXaiXTsJCfoBU=; b=puwuuXIyf+3LM7YiBEXwTfXYajzIoaB3vuyPk3lENT9Jv/R94WuuqFveVV2FJAQ8+Dv4eHlmYC0Y/SU2oQhSh9/V9hxJrxuKGAw+HpL/JJZwBfzfkGqWDxcH2R2VkP+wK56BBlt0WUnjT2x4X4vEwdBt0DNIBbjaA8+I4LIpBpvXRxDopoD3x1EaxnKvuICQx9dBJW+ttJMHssEDpXGe7GAj5NVgVZtuNL1ZfnMrVQCCwW4cwcG+Q2bba1qlx1YOULeiFd931JLfcqjs9DXOHKYQ+v1XzivwMNYGmNJMCyrYkrNWGa8Ab/UKy9vfVdSa/jUE247KU1fZoSr1V3lqtQ==; Original-Received: from 82-65-63-215.subs.proxad.net ([82.65.63.215] helo=sparrow) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1jo4FQ-0002FL-Eg; Wed, 24 Jun 2020 14:11:24 +0200 In-Reply-To: <87sgf4gr01.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 09 Jun 2020 18:09:50 +0200") Received-SPF: neutral client-ip=178.60.130.6; envelope-from=wingo@pobox.com; helo=fanzine.igalia.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/24 08:08:07 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20550 gmane.comp.gnu.guix.devel:54698 Archived-At: Hi :) On Tue 09 Jun 2020 18:09, Ludovic Court=C3=A8s writes: > Andy Wingo skribis: > >> The guile.arities section starts with a sorted array of fixed-size >> headers, then is followed by a sequence of ULEB128 references to local >> variable names, including non-arguments. The size is a bit perplexing, >> I agree. I can think of a number of ways to encode that section >> differently but we'd need to understand a bit more about it and why the >> baseline compiler is significantly different. > > =E2=80=98.guile.arities=E2=80=99 size should be proportional to the numbe= r of > procedures, right? Additionally, if there are only/mostly thunks, the > string table for argument names should be small if not empty. For N > thunks, I would expect roughly N 28-byte headers + NxM UL128, say 100 > bytes per thunk; there=E2=80=99s 1000 of them, so we should be ~100,000 b= ytes. > This is roughly what we get observe with the baseline compiler. Yes but that doesn't mean that you can directly compare baseline to CPS -- CPS has many more intermediate names than baseline for non-argument locals, all of which end up getting entries in the arities section. Andy