unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Kévin Le Gouguec" <kevin.legouguec@gmail.com>
To: Andrea Corallo <akrl@sdf.org>
Cc: 41194@debbugs.gnu.org
Subject: bug#41194: 28.0.50; [feature/native-comp] fibn benchmark exhausts memory
Date: Sun, 14 Jun 2020 17:19:29 +0200	[thread overview]
Message-ID: <877dw9k73y.fsf@gmail.com> (raw)
In-Reply-To: <xjfsgezui26.fsf@sdf.org> (Andrea Corallo's message of "Sat, 13 Jun 2020 15:00:33 +0000")

[-- Attachment #1: Type: text/plain, Size: 969 bytes --]

Andrea Corallo <akrl@sdf.org> writes:

> 5a55a845a7 * Implement 'maybe_gc_or_quit' to allow correct GC in compiled Lisp
> 34ed9d2498 * Introduce latches
>
> are fixing here this issue, now running fibn at speed 2 the memory
> consuptions stays constant.

Alright, feedback time!

Commits:
- master: 82a632edc8b80bf16d9b9f205474bf9724b084c0
- feature/native-comp: 5a55a845a7c426e82e8a6a6d02bc4a39992871e3


The Good News
=============

- I can compile the branch without adding files to the default
  blacklist,

- compilation (-j1) now only takes less than 6 hours instead of 3 days
  (compared with 1.5 hour on master),

- at no point during compilation did the system swap; in fact, I could
  probably have risked a -j2 build,

- elisp-benchmarks doesn't show any obvious performance regression
  (… though see Bad News).

For details on memory usage during compilation, see attached memory
profile (to compare with bug#41077#28).


[-- Attachment #2: compilation-memory.pdf --]
[-- Type: application/pdf, Size: 73753 bytes --]

[-- Attachment #3: Type: text/plain, Size: 344 bytes --]


Few files take more than 3 minutes to compile now:

ELC+ELN emacs-lisp/comp.el      0:09:49
ELC+ELN org/org.el              0:03:39
ELC+ELN ../lisp/window.el       0:03:16
ELC+ELN emacs-lisp/bytecomp.el  0:03:16

For details on performance, see attached tables for master and
feature/native-comp, respectively (to compare with bug#41077#40).


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: perfs.org --]
[-- Type: text/x-org, Size: 2834 bytes --]

* Results
** master
  | test           | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s) | tot avg err (s) |
  |----------------+----------------+------------+---------+-------------+-----------------|
  | bubble-no-cons |         119.55 |       0.23 |       3 |      119.77 |            0.62 |
  | bubble         |          46.98 |      31.03 |     406 |       78.01 |            0.40 |
  | dhrystone      |          75.05 |       0.00 |       0 |       75.05 |            0.12 |
  | fibn-rec       |          59.89 |       0.00 |       0 |       59.89 |            0.07 |
  | fibn-tc        |         151.21 |      96.27 |    1168 |      247.48 |            0.45 |
  | flet           |         110.56 |       0.00 |       0 |      110.56 |            0.21 |
  | inclist        |         166.63 |       0.00 |       0 |      166.63 |            0.23 |
  | listlen-tc     |          77.43 |       0.00 |       0 |       77.43 |            0.37 |
  | map-closure    |          81.72 |       0.00 |       0 |       81.72 |            0.41 |
  | nbody          |          28.88 |      98.07 |    1291 |      126.95 |            0.22 |
  | pcase          |         111.76 |       0.00 |       0 |      111.76 |            0.14 |
  |----------------+----------------+------------+---------+-------------+-----------------|
  | total          |        1029.64 |     225.60 |    2868 |     1255.24 |            1.12 |
** feature/native-comp
  | test           | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s) | tot avg err (s) |
  |----------------+----------------+------------+---------+-------------+-----------------|
  | bubble-no-cons |          19.44 |       0.10 |       1 |       19.54 |            0.02 |
  | bubble         |          11.35 |       7.63 |       1 |       18.99 |            8.51 |
  | dhrystone      |          31.39 |       0.00 |       0 |       31.39 |            0.10 |
  | fibn-rec       |          19.36 |       0.00 |       0 |       19.36 |            0.03 |
  | fibn-tc        |          87.00 |       6.16 |       1 |       93.16 |            1.61 |
  | flet           |          23.83 |       0.00 |       0 |       23.83 |            0.01 |
  | inclist        |           9.78 |       0.00 |       0 |        9.78 |            0.02 |
  | listlen-tc     |           0.78 |       0.00 |       0 |        0.78 |            0.00 |
  | map-closure    |          81.11 |       0.00 |       0 |       81.11 |            0.06 |
  | nbody          |          15.76 |       1.61 |       1 |       17.38 |            0.03 |
  | pcase          |          12.52 |       0.00 |       0 |       12.52 |            0.02 |
  |----------------+----------------+------------+---------+-------------+-----------------|
  | total          |         312.34 |      15.51 |       4 |      327.84 |            8.67 |


[-- Attachment #5: Type: text/plain, Size: 85 bytes --]



The Bad News
============

- fibn still exhausts memory,
- now pidigits does too.


[-- Attachment #6: fibn.pdf --]
[-- Type: application/pdf, Size: 19089 bytes --]

[-- Attachment #7: pidigits.pdf --]
[-- Type: application/pdf, Size: 17848 bytes --]

[-- Attachment #8: Type: text/plain, Size: 144 bytes --]


I've only tried the default comp-speed (2) so far.  I've attached the
results of M-x disassemble on the functions in fibn.el and pidigits.el.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: elb-eliminate-digit.s --]
[-- Type: text/x-asm, Size: 4237 bytes --]

000013a0 <F656c622d656c696d696e6174652d6469676974_elb_eliminate_digit_0>:
    13a0:	e8 90 06 00 00       	call   1a35 <__x86.get_pc_thunk.ax>
    13a5:	05 5b 2c 00 00       	add    $0x2c5b,%eax
    13aa:	57                   	push   %edi
    13ab:	56                   	push   %esi
    13ac:	53                   	push   %ebx
    13ad:	83 ec 2c             	sub    $0x2c,%esp
    13b0:	8b 98 f8 ff ff ff    	mov    -0x8(%eax),%ebx
    13b6:	8b b0 f4 ff ff ff    	mov    -0xc(%eax),%esi
    13bc:	8b 13                	mov    (%ebx),%edx
    13be:	ff 76 08             	pushl  0x8(%esi)
    13c1:	ff 92 e4 12 00 00    	call   *0x12e4(%edx)
    13c7:	89 44 24 18          	mov    %eax,0x18(%esp)
    13cb:	58                   	pop    %eax
    13cc:	8b 03                	mov    (%ebx),%eax
    13ce:	ff 76 0c             	pushl  0xc(%esi)
    13d1:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    13d7:	89 44 24 10          	mov    %eax,0x10(%esp)
    13db:	8b 44 24 40          	mov    0x40(%esp),%eax
    13df:	89 44 24 14          	mov    %eax,0x14(%esp)
    13e3:	5a                   	pop    %edx
    13e4:	59                   	pop    %ecx
    13e5:	8b 03                	mov    (%ebx),%eax
    13e7:	8d 54 24 08          	lea    0x8(%esp),%edx
    13eb:	52                   	push   %edx
    13ec:	6a 02                	push   $0x2
    13ee:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    13f4:	89 44 24 1c          	mov    %eax,0x1c(%esp)
    13f8:	5f                   	pop    %edi
    13f9:	58                   	pop    %eax
    13fa:	8b 03                	mov    (%ebx),%eax
    13fc:	8d 54 24 10          	lea    0x10(%esp),%edx
    1400:	52                   	push   %edx
    1401:	6a 02                	push   $0x2
    1403:	ff 90 8c 12 00 00    	call   *0x128c(%eax)
    1409:	8b 13                	mov    (%ebx),%edx
    140b:	89 44 24 20          	mov    %eax,0x20(%esp)
    140f:	6a 00                	push   $0x0
    1411:	6a 00                	push   $0x0
    1413:	50                   	push   %eax
    1414:	ff 76 08             	pushl  0x8(%esi)
    1417:	ff 52 24             	call   *0x24(%edx)
    141a:	8b 46 10             	mov    0x10(%esi),%eax
    141d:	89 44 24 34          	mov    %eax,0x34(%esp)
    1421:	83 c4 18             	add    $0x18,%esp
    1424:	8b 03                	mov    (%ebx),%eax
    1426:	8d 54 24 18          	lea    0x18(%esp),%edx
    142a:	52                   	push   %edx
    142b:	6a 02                	push   $0x2
    142d:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    1433:	6a 00                	push   $0x0
    1435:	8b 13                	mov    (%ebx),%edx
    1437:	6a 00                	push   $0x0
    1439:	50                   	push   %eax
    143a:	ff 76 08             	pushl  0x8(%esi)
    143d:	ff 52 24             	call   *0x24(%edx)
    1440:	8b 03                	mov    (%ebx),%eax
    1442:	83 c4 14             	add    $0x14,%esp
    1445:	ff 76 04             	pushl  0x4(%esi)
    1448:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    144e:	89 44 24 28          	mov    %eax,0x28(%esp)
    1452:	8b 46 10             	mov    0x10(%esi),%eax
    1455:	89 44 24 2c          	mov    %eax,0x2c(%esp)
    1459:	58                   	pop    %eax
    145a:	8b 03                	mov    (%ebx),%eax
    145c:	5a                   	pop    %edx
    145d:	8d 54 24 20          	lea    0x20(%esp),%edx
    1461:	52                   	push   %edx
    1462:	6a 02                	push   $0x2
    1464:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    146a:	6a 00                	push   $0x0
    146c:	89 c7                	mov    %eax,%edi
    146e:	6a 00                	push   $0x0
    1470:	8b 03                	mov    (%ebx),%eax
    1472:	57                   	push   %edi
    1473:	ff 76 04             	pushl  0x4(%esi)
    1476:	ff 50 24             	call   *0x24(%eax)
    1479:	89 f8                	mov    %edi,%eax
    147b:	83 c4 40             	add    $0x40,%esp
    147e:	5b                   	pop    %ebx
    147f:	5e                   	pop    %esi
    1480:	5f                   	pop    %edi
    1481:	c3                   	ret    
    1482:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    1489:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #10: elb-extract-digit.s --]
[-- Type: text/x-asm, Size: 2632 bytes --]

00001310 <F656c622d657874726163742d6469676974_elb_extract_digit_0>:
    1310:	e8 20 07 00 00       	call   1a35 <__x86.get_pc_thunk.ax>
    1315:	05 eb 2c 00 00       	add    $0x2ceb,%eax
    131a:	57                   	push   %edi
    131b:	56                   	push   %esi
    131c:	53                   	push   %ebx
    131d:	83 ec 1c             	sub    $0x1c,%esp
    1320:	8b 98 f8 ff ff ff    	mov    -0x8(%eax),%ebx
    1326:	8b b8 f4 ff ff ff    	mov    -0xc(%eax),%edi
    132c:	8b 13                	mov    (%ebx),%edx
    132e:	ff 77 04             	pushl  0x4(%edi)
    1331:	ff 92 e4 12 00 00    	call   *0x12e4(%edx)
    1337:	89 44 24 10          	mov    %eax,0x10(%esp)
    133b:	8b 44 24 30          	mov    0x30(%esp),%eax
    133f:	89 44 24 14          	mov    %eax,0x14(%esp)
    1343:	58                   	pop    %eax
    1344:	5a                   	pop    %edx
    1345:	8b 03                	mov    (%ebx),%eax
    1347:	8d 54 24 08          	lea    0x8(%esp),%edx
    134b:	52                   	push   %edx
    134c:	6a 02                	push   $0x2
    134e:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    1354:	89 44 24 18          	mov    %eax,0x18(%esp)
    1358:	59                   	pop    %ecx
    1359:	8b 03                	mov    (%ebx),%eax
    135b:	ff 77 08             	pushl  0x8(%edi)
    135e:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    1364:	89 44 24 1c          	mov    %eax,0x1c(%esp)
    1368:	5e                   	pop    %esi
    1369:	58                   	pop    %eax
    136a:	8b 03                	mov    (%ebx),%eax
    136c:	8d 54 24 10          	lea    0x10(%esp),%edx
    1370:	52                   	push   %edx
    1371:	6a 02                	push   $0x2
    1373:	ff 90 90 12 00 00    	call   *0x1290(%eax)
    1379:	89 c6                	mov    %eax,%esi
    137b:	58                   	pop    %eax
    137c:	8b 03                	mov    (%ebx),%eax
    137e:	ff 77 0c             	pushl  0xc(%edi)
    1381:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    1387:	89 c2                	mov    %eax,%edx
    1389:	58                   	pop    %eax
    138a:	59                   	pop    %ecx
    138b:	52                   	push   %edx
    138c:	8b 03                	mov    (%ebx),%eax
    138e:	56                   	push   %esi
    138f:	ff 90 a8 0c 00 00    	call   *0xca8(%eax)
    1395:	83 c4 20             	add    $0x20,%esp
    1398:	5b                   	pop    %ebx
    1399:	5e                   	pop    %esi
    139a:	5f                   	pop    %edi
    139b:	c3                   	ret    
    139c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #11: elb-fibn.s --]
[-- Type: text/x-asm, Size: 6689 bytes --]

000012e0 <F656c622d6669626e_elb_fibn_0>:
    12e0:	e8 af 02 00 00       	call   1594 <__x86.get_pc_thunk.ax>
    12e5:	05 1b 2d 00 00       	add    $0x2d1b,%eax
    12ea:	55                   	push   %ebp
    12eb:	57                   	push   %edi
    12ec:	56                   	push   %esi
    12ed:	53                   	push   %ebx
    12ee:	83 ec 4c             	sub    $0x4c,%esp
    12f1:	8b 90 f4 ff ff ff    	mov    -0xc(%eax),%edx
    12f7:	8b a8 f8 ff ff ff    	mov    -0x8(%eax),%ebp
    12fd:	8d 44 24 20          	lea    0x20(%esp),%eax
    1301:	89 54 24 1c          	mov    %edx,0x1c(%esp)
    1305:	8b 12                	mov    (%edx),%edx
    1307:	89 44 24 18          	mov    %eax,0x18(%esp)
    130b:	8d 44 24 38          	lea    0x38(%esp),%eax
    130f:	89 54 24 04          	mov    %edx,0x4(%esp)
    1313:	89 54 24 14          	mov    %edx,0x14(%esp)
    1317:	89 44 24 10          	mov    %eax,0x10(%esp)
    131b:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    131f:	90                   	nop
    1320:	8b 44 24 14          	mov    0x14(%esp),%eax
    1324:	83 ec 08             	sub    $0x8,%esp
    1327:	89 44 24 28          	mov    %eax,0x28(%esp)
    132b:	8b 44 24 68          	mov    0x68(%esp),%eax
    132f:	89 44 24 2c          	mov    %eax,0x2c(%esp)
    1333:	8b 45 00             	mov    0x0(%ebp),%eax
    1336:	ff 74 24 20          	pushl  0x20(%esp)
    133a:	6a 02                	push   $0x2
    133c:	ff 90 a4 12 00 00    	call   *0x12a4(%eax)
    1342:	83 c4 10             	add    $0x10,%esp
    1345:	85 c0                	test   %eax,%eax
    1347:	0f 84 23 01 00 00    	je     1470 <F656c622d6669626e_elb_fibn_0+0x190>
    134d:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
    1351:	8b 44 24 64          	mov    0x64(%esp),%eax
    1355:	83 ec 08             	sub    $0x8,%esp
    1358:	be 06 00 00 00       	mov    $0x6,%esi
    135d:	89 44 24 30          	mov    %eax,0x30(%esp)
    1361:	8b 47 0c             	mov    0xc(%edi),%eax
    1364:	8b 5f 08             	mov    0x8(%edi),%ebx
    1367:	89 44 24 34          	mov    %eax,0x34(%esp)
    136b:	8d 54 24 30          	lea    0x30(%esp),%edx
    136f:	8b 45 00             	mov    0x0(%ebp),%eax
    1372:	52                   	push   %edx
    1373:	6a 02                	push   $0x2
    1375:	ff 90 8c 12 00 00    	call   *0x128c(%eax)
    137b:	8b 3f                	mov    (%edi),%edi
    137d:	89 44 24 18          	mov    %eax,0x18(%esp)
    1381:	83 c4 10             	add    $0x10,%esp
    1384:	8d 44 24 30          	lea    0x30(%esp),%eax
    1388:	89 44 24 0c          	mov    %eax,0xc(%esp)
    138c:	89 f8                	mov    %edi,%eax
    138e:	89 f7                	mov    %esi,%edi
    1390:	89 de                	mov    %ebx,%esi
    1392:	89 c3                	mov    %eax,%ebx
    1394:	eb 23                	jmp    13b9 <F656c622d6669626e_elb_fibn_0+0xd9>
    1396:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    139d:	8d 76 00             	lea    0x0(%esi),%esi
    13a0:	89 d8                	mov    %ebx,%eax
    13a2:	c1 f8 02             	sar    $0x2,%eax
    13a5:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
    13aa:	74 5a                	je     1406 <F656c622d6669626e_elb_fibn_0+0x126>
    13ac:	8d 1c 85 06 00 00 00 	lea    0x6(,%eax,4),%ebx
    13b3:	89 f7                	mov    %esi,%edi
    13b5:	8b 74 24 04          	mov    0x4(%esp),%esi
    13b9:	8b 44 24 08          	mov    0x8(%esp),%eax
    13bd:	89 5c 24 30          	mov    %ebx,0x30(%esp)
    13c1:	83 ec 08             	sub    $0x8,%esp
    13c4:	89 44 24 3c          	mov    %eax,0x3c(%esp)
    13c8:	8b 45 00             	mov    0x0(%ebp),%eax
    13cb:	ff 74 24 14          	pushl  0x14(%esp)
    13cf:	6a 02                	push   $0x2
    13d1:	ff 90 a4 12 00 00    	call   *0x12a4(%eax)
    13d7:	83 c4 10             	add    $0x10,%esp
    13da:	85 c0                	test   %eax,%eax
    13dc:	74 42                	je     1420 <F656c622d6669626e_elb_fibn_0+0x140>
    13de:	89 74 24 38          	mov    %esi,0x38(%esp)
    13e2:	83 ec 08             	sub    $0x8,%esp
    13e5:	8b 45 00             	mov    0x0(%ebp),%eax
    13e8:	89 7c 24 44          	mov    %edi,0x44(%esp)
    13ec:	ff 74 24 18          	pushl  0x18(%esp)
    13f0:	6a 02                	push   $0x2
    13f2:	ff 90 90 12 00 00    	call   *0x1290(%eax)
    13f8:	89 44 24 14          	mov    %eax,0x14(%esp)
    13fc:	8d 43 fe             	lea    -0x2(%ebx),%eax
    13ff:	83 c4 10             	add    $0x10,%esp
    1402:	a8 03                	test   $0x3,%al
    1404:	74 9a                	je     13a0 <F656c622d6669626e_elb_fibn_0+0xc0>
    1406:	83 ec 0c             	sub    $0xc,%esp
    1409:	8b 45 00             	mov    0x0(%ebp),%eax
    140c:	53                   	push   %ebx
    140d:	ff 90 5c 12 00 00    	call   *0x125c(%eax)
    1413:	89 c3                	mov    %eax,%ebx
    1415:	83 c4 10             	add    $0x10,%esp
    1418:	eb 99                	jmp    13b3 <F656c622d6669626e_elb_fibn_0+0xd3>
    141a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    1420:	8b 4c 24 14          	mov    0x14(%esp),%ecx
    1424:	8d 41 fe             	lea    -0x2(%ecx),%eax
    1427:	a8 03                	test   $0x3,%al
    1429:	75 25                	jne    1450 <F656c622d6669626e_elb_fibn_0+0x170>
    142b:	89 c8                	mov    %ecx,%eax
    142d:	c1 f8 02             	sar    $0x2,%eax
    1430:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
    1435:	74 19                	je     1450 <F656c622d6669626e_elb_fibn_0+0x170>
    1437:	8d 04 85 06 00 00 00 	lea    0x6(,%eax,4),%eax
    143e:	89 44 24 14          	mov    %eax,0x14(%esp)
    1442:	e9 d9 fe ff ff       	jmp    1320 <F656c622d6669626e_elb_fibn_0+0x40>
    1447:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    144e:	66 90                	xchg   %ax,%ax
    1450:	83 ec 0c             	sub    $0xc,%esp
    1453:	8b 45 00             	mov    0x0(%ebp),%eax
    1456:	ff 74 24 20          	pushl  0x20(%esp)
    145a:	ff 90 5c 12 00 00    	call   *0x125c(%eax)
    1460:	89 44 24 24          	mov    %eax,0x24(%esp)
    1464:	83 c4 10             	add    $0x10,%esp
    1467:	e9 b4 fe ff ff       	jmp    1320 <F656c622d6669626e_elb_fibn_0+0x40>
    146c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1470:	8b 44 24 04          	mov    0x4(%esp),%eax
    1474:	83 c4 4c             	add    $0x4c,%esp
    1477:	5b                   	pop    %ebx
    1478:	5e                   	pop    %esi
    1479:	5f                   	pop    %edi
    147a:	5d                   	pop    %ebp
    147b:	c3                   	ret    
    147c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: elb-fibn-entry.s --]
[-- Type: text/x-asm, Size: 697 bytes --]

00001480 <F656c622d6669626e2d656e747279_elb_fibn_entry_0>:
    1480:	53                   	push   %ebx
    1481:	e8 da fb ff ff       	call   1060 <__x86.get_pc_thunk.bx>
    1486:	81 c3 7a 2b 00 00    	add    $0x2b7a,%ebx
    148c:	83 ec 10             	sub    $0x10,%esp
    148f:	68 42 01 00 00       	push   $0x142
    1494:	68 02 1b b7 00       	push   $0xb71b02
    1499:	e8 92 fb ff ff       	call   1030 <F656c622d6669626e_elb_fibn_0@plt>
    149e:	83 c4 18             	add    $0x18,%esp
    14a1:	5b                   	pop    %ebx
    14a2:	c3                   	ret    
    14a3:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    14aa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #13: elb-next-term.s --]
[-- Type: text/x-asm, Size: 6624 bytes --]

00001490 <F656c622d6e6578742d7465726d_elb_next_term_0>:
    1490:	e8 a0 05 00 00       	call   1a35 <__x86.get_pc_thunk.ax>
    1495:	05 6b 2b 00 00       	add    $0x2b6b,%eax
    149a:	55                   	push   %ebp
    149b:	57                   	push   %edi
    149c:	56                   	push   %esi
    149d:	53                   	push   %ebx
    149e:	83 ec 44             	sub    $0x44,%esp
    14a1:	8b b0 f4 ff ff ff    	mov    -0xc(%eax),%esi
    14a7:	8b 98 f8 ff ff ff    	mov    -0x8(%eax),%ebx
    14ad:	8b 7c 24 58          	mov    0x58(%esp),%edi
    14b1:	8b 56 14             	mov    0x14(%esi),%edx
    14b4:	8b 03                	mov    (%ebx),%eax
    14b6:	89 7c 24 08          	mov    %edi,0x8(%esp)
    14ba:	89 54 24 0c          	mov    %edx,0xc(%esp)
    14be:	8d 54 24 08          	lea    0x8(%esp),%edx
    14c2:	52                   	push   %edx
    14c3:	6a 02                	push   $0x2
    14c5:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    14cb:	8d 50 fe             	lea    -0x2(%eax),%edx
    14ce:	83 c4 10             	add    $0x10,%esp
    14d1:	83 e2 03             	and    $0x3,%edx
    14d4:	75 1a                	jne    14f0 <F656c622d6e6578742d7465726d_elb_next_term_0+0x60>
    14d6:	89 c2                	mov    %eax,%edx
    14d8:	c1 fa 02             	sar    $0x2,%edx
    14db:	81 fa ff ff ff 1f    	cmp    $0x1fffffff,%edx
    14e1:	74 0d                	je     14f0 <F656c622d6e6578742d7465726d_elb_next_term_0+0x60>
    14e3:	8d 2c 95 06 00 00 00 	lea    0x6(,%edx,4),%ebp
    14ea:	eb 15                	jmp    1501 <F656c622d6e6578742d7465726d_elb_next_term_0+0x71>
    14ec:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    14f0:	83 ec 0c             	sub    $0xc,%esp
    14f3:	8b 13                	mov    (%ebx),%edx
    14f5:	50                   	push   %eax
    14f6:	ff 92 5c 12 00 00    	call   *0x125c(%edx)
    14fc:	89 c5                	mov    %eax,%ebp
    14fe:	83 c4 10             	add    $0x10,%esp
    1501:	83 ec 0c             	sub    $0xc,%esp
    1504:	8b 03                	mov    (%ebx),%eax
    1506:	ff 76 08             	pushl  0x8(%esi)
    1509:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    150f:	89 44 24 20          	mov    %eax,0x20(%esp)
    1513:	58                   	pop    %eax
    1514:	8b 03                	mov    (%ebx),%eax
    1516:	ff 76 04             	pushl  0x4(%esi)
    1519:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    151f:	89 44 24 18          	mov    %eax,0x18(%esp)
    1523:	8b 46 14             	mov    0x14(%esi),%eax
    1526:	89 44 24 1c          	mov    %eax,0x1c(%esp)
    152a:	5a                   	pop    %edx
    152b:	59                   	pop    %ecx
    152c:	8b 03                	mov    (%ebx),%eax
    152e:	8d 54 24 10          	lea    0x10(%esp),%edx
    1532:	52                   	push   %edx
    1533:	6a 02                	push   $0x2
    1535:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    153b:	89 44 24 24          	mov    %eax,0x24(%esp)
    153f:	58                   	pop    %eax
    1540:	5a                   	pop    %edx
    1541:	8b 03                	mov    (%ebx),%eax
    1543:	8d 54 24 18          	lea    0x18(%esp),%edx
    1547:	52                   	push   %edx
    1548:	6a 02                	push   $0x2
    154a:	ff 90 90 12 00 00    	call   *0x1290(%eax)
    1550:	8b 13                	mov    (%ebx),%edx
    1552:	89 44 24 28          	mov    %eax,0x28(%esp)
    1556:	6a 00                	push   $0x0
    1558:	6a 00                	push   $0x0
    155a:	50                   	push   %eax
    155b:	ff 76 08             	pushl  0x8(%esi)
    155e:	ff 52 24             	call   *0x24(%edx)
    1561:	8b 03                	mov    (%ebx),%eax
    1563:	89 6c 24 3c          	mov    %ebp,0x3c(%esp)
    1567:	83 c4 18             	add    $0x18,%esp
    156a:	8d 54 24 20          	lea    0x20(%esp),%edx
    156e:	52                   	push   %edx
    156f:	6a 02                	push   $0x2
    1571:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    1577:	6a 00                	push   $0x0
    1579:	8b 13                	mov    (%ebx),%edx
    157b:	6a 00                	push   $0x0
    157d:	50                   	push   %eax
    157e:	ff 76 08             	pushl  0x8(%esi)
    1581:	ff 52 24             	call   *0x24(%edx)
    1584:	8b 03                	mov    (%ebx),%eax
    1586:	83 c4 14             	add    $0x14,%esp
    1589:	ff 76 0c             	pushl  0xc(%esi)
    158c:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    1592:	89 44 24 30          	mov    %eax,0x30(%esp)
    1596:	8b 03                	mov    (%ebx),%eax
    1598:	89 6c 24 34          	mov    %ebp,0x34(%esp)
    159c:	59                   	pop    %ecx
    159d:	5d                   	pop    %ebp
    159e:	8d 54 24 28          	lea    0x28(%esp),%edx
    15a2:	52                   	push   %edx
    15a3:	6a 02                	push   $0x2
    15a5:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    15ab:	6a 00                	push   $0x0
    15ad:	8b 13                	mov    (%ebx),%edx
    15af:	6a 00                	push   $0x0
    15b1:	50                   	push   %eax
    15b2:	ff 76 0c             	pushl  0xc(%esi)
    15b5:	ff 52 24             	call   *0x24(%edx)
    15b8:	8b 03                	mov    (%ebx),%eax
    15ba:	83 c4 14             	add    $0x14,%esp
    15bd:	ff 76 04             	pushl  0x4(%esi)
    15c0:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    15c6:	89 44 24 38          	mov    %eax,0x38(%esp)
    15ca:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
    15ce:	58                   	pop    %eax
    15cf:	8b 03                	mov    (%ebx),%eax
    15d1:	5a                   	pop    %edx
    15d2:	8d 54 24 30          	lea    0x30(%esp),%edx
    15d6:	52                   	push   %edx
    15d7:	6a 02                	push   $0x2
    15d9:	ff 90 88 12 00 00    	call   *0x1288(%eax)
    15df:	6a 00                	push   $0x0
    15e1:	89 c7                	mov    %eax,%edi
    15e3:	6a 00                	push   $0x0
    15e5:	8b 03                	mov    (%ebx),%eax
    15e7:	57                   	push   %edi
    15e8:	ff 76 04             	pushl  0x4(%esi)
    15eb:	ff 50 24             	call   *0x24(%eax)
    15ee:	89 f8                	mov    %edi,%eax
    15f0:	83 c4 5c             	add    $0x5c,%esp
    15f3:	5b                   	pop    %ebx
    15f4:	5e                   	pop    %esi
    15f5:	5f                   	pop    %edi
    15f6:	5d                   	pop    %ebp
    15f7:	c3                   	ret    
    15f8:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    15ff:	90                   	nop


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #14: elb-pidigits.s --]
[-- Type: text/x-asm, Size: 8594 bytes --]

00001600 <F656c622d7069646967697473_elb_pidigits_0>:
    1600:	55                   	push   %ebp
    1601:	57                   	push   %edi
    1602:	56                   	push   %esi
    1603:	53                   	push   %ebx
    1604:	e8 87 fa ff ff       	call   1090 <__x86.get_pc_thunk.bx>
    1609:	81 c3 f7 29 00 00    	add    $0x29f7,%ebx
    160f:	83 ec 54             	sub    $0x54,%esp
    1612:	8b ab f4 ff ff ff    	mov    -0xc(%ebx),%ebp
    1618:	8b b3 f8 ff ff ff    	mov    -0x8(%ebx),%esi
    161e:	8b 45 20             	mov    0x20(%ebp),%eax
    1621:	89 44 24 1c          	mov    %eax,0x1c(%esp)
    1625:	8b 06                	mov    (%esi),%eax
    1627:	6a 06                	push   $0x6
    1629:	ff 75 04             	pushl  0x4(%ebp)
    162c:	ff 50 2c             	call   *0x2c(%eax)
    162f:	8b 06                	mov    (%esi),%eax
    1631:	59                   	pop    %ecx
    1632:	5f                   	pop    %edi
    1633:	6a 06                	push   $0x6
    1635:	bf 02 00 00 00       	mov    $0x2,%edi
    163a:	ff 75 0c             	pushl  0xc(%ebp)
    163d:	ff 50 2c             	call   *0x2c(%eax)
    1640:	58                   	pop    %eax
    1641:	5a                   	pop    %edx
    1642:	8b 06                	mov    (%esi),%eax
    1644:	6a 02                	push   $0x2
    1646:	ff 75 08             	pushl  0x8(%ebp)
    1649:	ff 50 2c             	call   *0x2c(%eax)
    164c:	8b 45 24             	mov    0x24(%ebp),%eax
    164f:	83 c4 10             	add    $0x10,%esp
    1652:	c7 44 24 08 02 00 00 	movl   $0x2,0x8(%esp)
    1659:	00 
    165a:	8d 4c 24 28          	lea    0x28(%esp),%ecx
    165e:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
    1662:	8d 4c 24 30          	lea    0x30(%esp),%ecx
    1666:	89 4c 24 10          	mov    %ecx,0x10(%esp)
    166a:	8d 4c 24 38          	lea    0x38(%esp),%ecx
    166e:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
    1672:	eb 5b                	jmp    16cf <F656c622d7069646967697473_elb_pidigits_0+0xcf>
    1674:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    1678:	89 f8                	mov    %edi,%eax
    167a:	c1 f8 02             	sar    $0x2,%eax
    167d:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
    1682:	74 7e                	je     1702 <F656c622d7069646967697473_elb_pidigits_0+0x102>
    1684:	8d 3c 85 06 00 00 00 	lea    0x6(,%eax,4),%edi
    168b:	83 ec 0c             	sub    $0xc,%esp
    168e:	57                   	push   %edi
    168f:	e8 dc f9 ff ff       	call   1070 <F656c622d6e6578742d7465726d_elb_next_term_0@plt>
    1694:	59                   	pop    %ecx
    1695:	8b 06                	mov    (%esi),%eax
    1697:	ff 75 04             	pushl  0x4(%ebp)
    169a:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    16a0:	89 44 24 40          	mov    %eax,0x40(%esp)
    16a4:	58                   	pop    %eax
    16a5:	8b 06                	mov    (%esi),%eax
    16a7:	ff 75 08             	pushl  0x8(%ebp)
    16aa:	ff 90 e4 12 00 00    	call   *0x12e4(%eax)
    16b0:	89 44 24 44          	mov    %eax,0x44(%esp)
    16b4:	58                   	pop    %eax
    16b5:	8b 06                	mov    (%esi),%eax
    16b7:	5a                   	pop    %edx
    16b8:	ff 74 24 18          	pushl  0x18(%esp)
    16bc:	6a 02                	push   $0x2
    16be:	ff 90 a0 12 00 00    	call   *0x12a0(%eax)
    16c4:	83 c4 10             	add    $0x10,%esp
    16c7:	85 c0                	test   %eax,%eax
    16c9:	74 55                	je     1720 <F656c622d7069646967697473_elb_pidigits_0+0x120>
    16cb:	8b 44 24 60          	mov    0x60(%esp),%eax
    16cf:	8b 54 24 08          	mov    0x8(%esp),%edx
    16d3:	89 44 24 2c          	mov    %eax,0x2c(%esp)
    16d7:	83 ec 08             	sub    $0x8,%esp
    16da:	8b 06                	mov    (%esi),%eax
    16dc:	89 54 24 30          	mov    %edx,0x30(%esp)
    16e0:	ff 74 24 14          	pushl  0x14(%esp)
    16e4:	6a 02                	push   $0x2
    16e6:	ff 90 98 12 00 00    	call   *0x1298(%eax)
    16ec:	83 c4 10             	add    $0x10,%esp
    16ef:	85 c0                	test   %eax,%eax
    16f1:	0f 85 d9 00 00 00    	jne    17d0 <F656c622d7069646967697473_elb_pidigits_0+0x1d0>
    16f7:	8d 47 fe             	lea    -0x2(%edi),%eax
    16fa:	a8 03                	test   $0x3,%al
    16fc:	0f 84 76 ff ff ff    	je     1678 <F656c622d7069646967697473_elb_pidigits_0+0x78>
    1702:	83 ec 0c             	sub    $0xc,%esp
    1705:	8b 06                	mov    (%esi),%eax
    1707:	57                   	push   %edi
    1708:	ff 90 5c 12 00 00    	call   *0x125c(%eax)
    170e:	89 c7                	mov    %eax,%edi
    1710:	83 c4 10             	add    $0x10,%esp
    1713:	e9 73 ff ff ff       	jmp    168b <F656c622d7069646967697473_elb_pidigits_0+0x8b>
    1718:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    171f:	90                   	nop
    1720:	83 ec 0c             	sub    $0xc,%esp
    1723:	6a 0e                	push   $0xe
    1725:	e8 36 f9 ff ff       	call   1060 <F656c622d657874726163742d6469676974_elb_extract_digit_0@plt>
    172a:	c7 04 24 12 00 00 00 	movl   $0x12,(%esp)
    1731:	89 44 24 28          	mov    %eax,0x28(%esp)
    1735:	89 44 24 48          	mov    %eax,0x48(%esp)
    1739:	e8 22 f9 ff ff       	call   1060 <F656c622d657874726163742d6469676974_elb_extract_digit_0@plt>
    173e:	89 44 24 4c          	mov    %eax,0x4c(%esp)
    1742:	58                   	pop    %eax
    1743:	8b 06                	mov    (%esi),%eax
    1745:	5a                   	pop    %edx
    1746:	ff 74 24 24          	pushl  0x24(%esp)
    174a:	6a 02                	push   $0x2
    174c:	ff 90 a8 12 00 00    	call   *0x12a8(%eax)
    1752:	83 c4 10             	add    $0x10,%esp
    1755:	85 c0                	test   %eax,%eax
    1757:	0f 84 6e ff ff ff    	je     16cb <F656c622d7069646967697473_elb_pidigits_0+0xcb>
    175d:	83 ec 08             	sub    $0x8,%esp
    1760:	8b 06                	mov    (%esi),%eax
    1762:	ff 74 24 1c          	pushl  0x1c(%esp)
    1766:	ff 74 24 24          	pushl  0x24(%esp)
    176a:	ff 90 b4 0f 00 00    	call   *0xfb4(%eax)
    1770:	8b 4c 24 18          	mov    0x18(%esp),%ecx
    1774:	89 44 24 24          	mov    %eax,0x24(%esp)
    1778:	8d 41 fe             	lea    -0x2(%ecx),%eax
    177b:	83 c4 10             	add    $0x10,%esp
    177e:	a8 03                	test   $0x3,%al
    1780:	75 1e                	jne    17a0 <F656c622d7069646967697473_elb_pidigits_0+0x1a0>
    1782:	89 c8                	mov    %ecx,%eax
    1784:	c1 f8 02             	sar    $0x2,%eax
    1787:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
    178c:	74 12                	je     17a0 <F656c622d7069646967697473_elb_pidigits_0+0x1a0>
    178e:	8d 04 85 06 00 00 00 	lea    0x6(,%eax,4),%eax
    1795:	89 44 24 08          	mov    %eax,0x8(%esp)
    1799:	eb 1b                	jmp    17b6 <F656c622d7069646967697473_elb_pidigits_0+0x1b6>
    179b:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    179f:	90                   	nop
    17a0:	83 ec 0c             	sub    $0xc,%esp
    17a3:	8b 06                	mov    (%esi),%eax
    17a5:	ff 74 24 14          	pushl  0x14(%esp)
    17a9:	ff 90 5c 12 00 00    	call   *0x125c(%eax)
    17af:	89 44 24 18          	mov    %eax,0x18(%esp)
    17b3:	83 c4 10             	add    $0x10,%esp
    17b6:	83 ec 0c             	sub    $0xc,%esp
    17b9:	ff 74 24 24          	pushl  0x24(%esp)
    17bd:	e8 8e f8 ff ff       	call   1050 <F656c622d656c696d696e6174652d6469676974_elb_eliminate_digit_0@plt>
    17c2:	83 c4 10             	add    $0x10,%esp
    17c5:	e9 01 ff ff ff       	jmp    16cb <F656c622d7069646967697473_elb_pidigits_0+0xcb>
    17ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    17d0:	8b 06                	mov    (%esi),%eax
    17d2:	83 ec 0c             	sub    $0xc,%esp
    17d5:	ff 74 24 20          	pushl  0x20(%esp)
    17d9:	ff 90 20 11 00 00    	call   *0x1120(%eax)
    17df:	89 c3                	mov    %eax,%ebx
    17e1:	8b 06                	mov    (%esi),%eax
    17e3:	c7 04 24 0e 00 00 00 	movl   $0xe,(%esp)
    17ea:	ff 50 18             	call   *0x18(%eax)
    17ed:	83 c4 5c             	add    $0x5c,%esp
    17f0:	89 d8                	mov    %ebx,%eax
    17f2:	5b                   	pop    %ebx
    17f3:	5e                   	pop    %esi
    17f4:	5f                   	pop    %edi
    17f5:	5d                   	pop    %ebp
    17f6:	c3                   	ret    
    17f7:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
    17fe:	66 90                	xchg   %ax,%ax


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #15: elb-pidigits-entry.s --]
[-- Type: text/x-asm, Size: 3066 bytes --]

00001800 <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0>:
    1800:	55                   	push   %ebp
    1801:	57                   	push   %edi
    1802:	56                   	push   %esi
    1803:	53                   	push   %ebx
    1804:	e8 87 f8 ff ff       	call   1090 <__x86.get_pc_thunk.bx>
    1809:	81 c3 f7 27 00 00    	add    $0x27f7,%ebx
    180f:	83 ec 2c             	sub    $0x2c,%esp
    1812:	8d 44 24 18          	lea    0x18(%esp),%eax
    1816:	89 44 24 0c          	mov    %eax,0xc(%esp)
    181a:	8b bb f4 ff ff ff    	mov    -0xc(%ebx),%edi
    1820:	8b b3 f8 ff ff ff    	mov    -0x8(%ebx),%esi
    1826:	8b 6f 40             	mov    0x40(%edi),%ebp
    1829:	eb 4b                	jmp    1876 <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0+0x76>
    182b:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    182f:	90                   	nop
    1830:	89 e8                	mov    %ebp,%eax
    1832:	c1 f8 02             	sar    $0x2,%eax
    1835:	3d 00 00 00 e0       	cmp    $0xe0000000,%eax
    183a:	74 41                	je     187d <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0+0x7d>
    183c:	8d 2c 85 fe ff ff ff 	lea    -0x2(,%eax,4),%ebp
    1843:	8b 47 18             	mov    0x18(%edi),%eax
    1846:	89 6c 24 18          	mov    %ebp,0x18(%esp)
    184a:	83 ec 08             	sub    $0x8,%esp
    184d:	89 44 24 24          	mov    %eax,0x24(%esp)
    1851:	8b 06                	mov    (%esi),%eax
    1853:	ff 74 24 14          	pushl  0x14(%esp)
    1857:	6a 02                	push   $0x2
    1859:	ff 90 98 12 00 00    	call   *0x1298(%eax)
    185f:	83 c4 10             	add    $0x10,%esp
    1862:	85 c0                	test   %eax,%eax
    1864:	74 2a                	je     1890 <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0+0x90>
    1866:	83 ec 0c             	sub    $0xc,%esp
    1869:	68 d2 07 00 00       	push   $0x7d2
    186e:	e8 cd f7 ff ff       	call   1040 <F656c622d7069646967697473_elb_pidigits_0@plt>
    1873:	83 c4 10             	add    $0x10,%esp
    1876:	8d 45 fe             	lea    -0x2(%ebp),%eax
    1879:	a8 03                	test   $0x3,%al
    187b:	74 b3                	je     1830 <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0+0x30>
    187d:	83 ec 0c             	sub    $0xc,%esp
    1880:	8b 06                	mov    (%esi),%eax
    1882:	55                   	push   %ebp
    1883:	ff 90 58 12 00 00    	call   *0x1258(%eax)
    1889:	89 c5                	mov    %eax,%ebp
    188b:	83 c4 10             	add    $0x10,%esp
    188e:	eb b3                	jmp    1843 <F656c622d70696469676974732d656e747279_elb_pidigits_entry_0+0x43>
    1890:	83 c4 2c             	add    $0x2c,%esp
    1893:	31 c0                	xor    %eax,%eax
    1895:	5b                   	pop    %ebx
    1896:	5e                   	pop    %esi
    1897:	5f                   	pop    %edi
    1898:	5d                   	pop    %ebp
    1899:	c3                   	ret    
    189a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi


[-- Attachment #16: Type: text/plain, Size: 110 bytes --]


Let me know what I can do to help diagnose this further.  Again, thank
you for the time spent on this issue!

  parent reply	other threads:[~2020-06-14 15:19 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-11 20:47 bug#41194: 28.0.50; [feature/native-comp] fibn benchmark exhausts memory Kévin Le Gouguec
2020-06-09 22:24 ` Andrea Corallo
2020-06-10  7:55   ` Kévin Le Gouguec
2020-06-13 15:00     ` Andrea Corallo
2020-06-13 18:17       ` Kévin Le Gouguec
2020-06-14 15:19       ` Kévin Le Gouguec [this message]
2020-06-14 16:19         ` Andrea Corallo
2020-06-14 20:47           ` Kévin Le Gouguec
2020-06-14 21:45             ` Andrea Corallo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877dw9k73y.fsf@gmail.com \
    --to=kevin.legouguec@gmail.com \
    --cc=41194@debbugs.gnu.org \
    --cc=akrl@sdf.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).