refactor(tvix/eval): Box the strings in CatchableErrorKind
These strings are allocated once and never changed, so they don't need the additional overhead of a capacity given by String - instead, we can use Box<str> and save on 16 bytes for each of these, *and* for each Value since this is currently the largest Value variant. Change-Id: I3e5cb070fe6c5bf82114c92d04f6bae775663a7e Reviewed-on: https://cl.tvl.fyi/c/depot/+/10796 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									5d2ae840f1
								
							
						
					
					
						commit
						5d72d3980f
					
				
					 3 changed files with 14 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -476,7 +476,7 @@ mod pure_builtins {
 | 
			
		|||
    async fn builtin_filterSource(_co: GenCo, #[lazy] _e: Value) -> Result<Value, ErrorKind> {
 | 
			
		||||
        // TODO: implement for nixpkgs compatibility
 | 
			
		||||
        Ok(Value::Catchable(CatchableErrorKind::UnimplementedFeature(
 | 
			
		||||
            "filterSource".to_string(),
 | 
			
		||||
            "filterSource".into(),
 | 
			
		||||
        )))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -695,7 +695,7 @@ mod pure_builtins {
 | 
			
		|||
    ) -> Result<Value, ErrorKind> {
 | 
			
		||||
        // FIXME: propagate contexts here.
 | 
			
		||||
        Ok(Value::Catchable(CatchableErrorKind::UnimplementedFeature(
 | 
			
		||||
            "hashString".to_string(),
 | 
			
		||||
            "hashString".into(),
 | 
			
		||||
        )))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1392,7 +1392,7 @@ mod pure_builtins {
 | 
			
		|||
        // TODO(sterni): coerces to string
 | 
			
		||||
        // We do not care about the context here explicitly.
 | 
			
		||||
        Ok(Value::Catchable(CatchableErrorKind::Throw(
 | 
			
		||||
            message.to_contextful_str()?.to_string(),
 | 
			
		||||
            message.to_contextful_str()?.to_string().into(),
 | 
			
		||||
        )))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1531,9 +1531,7 @@ pub fn pure_builtins() -> Vec<(&'static str, Value)> {
 | 
			
		|||
    // TODO: implement for nixpkgs compatibility
 | 
			
		||||
    result.push((
 | 
			
		||||
        "__curPos",
 | 
			
		||||
        Value::Catchable(CatchableErrorKind::UnimplementedFeature(
 | 
			
		||||
            "__curPos".to_string(),
 | 
			
		||||
        )),
 | 
			
		||||
        Value::Catchable(CatchableErrorKind::UnimplementedFeature("__curPos".into())),
 | 
			
		||||
    ));
 | 
			
		||||
 | 
			
		||||
    result
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue