git.delta.rocks / jrsonnet / refs/commits / 953b3d0f77fd

difftreelog

doc: clarify string pooling error

lnlslqrmYaroslav Bolyukin2026-04-25parent: #69c0811.patch.diff
in: master

3 files changed

modifiedcrates/jrsonnet-evaluator/src/typed/conversions.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/typed/conversions.rs
+++ b/crates/jrsonnet-evaluator/src/typed/conversions.rs
@@ -5,23 +5,23 @@
 use jrsonnet_types::{ComplexValType, ValType};
 
 use crate::{
+	ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
 	arr::{ArrValue, BytesArray},
 	bail,
 	function::FuncVal,
 	typed::CheckType,
 	val::{IndexableVal, NumValue, StrValue, ThunkMapper},
-	ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
 };
 
 #[doc(hidden)]
 pub mod __typed_macro_prelude {
 	pub use ::jrsonnet_evaluator::{
+		IStr, ObjValue, ObjValueBuilder, State, Val,
 		error::{ErrorKind, Result as JrResult},
 		typed::{
 			CheckType, ComplexValType, FromUntyped, IntoUntyped, ParseTypedObj, SerializeTypedObj,
 			Typed,
 		},
-		IStr, ObjValue, ObjValueBuilder, State, Val,
 	};
 }
 pub use jrsonnet_macros::{FromUntyped, IntoUntyped, Typed};
modifiedcrates/jrsonnet-interner/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-interner/src/lib.rs
+++ b/crates/jrsonnet-interner/src/lib.rs
@@ -175,10 +175,9 @@
 				// destructor is called, but instead re-initialize the TLS with the empty pool.
 				// Allow non-pooled Drop in this case.
 				// https://github.com/CertainLach/jrsonnet/issues/98#issuecomment-1591624016
-				//
-				// However, if pool is not empty, most likely this is issue #113, and then I don't
-				// have any explainations for now.
-				assert!(pool.is_empty(), "received an unpooled string not during the program termination, please write any info regarding this crash to https://github.com/CertainLach/jrsonnet/issues/113, thanks!");
+				// Another cause might be that you have improperly used jrsonnet in multi-threaded environment:
+				// https://github.com/CertainLach/jrsonnet/issues/113
+				debug_assert!(pool.is_empty(), "if you have landed here - you most likely did something naughty with multi-threading. jrsonnet string pooling uses thread_local pool");
 			}
 		});
 	}
modifiedcrates/jrsonnet-rowan-parser/src/generated/nodes.rsdiffbeforeafterboth
33
4#![allow(non_snake_case, clippy::match_like_matches_macro)]4#![allow(non_snake_case, clippy::match_like_matches_macro)]
5use crate::{5use crate::{
6 ast::{support, AstChildren, AstNode, AstToken},
7 SyntaxKind::{self, *},6 SyntaxKind::{self, *},
8 SyntaxNode, SyntaxToken, T,7 SyntaxNode, SyntaxToken, T,
8 ast::{AstChildren, AstNode, AstToken, support},
9};9};
1010
11#[derive(Debug, Clone, PartialEq, Eq, Hash)]11#[derive(Debug, Clone, PartialEq, Eq, Hash)]