emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPS: weak hash tables


From: Gerd Möllmann
Subject: Re: MPS: weak hash tables
Date: Sat, 06 Jul 2024 13:40:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Helmut Eller <eller.helmut@gmail.com> writes:

> When I add
>
>   MPS_ARGS_ADD (args, MPS_KEY_COMMIT_LIMIT,  1 << 30);
>
> to make_arena then
>
>   make lisp/emacs-lisp/ert-tests
>
> aborts with
>
>   trace.c:1088: Emacs fatal error: assertion failed: band != RankWEAK || rank 
> == band
>
> This looks like a bug.

I see that too. With the following backtrace

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 4.1
    frame #0: 0x000000010039d184 
emacs`mps_lib_assert_fail(file="/Users/gerd/emacs/github/mps/code/trace.c", 
line=1088, condition="band != RankWEAK || rank == band") at mpsliban.c:87:3
  * frame #1: 0x00000001003f8538 
emacs`traceFindGrey(segReturn=0x000000016fdf9408, 
rankReturn=0x000000016fdf9404, arena=0x0000000100cd4000, ti=0) at 
trace.c:1088:11
    frame #2: 0x00000001003d9bf4 emacs`TraceAdvance(trace=0x0000000100cd4b50) 
at trace.c:1726:9
    frame #3: 0x00000001003d8d44 emacs`TracePoll(workReturn=0x000000016fdf9500, 
collectWorldReturn=0x000000016fdf9514, globals=0x0000000100cd4008, 
collectWorldAllowed=1) at trace.c:1849:5
    frame #4: 0x00000001003a5cb0 emacs`ArenaPoll(globals=0x0000000100cd4008) at 
global.c:745:16
    frame #5: 0x00000001003a89e4 emacs`mps_ap_fill(p_o=0x000000016fdf96b0, 
mps_ap=0x00000001080018d8, size=24) at mpsi.c:1097:5
    frame #6: 0x00000001002ec0b0 emacs`alloc_impl(size=24, type=IGC_OBJ_CONS, 
ap=0x00000001080018d8) at igc.c:3578:20
    frame #7: 0x00000001002e68d4 emacs`alloc(size=16, type=IGC_OBJ_CONS) at 
igc.c:3606:10
    frame #8: 0x00000001002e6864 emacs`igc_make_cons(car=(struct Lisp_Symbol *) 
$0 = 0x0000000107db2060, cdr=(struct Lisp_Symbol *) $1 = 0x0000000100ab3090) at 
igc.c:3633:28
    frame #9: 0x00000001001f5e34 emacs`Fcons(car=(struct Lisp_Symbol *) $2 = 
0x0000000107db2060, cdr=(struct Lisp_Symbol *) $3 = 0x0000000100ab3090) at 
alloc.c:2951:10
!gud 2951:10:/Users/gerd/emacs/github/tinker/src/alloc.c
    frame #10: 0x00000001002d1a40 emacs`add_properties(plist=(struct Lisp_Cons 
*) $4 = 0x000000015509a630, i=0x0000000153947a88, object=(struct Lisp_String *) 
$5 = 0x0000000107db2098, set_type=TEXT_PROPERTY_REPLACE, destructive=true) at 
textprop.c:450:40
    frame #11: 0x00000001002cc674 emacs`add_text_properties_1(start=(EMACS_INT) 
$6 = 0, end=(EMACS_INT) $7 = 3948495, properties=(struct Lisp_Cons *) $8 = 
0x000000015509a630, object=(struct Lisp_String *) $9 = 0x0000000107db2098, 
set_type=TEXT_PROPERTY_REPLACE, destructive=true) at textprop.c:1289:19
    frame #12: 0x00000001002cbe98 emacs`Fadd_text_properties(start=(EMACS_INT) 
$10 = 0, end=(EMACS_INT) $11 = 3948495, properties=(struct Lisp_Cons *) $12 = 
0x000000015509a630, object=(struct Lisp_String *) $13 = 0x0000000107db2098) at 
textprop.c:1308:10
    frame #13: 0x000000010021f7cc emacs`Fpropertize(nargs=3, args=(struct 
Lisp_Symbol *) $14 = 0x0000000248b93a90) at editfns.c:3277:3
    frame #14: 0x0000000100231ff4 emacs`funcall_subr(subr=0x0000000100a540e0, 
numargs=3, args=(struct Lisp_Symbol *) $15 = 0x0000000248b93a90) at 
eval.c:3258:9
    frame #15: 0x0000000100293450 emacs`exec_byte_code(fun=(struct Lisp_Vector 
*) $16 = 0x000000010b275460, args_template=256, nargs=0, args=(struct 
Lisp_Symbol *) $17 = 0x0000000248b93aa8) at bytecode.c:827:

And I have not the slightest idea what that means or how the commit
limit comes into play.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]