From 30f222b837afae40fc239e3a70a4b6dccbafc110 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Tue, 16 May 2023 22:41:20 +0200 Subject: [PATCH 1/2] shorten gensym/2 --- src/lib/gensym.pl | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/lib/gensym.pl b/src/lib/gensym.pl index 92cd4d1f..86e7ad5b 100644 --- a/src/lib/gensym.pl +++ b/src/lib/gensym.pl @@ -19,13 +19,12 @@ gensym(Base, Unique) :- must_be(var, Unique), atom_si(Base), gensym_key(Base, BaseKey), - ( bb_get(BaseKey, UniqueID0) -> - UniqueID is UniqueID0 + 1, - bb_put(BaseKey, UniqueID), - append_id(Base, UniqueID, Unique) - ; bb_put(BaseKey, 1), - append_id(Base, 1, Unique) - ). + ( bb_get(BaseKey, UniqueID0) -> true + ; UniqueID0 = 0 + ), + UniqueID is UniqueID0 + 1, + append_id(Base, UniqueID, Unique), + bb_put(BaseKey, UniqueID). reset_gensym(Base) :- atom_si(Base), From 021c01dfd03699a62b556c893245dedbd6d126c1 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Tue, 16 May 2023 22:42:10 +0200 Subject: [PATCH 2/2] FIXED: correctly reset counter in reset_gensym/2 (#1807) Many thanks to @infradig for detecting this issue and suggesting this correction! --- src/lib/gensym.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/gensym.pl b/src/lib/gensym.pl index 86e7ad5b..272e68bd 100644 --- a/src/lib/gensym.pl +++ b/src/lib/gensym.pl @@ -28,4 +28,5 @@ gensym(Base, Unique) :- reset_gensym(Base) :- atom_si(Base), - bb_put(Base, 0). + gensym_key(Base, BaseKey), + bb_put(BaseKey, 0).