Summary

Crash in csi "report"

Metadata

Description

Running csi 5.1.1 (29b3d6113985e2f110698d8ab7f398f51a88a819, debugbuild) I get the following:

 CHICKEN
 (c) 2008-2019, The CHICKEN Team
 (c) 2000-2007, Felix L. Winkelmann
 Version 5.1.1 (rev 29b3d611)
 openbsd-unix-gnu-x86-64 [ 64bit dload ptables ]
 
 #;1> ,r
 Features:
 
   64bit             chicken           chicken-5
   chicken-5.1       csi               dload
   full-numeric-tower                  gnu
   little-endian     openbsd           ptables
   srfi-0            srfi-11           srfi-12
   srfi-15           srfi-16           srfi-17
   srfi-2            srfi-23           srfi-26
   srfi-28           srfi-30           srfi-31
   srfi-39           srfi-46           srfi-55
   srfi-6            srfi-6            srfi-61
   srfi-62           srfi-8            srfi-88
   srfi-9            unix              x86-64
 [panic] Low-level type assertion C_fixnump(C_VAL1(t2))=#t failed at csi.c:5877 - execution terminated
 
 ...more...
 csi.scm:473: printf
 csi.scm:484: scheme#make-string
 csi.scm:484: scheme#display
 csi.scm:471: g1088
 csi.scm:473: printf
 csi.scm:481: scheme#display
 csi.scm:502: chicken.platform#machine-type
 csi.scm:503: chicken.platform#feature?
 csi.scm:504: chicken.platform#software-type
 csi.scm:505: chicken.platform#software-version
 csi.scm:506: chicken.platform#build-platform
 csi.scm:508: chicken.platform#installation-repository
 csi.scm:509: chicken.platform#repository-path
 csi.scm:511: chicken.base#keyword-style
 csi.scm:511: chicken.keyword#keyword->string
 csi.scm:512: shorten    <--

Here seems to be the assertion failure:

 /* shorten in k5080 in k5077 in k5074 in a5071 in k5068 in chicken.csi#report in k5059 in k4914 in k4270 in k3927 in k3845 in k3842 in k3837 in k2547 in k2544 in k2541 in k2538 in k2535 in k2532 in k2529 in k2526 in ... */
 static void C_fcall f_5084(C_word t1,C_word t2){
 C_word tmp;
 C_word t3;
 C_word t4;
 C_word t5;
 C_word *a;
 if(C_unlikely(!C_demand(C_calculate_demand(3,0,2)))){
 C_save_and_reclaim_args((void *)trf_5084,2,t1,t2);}
 a=C_alloc(3);
 t3=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_5092,a[2]=t1,tmp=(C_word)a,a+=3,tmp);
 t4=C_fixnum_times(t2,C_fix(100));          /* <--- */
 C_trace(C_text("csi.scm:467: scheme#truncate"));
 t5=*((C_word*)lf[114]+1);{
 C_word av2[3];
 av2[0]=t5;
 av2[1]=t3;
 av2[2]=t4;
 ((C_proc)(void*)(*((C_word*)t5+1)))(3,av2);}}

Element #0 of the symtable info is aflonum, so apparently here is an optimization going wwong by assuming shorten is only called on fixnums.

Changes and comments

[2019-08-11 12:31:57 UTC] felix wrote:

Hm... after building several versions I can't reproduce this bug anymore, possibly due to some build debris. I keep this open for a short while and if no one else reports any problems, I'll close the ticket.

[2019-08-12 15:06:53 UTC] felix changed status from new to closed

[2019-08-12 15:06:53 UTC] felix set resolution to invalid