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

difftreelog

doc: clarify string pooling error

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

3 files changed

modifiedcrates/jrsonnet-evaluator/src/typed/conversions.rsdiffbeforeafterboth
5use jrsonnet_types::{ComplexValType, ValType};5use jrsonnet_types::{ComplexValType, ValType};
66
7use crate::{7use crate::{
8 ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
8 arr::{ArrValue, BytesArray},9 arr::{ArrValue, BytesArray},
9 bail,10 bail,
10 function::FuncVal,11 function::FuncVal,
11 typed::CheckType,12 typed::CheckType,
12 val::{IndexableVal, NumValue, StrValue, ThunkMapper},13 val::{IndexableVal, NumValue, StrValue, ThunkMapper},
13 ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
14};14};
1515
16#[doc(hidden)]16#[doc(hidden)]
17pub mod __typed_macro_prelude {17pub mod __typed_macro_prelude {
18 pub use ::jrsonnet_evaluator::{18 pub use ::jrsonnet_evaluator::{
19 IStr, ObjValue, ObjValueBuilder, State, Val,
19 error::{ErrorKind, Result as JrResult},20 error::{ErrorKind, Result as JrResult},
20 typed::{21 typed::{
21 CheckType, ComplexValType, FromUntyped, IntoUntyped, ParseTypedObj, SerializeTypedObj,22 CheckType, ComplexValType, FromUntyped, IntoUntyped, ParseTypedObj, SerializeTypedObj,
22 Typed,23 Typed,
23 },24 },
24 IStr, ObjValue, ObjValueBuilder, State, Val,
25 };25 };
26}26}
27pub use jrsonnet_macros::{FromUntyped, IntoUntyped, Typed};27pub 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
--- a/crates/jrsonnet-rowan-parser/src/generated/nodes.rs
+++ b/crates/jrsonnet-rowan-parser/src/generated/nodes.rs
@@ -3,9 +3,9 @@
 
 #![allow(non_snake_case, clippy::match_like_matches_macro)]
 use crate::{
-	ast::{support, AstChildren, AstNode, AstToken},
 	SyntaxKind::{self, *},
 	SyntaxNode, SyntaxToken, T,
+	ast::{AstChildren, AstNode, AstToken, support},
 };
 
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]