[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70398] [PATCH 5/5] packages: Reduce code bloat due to list allocati
From: |
Ludovic Courtès |
Subject: |
[bug#70398] [PATCH 5/5] packages: Reduce code bloat due to list allocation in input fields. |
Date: |
Mon, 15 Apr 2024 22:31:20 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Simon Tournier <zimon.toutoune@gmail.com> skribis:
> On lun., 15 avril 2024 at 17:37, Ludovic Courtès <ludo@gnu.org> wrote:
>
>> + ((_ (list args ...))
>> + ;; As of 3.0.9, (list ...) is open-coded, which can lead to a long list
>> + ;; of instructions. To reduce code bloat in package modules where
>> input
>> + ;; fields may create such lists, move list allocation to the callee.
>> + (add-input-labels args ...))
>
> I am not sure to understand: « (list ...) is open-coded, which can lead
> to a long list of instructions. ».
This:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,c (lambda () (list 1 2 3 4))
[...]
8 (allocate-words/immediate 0 2)
9 (scm-set!/immediate 0 0 2)
10 (scm-set!/immediate 0 1 1)
11 (allocate-words/immediate 2 2)
12 (scm-set!/immediate 2 0 3)
13 (scm-set!/immediate 2 1 0)
14 (allocate-words/immediate 3 2)
15 (scm-set!/immediate 3 0 4)
16 (scm-set!/immediate 3 1 2)
17 (allocate-words/immediate 4 2)
18 (scm-set!/immediate 4 0 5)
19 (scm-set!/immediate 4 1 3)
--8<---------------cut here---------------end--------------->8---
> Well, irrelevant for .go size but why not something like:
>
> ((_ (list args . rest))
> (apply add-inputs-labels (append args rest)))
That’s more code and I’m really trying hard to minimize generated code.
:-)
Ludo’.
- [bug#70398] [PATCH 0/5] Reduce the size of gnu/packages/*.go files, Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 1/5] records: Do not inline throws for ABI mismatches., Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 3/5] records: Do not inline the constructor., Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 4/5] packages: ‘define-public’ replacement calls ‘module-export!’ directly., Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 2/5] packages: Reduce bloat induced by ‘sanitize-inputs’., Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 5/5] packages: Reduce code bloat due to list allocation in input fields., Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 0/5] Reduce the size of gnu/packages/*.go files, Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 0/5] Reduce the size of gnu/packages/*.go files, Ludovic Courtès, 2024/04/15
- [bug#70398] [PATCH 0/5] Reduce the size of gnu/packages/*.go files, Simon Tournier, 2024/04/15