feat(3p/nix): remove External values feature
External values are only useful when using the plugin framework, which we are not interested in carrying forward.
Reverts commit 320659b0cd
Change-Id: Ib4929c349bbb33f16224fc674e94c7b7d5953c6a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1505
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
			
			
This commit is contained in:
		
							parent
							
								
									770034042a
								
							
						
					
					
						commit
						64f6bb6951
					
				
					 5 changed files with 10 additions and 113 deletions
				
			
		
							
								
								
									
										53
									
								
								third_party/nix/src/libexpr/value.hh
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								third_party/nix/src/libexpr/value.hh
									
										
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,7 @@ typedef enum { | |||
|   tBlackhole, | ||||
|   tPrimOp, | ||||
|   tPrimOpApp, | ||||
|   tExternal, | ||||
|   _reserved1,  // formerly tExternal
 | ||||
|   tFloat | ||||
| } ValueType; | ||||
| 
 | ||||
|  | @ -36,60 +36,10 @@ struct ExprLambda; | |||
| struct PrimOp; | ||||
| struct PrimOp; | ||||
| class Symbol; | ||||
| struct Pos; | ||||
| class EvalState; | ||||
| class XMLWriter; | ||||
| class JSONPlaceholder; | ||||
| 
 | ||||
| typedef int64_t NixInt; | ||||
| typedef double NixFloat; | ||||
| 
 | ||||
| /* External values must descend from ExternalValueBase, so that
 | ||||
|  * type-agnostic nix functions (e.g. showType) can be implemented | ||||
|  */ | ||||
| class ExternalValueBase { | ||||
|   friend std::ostream& operator<<(std::ostream& str, | ||||
|                                   const ExternalValueBase& v); | ||||
| 
 | ||||
|  protected: | ||||
|   /* Print out the value */ | ||||
|   virtual std::ostream& print(std::ostream& str) const = 0; | ||||
| 
 | ||||
|  public: | ||||
|   /* Return a simple string describing the type */ | ||||
|   virtual std::string showType() const = 0; | ||||
| 
 | ||||
|   /* Return a string to be used in builtins.typeOf */ | ||||
|   virtual std::string typeOf() const = 0; | ||||
| 
 | ||||
|   /* How much space does this value take up */ | ||||
|   virtual size_t valueSize(std::set<const void*>& seen) const = 0; | ||||
| 
 | ||||
|   /* Coerce the value to a string. Defaults to uncoercable, i.e. throws an
 | ||||
|    * error | ||||
|    */ | ||||
|   virtual std::string coerceToString(const Pos& pos, PathSet& context, | ||||
|                                      bool copyMore, bool copyToStore) const; | ||||
| 
 | ||||
|   /* Compare to another value of the same type. Defaults to uncomparable,
 | ||||
|    * i.e. always false. | ||||
|    */ | ||||
|   virtual bool operator==(const ExternalValueBase& b) const; | ||||
| 
 | ||||
|   /* Print the value as JSON. Defaults to unconvertable, i.e. throws an error */ | ||||
|   virtual void printValueAsJSON(EvalState& state, bool strict, | ||||
|                                 JSONPlaceholder& out, PathSet& context) const; | ||||
| 
 | ||||
|   /* Print the value as XML. Defaults to unevaluated */ | ||||
|   virtual void printValueAsXML(EvalState& state, bool strict, bool location, | ||||
|                                XMLWriter& doc, PathSet& context, | ||||
|                                PathSet& drvsSeen) const; | ||||
| 
 | ||||
|   virtual ~ExternalValueBase(){}; | ||||
| }; | ||||
| 
 | ||||
| std::ostream& operator<<(std::ostream& str, const ExternalValueBase& v); | ||||
| 
 | ||||
| // Forward declaration of Value is required because the following
 | ||||
| // types are mutually recursive.
 | ||||
| //
 | ||||
|  | @ -155,7 +105,6 @@ struct Value : public gc { | |||
|     NixLambda lambda; | ||||
|     PrimOp* primOp; | ||||
|     NixPrimOpApp primOpApp; | ||||
|     ExternalValueBase* external; | ||||
|     NixFloat fpoint; | ||||
|   }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue