BTW, you may have similar issues with the pce version when profiling a goal which calls the [] predicate. Running on v9.2.9:
ERROR: [Thread pce] Unhandled exception: Type error: `text' expected, found `[]' (an empty_list)
ERROR: [Thread pce] In:
ERROR: [Thread pce] [19] atomic_list_concat([type_ndarray,:|...],_7018)
ERROR: [Thread pce] [16] Send-method on @17575124019903/prof_dict_item: prof_dict_item->initialise(node{call:210000,callees: ...,callers: ...,exit:180000,predicate: ...,redo:0,ticks_self:36,ticks_siblings:372},ticks,@17575124016481/prof_frame) at swipl/xpce/prolog/lib/swi/pce_profile.pl:302
With a patched version of prolog_code it manages to display the top level profile data window without error, but if I select a predicate which calls [] I get:
ERROR: [Thread pce] prolog_predicate <-name: Argument 1 (name): `name' expected, found `[]'
ERROR: [Thread pce] prof_node_text ->initialise: Argument 1 (any): `any' expected, found `prolog_predicate(type_ndarray:([])/3)'
ERROR: [Thread pce] tabular ->append: Argument 1 (label): `name|graphical|table_cell' expected, found `prof_predicate_text(type_ndarray:([])/3,child)'
^C
Action (h for help) ? abort
% Execution Aborted
And if I acually select the [] predicate, it goes into an infinite loop:
ERROR: [Thread pce] prolog_predicate <-name: Argument 1 (name): `name' expected, found `[]'
ERROR: [Thread pce] prof_node_text ->initialise: Argument 1 (any): `any' expected, found `prolog_predicate(type_ndarray:([])/3)'
ERROR: [Thread pce] prolog_predicate <-name: Argument 1 (name): `name' expected, found `[]'
ERROR: [Thread pce] prof_node_text ->initialise: Argument 1 (any): `any' expected, found `prolog_predicate(type_ndarray:([])/3)'
ERROR: [Thread pce] prolog_predicate <-name: Argument 1 (name): `name' expected, found `[]'
ERROR: [Thread pce] prof_node_text ->initialise: Argument 1 (any): `any' expected, found `prolog_predicate(type_ndarray:([])/3)'
ERROR: [Thread pce] prolog_predicate <-name: Argument 1 (name): `name' expected, found `[]'
% etc., etc.
and I have to kill the process.
So this is not exclusively related to atomic_list_concat but a predicate whose name is [] (a non-atom) clearly has wider issues.