vc/v_win.c

98556 lines
4.5 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#define V_COMMIT_HASH "e9aca1256"
#ifndef V_COMMIT_HASH
#define V_COMMIT_HASH "460c2ee77"
#endif
#ifndef V_CURRENT_COMMIT_HASH
#define V_CURRENT_COMMIT_HASH "e9aca12"
#endif
#define V_USE_SIGNAL_H
// V comptime_definitions:
#define __VTHREADS__ (1)
#define _VAUTOFREE (0)
// V typedefs:
typedef struct IError IError;
typedef struct rand__PRNG rand__PRNG;
typedef struct hash__Hasher hash__Hasher;
typedef struct hash__Hash32er hash__Hash32er;
typedef struct hash__Hash64er hash__Hash64er;
typedef struct v__ast__walker__Visitor v__ast__walker__Visitor;
typedef struct none none;
typedef struct v__ast__TypeDecl v__ast__TypeDecl;
typedef struct v__ast__Expr v__ast__Expr;
typedef struct v__ast__Stmt v__ast__Stmt;
typedef struct v__ast__ScopeObject v__ast__ScopeObject;
typedef struct v__ast__Node v__ast__Node;
typedef struct v__ast__ComptTimeConstValue v__ast__ComptTimeConstValue;
typedef struct v__ast__IdentInfo v__ast__IdentInfo;
typedef struct v__ast__AsmArg v__ast__AsmArg;
typedef struct v__ast__TypeInfo v__ast__TypeInfo;
// BEGIN_multi_return_typedefs
typedef struct multi_return_u32_u32 multi_return_u32_u32;
typedef struct multi_return_u32_u32_u32 multi_return_u32_u32_u32;
typedef struct multi_return_strconv__ParserState_strconv__PrepNumber multi_return_strconv__ParserState_strconv__PrepNumber;
typedef struct multi_return_u64_int multi_return_u64_int;
typedef struct multi_return_strconv__Dec32_bool multi_return_strconv__Dec32_bool;
typedef struct multi_return_strconv__Dec64_bool multi_return_strconv__Dec64_bool;
typedef struct multi_return_string_int multi_return_string_int;
typedef struct multi_return_int_bool multi_return_int_bool;
typedef struct multi_return_int_int multi_return_int_int;
typedef struct multi_return_ref_v__pref__Preferences_string multi_return_ref_v__pref__Preferences_string;
typedef struct multi_return_string_string multi_return_string_string;
typedef struct multi_return_u64_u64 multi_return_u64_u64;
typedef struct multi_return_f64_int multi_return_f64_int;
typedef struct multi_return_f64_f64 multi_return_f64_f64;
typedef struct multi_return_int_int_int multi_return_int_int_int;
typedef struct multi_return_int_int_int_int_i64_bool multi_return_int_int_int_int_i64_bool;
typedef struct multi_return_Array_string_int multi_return_Array_string_int;
typedef struct multi_return_Array_string_v__vmod__ModFileAndFolder multi_return_Array_string_v__vmod__ModFileAndFolder;
typedef struct multi_return_string_bool multi_return_string_bool;
typedef struct multi_return_v__ast__Fn_Array_v__ast__Type multi_return_v__ast__Fn_Array_v__ast__Type;
typedef struct multi_return_v__ast__StructField_Array_v__ast__Type multi_return_v__ast__StructField_Array_v__ast__Type;
typedef struct multi_return_ref_v__ast__TypeSymbol_int multi_return_ref_v__ast__TypeSymbol_int;
typedef struct multi_return_bool_bool_int multi_return_bool_bool_int;
typedef struct multi_return_string_v__token__Pos multi_return_string_v__token__Pos;
typedef struct multi_return_bool_int_int multi_return_bool_int_int;
typedef struct multi_return_Array_v__ast__Param_bool_bool multi_return_Array_v__ast__Param_bool_bool;
typedef struct multi_return_Array_v__ast__Expr_Array_v__ast__Comment multi_return_Array_v__ast__Expr_Array_v__ast__Comment;
typedef struct multi_return_ref_v__ast__File_Array_v__vet__Error multi_return_ref_v__ast__File_Array_v__vet__Error;
typedef struct multi_return_Array_v__ast__Type_Array_string multi_return_Array_v__ast__Type_Array_string;
typedef struct multi_return_Map_string_v__ast__FnDecl_Map_string_v__ast__ConstField_Map_string_v__ast__GlobalField multi_return_Map_string_v__ast__FnDecl_Map_string_v__ast__ConstField_Map_string_v__ast__GlobalField;
typedef struct multi_return_bool_Array_string multi_return_bool_Array_string;
typedef struct multi_return_Array_string_Array_string_Array_string multi_return_Array_string_Array_string_Array_string;
typedef struct multi_return_string_string_string_string multi_return_string_string_string_string;
typedef struct multi_return_int_string_string_string multi_return_int_string_string_string;
typedef struct multi_return_Array_string_Array_string_Array_bool multi_return_Array_string_Array_string_Array_bool;
typedef struct multi_return_u64_string multi_return_u64_string;
// END_multi_return_typedefs
typedef struct strconv__BF_param strconv__BF_param;
typedef struct strconv__PrepNumber strconv__PrepNumber;
typedef struct strconv__Dec32 strconv__Dec32;
typedef struct strconv__Dec64 strconv__Dec64;
typedef struct strconv__Uint128 strconv__Uint128;
typedef union strconv__Uf32 strconv__Uf32;
typedef union strconv__Uf64 strconv__Uf64;
typedef union strconv__Float64u strconv__Float64u;
typedef union strconv__Float32u strconv__Float32u;
typedef struct array array;
typedef struct VCastTypeIndexName VCastTypeIndexName;
typedef struct VAssertMetaInfo VAssertMetaInfo;
typedef struct MethodArgs MethodArgs;
typedef struct FunctionData FunctionData;
typedef struct FieldData FieldData;
typedef struct StructAttribute StructAttribute;
typedef struct SymbolInfo SymbolInfo;
typedef struct SymbolInfoContainer SymbolInfoContainer;
typedef struct Line64 Line64;
typedef struct ExceptionRecord ExceptionRecord;
typedef struct ContextRecord ContextRecord;
typedef struct ExceptionPointers ExceptionPointers;
typedef struct DenseArray DenseArray;
typedef struct map map;
typedef struct Error Error;
typedef struct MessageError MessageError;
typedef struct None__ None__;
typedef struct Option Option;
typedef struct _option _option;
typedef struct _result _result;
typedef struct VMemoryBlock VMemoryBlock;
typedef struct SortedMap SortedMap;
typedef struct mapnode mapnode;
typedef struct string string;
typedef struct RepIndex RepIndex;
typedef union StrIntpMem StrIntpMem;
typedef struct StrIntpCgenData StrIntpCgenData;
typedef struct StrIntpData StrIntpData;
typedef struct strings__textscanner__TextScanner strings__textscanner__TextScanner;
typedef struct v__token__KeywordsMatcher v__token__KeywordsMatcher;
typedef struct v__token__WIndex v__token__WIndex;
typedef struct v__token__Pos v__token__Pos;
typedef struct v__token__Token v__token__Token;
typedef struct time__TimeParseError time__TimeParseError;
typedef struct time__StopWatchOptions time__StopWatchOptions;
typedef struct time__StopWatch time__StopWatch;
typedef struct time__Time time__Time;
typedef struct time__SystemTime time__SystemTime;
typedef struct v__dotgraph__DotGraph v__dotgraph__DotGraph;
typedef struct v__dotgraph__NewNodeConfig v__dotgraph__NewNodeConfig;
typedef struct v__dotgraph__NewEdgeConfig v__dotgraph__NewEdgeConfig;
typedef struct rand__buffer__PRNGBuffer rand__buffer__PRNGBuffer;
typedef struct flag__Flag flag__Flag;
typedef struct flag__UnkownFlagError flag__UnkownFlagError;
typedef struct flag__ArgsCountError flag__ArgsCountError;
typedef struct flag__FlagParser flag__FlagParser;
typedef struct semver__RawVersion semver__RawVersion;
typedef struct semver__Comparator semver__Comparator;
typedef struct semver__ComparatorSet semver__ComparatorSet;
typedef struct semver__Range semver__Range;
typedef struct semver__InvalidComparatorFormatError semver__InvalidComparatorFormatError;
typedef struct semver__Version semver__Version;
typedef struct semver__EmptyInputError semver__EmptyInputError;
typedef struct semver__InvalidVersionFormatError semver__InvalidVersionFormatError;
typedef struct os__File os__File;
typedef struct os__FileInfo os__FileInfo;
typedef struct os__FileNotOpenedError os__FileNotOpenedError;
typedef struct os__SizeOfTypeIs0Error os__SizeOfTypeIs0Error;
typedef struct os__FilePermission os__FilePermission;
typedef struct os__FileMode os__FileMode;
typedef struct os__Result os__Result;
typedef struct os__Command os__Command;
typedef struct os__ExecutableNotFoundError os__ExecutableNotFoundError;
typedef struct os__Uname os__Uname;
typedef struct os__Filetime os__Filetime;
typedef struct os__Win32finddata os__Win32finddata;
typedef struct os__ProcessInformation os__ProcessInformation;
typedef struct os__StartupInfo os__StartupInfo;
typedef struct os__SecurityAttributes os__SecurityAttributes;
typedef struct os__ExceptionRecord os__ExceptionRecord;
typedef struct os__ContextRecord os__ContextRecord;
typedef struct os__ExceptionPointers os__ExceptionPointers;
typedef struct os__Process os__Process;
typedef struct os__WProcess os__WProcess;
typedef struct v__errors__Error v__errors__Error;
typedef struct v__errors__Warning v__errors__Warning;
typedef struct v__errors__Notice v__errors__Notice;
typedef struct v__depgraph__DepGraphNode v__depgraph__DepGraphNode;
typedef struct v__depgraph__DepGraph v__depgraph__DepGraph;
typedef struct v__depgraph__OrderedDepMap v__depgraph__OrderedDepMap;
typedef struct v__depgraph__NodeNames v__depgraph__NodeNames;
typedef struct v__vet__Error v__vet__Error;
typedef struct term__Coord term__Coord;
typedef struct v__vcache__CacheManager v__vcache__CacheManager;
typedef struct v__vmod__Manifest v__vmod__Manifest;
typedef struct v__vmod__Scanner v__vmod__Scanner;
typedef struct v__vmod__Parser v__vmod__Parser;
typedef struct v__vmod__Token v__vmod__Token;
typedef struct v__vmod__ModFileAndFolder v__vmod__ModFileAndFolder;
typedef struct v__vmod__ModFileCacher v__vmod__ModFileCacher;
typedef struct v__cflag__CFlag v__cflag__CFlag;
typedef struct rand__config__PRNGConfigStruct rand__config__PRNGConfigStruct;
typedef struct rand__config__NormalConfigStruct rand__config__NormalConfigStruct;
typedef struct rand__config__ShuffleConfigStruct rand__config__ShuffleConfigStruct;
typedef struct rand__wyrand__WyRandRNG rand__wyrand__WyRandRNG;
typedef struct v__pkgconfig__Main v__pkgconfig__Main;
typedef struct v__pkgconfig__MainOptions v__pkgconfig__MainOptions;
typedef struct v__pkgconfig__Options v__pkgconfig__Options;
typedef struct v__pkgconfig__PkgConfig v__pkgconfig__PkgConfig;
typedef struct v__pref__Preferences v__pref__Preferences;
typedef struct sync__Subscription sync__Subscription;
typedef struct sync__Channel sync__Channel;
typedef struct sync__ManyTimes sync__ManyTimes;
typedef struct sync__Once sync__Once;
typedef struct sync__Mutex sync__Mutex;
typedef struct sync__RwMutex sync__RwMutex;
typedef struct sync__Semaphore sync__Semaphore;
typedef struct sync__WaitGroup sync__WaitGroup;
typedef struct v__util__EManager v__util__EManager;
typedef struct v__util__LinesCache v__util__LinesCache;
typedef struct v__util__Possibility v__util__Possibility;
typedef struct v__util__Suggestion v__util__Suggestion;
typedef struct v__util__Surrounder v__util__Surrounder;
typedef struct v__util__Timers v__util__Timers;
typedef struct v__util__TimerParams v__util__TimerParams;
typedef struct v__util__SourceCache v__util__SourceCache;
typedef struct sync__pool__PoolProcessor sync__pool__PoolProcessor;
typedef struct sync__pool__PoolProcessorConfig sync__pool__PoolProcessorConfig;
typedef struct v__ast__TypeNode v__ast__TypeNode;
typedef struct v__ast__ComptimeType v__ast__ComptimeType;
typedef struct v__ast__EmptyExpr v__ast__EmptyExpr;
typedef struct v__ast__EmptyStmt v__ast__EmptyStmt;
typedef struct v__ast__EmptyNode v__ast__EmptyNode;
typedef struct v__ast__Block v__ast__Block;
typedef struct v__ast__ExprStmt v__ast__ExprStmt;
typedef struct v__ast__IntegerLiteral v__ast__IntegerLiteral;
typedef struct v__ast__FloatLiteral v__ast__FloatLiteral;
typedef struct v__ast__StringLiteral v__ast__StringLiteral;
typedef struct v__ast__StringInterLiteral v__ast__StringInterLiteral;
typedef struct v__ast__CharLiteral v__ast__CharLiteral;
typedef struct v__ast__BoolLiteral v__ast__BoolLiteral;
typedef struct v__ast__SelectorExpr v__ast__SelectorExpr;
typedef struct v__ast__Module v__ast__Module;
typedef struct v__ast__StructField v__ast__StructField;
typedef struct v__ast__ConstField v__ast__ConstField;
typedef struct v__ast__ConstDecl v__ast__ConstDecl;
typedef struct v__ast__StructDecl v__ast__StructDecl;
typedef struct v__ast__Embed v__ast__Embed;
typedef struct v__ast__InterfaceEmbedding v__ast__InterfaceEmbedding;
typedef struct v__ast__InterfaceDecl v__ast__InterfaceDecl;
typedef struct v__ast__StructInitField v__ast__StructInitField;
typedef struct v__ast__StructInitEmbed v__ast__StructInitEmbed;
typedef struct v__ast__StructInit v__ast__StructInit;
typedef struct v__ast__Import v__ast__Import;
typedef struct v__ast__ImportSymbol v__ast__ImportSymbol;
typedef struct v__ast__AnonFn v__ast__AnonFn;
typedef struct v__ast__FnDecl v__ast__FnDecl;
typedef struct v__ast__BranchStmt v__ast__BranchStmt;
typedef struct v__ast__CallExpr v__ast__CallExpr;
typedef struct v__ast__CallArg v__ast__CallArg;
typedef struct v__ast__Return v__ast__Return;
typedef struct v__ast__Var v__ast__Var;
typedef struct v__ast__ScopeStructField v__ast__ScopeStructField;
typedef struct v__ast__GlobalField v__ast__GlobalField;
typedef struct v__ast__GlobalDecl v__ast__GlobalDecl;
typedef struct v__ast__EmbeddedFile v__ast__EmbeddedFile;
typedef struct v__ast__File v__ast__File;
typedef struct v__ast__IdentFn v__ast__IdentFn;
typedef struct v__ast__IdentVar v__ast__IdentVar;
typedef struct v__ast__Ident v__ast__Ident;
typedef struct v__ast__InfixExpr v__ast__InfixExpr;
typedef struct v__ast__PostfixExpr v__ast__PostfixExpr;
typedef struct v__ast__PrefixExpr v__ast__PrefixExpr;
typedef struct v__ast__IndexExpr v__ast__IndexExpr;
typedef struct v__ast__IfExpr v__ast__IfExpr;
typedef struct v__ast__IfBranch v__ast__IfBranch;
typedef struct v__ast__UnsafeExpr v__ast__UnsafeExpr;
typedef struct v__ast__LockExpr v__ast__LockExpr;
typedef struct v__ast__MatchExpr v__ast__MatchExpr;
typedef struct v__ast__MatchBranch v__ast__MatchBranch;
typedef struct v__ast__SelectExpr v__ast__SelectExpr;
typedef struct v__ast__SelectBranch v__ast__SelectBranch;
typedef struct v__ast__ComptimeFor v__ast__ComptimeFor;
typedef struct v__ast__ForStmt v__ast__ForStmt;
typedef struct v__ast__ForInStmt v__ast__ForInStmt;
typedef struct v__ast__ForCStmt v__ast__ForCStmt;
typedef struct v__ast__HashStmt v__ast__HashStmt;
typedef struct v__ast__AssignStmt v__ast__AssignStmt;
typedef struct v__ast__AsCast v__ast__AsCast;
typedef struct v__ast__EnumVal v__ast__EnumVal;
typedef struct v__ast__EnumField v__ast__EnumField;
typedef struct v__ast__EnumDecl v__ast__EnumDecl;
typedef struct v__ast__AliasTypeDecl v__ast__AliasTypeDecl;
typedef struct v__ast__SumTypeDecl v__ast__SumTypeDecl;
typedef struct v__ast__FnTypeDecl v__ast__FnTypeDecl;
typedef struct v__ast__DeferStmt v__ast__DeferStmt;
typedef struct v__ast__ParExpr v__ast__ParExpr;
typedef struct v__ast__GoExpr v__ast__GoExpr;
typedef struct v__ast__GotoLabel v__ast__GotoLabel;
typedef struct v__ast__GotoStmt v__ast__GotoStmt;
typedef struct v__ast__ArrayInit v__ast__ArrayInit;
typedef struct v__ast__ArrayDecompose v__ast__ArrayDecompose;
typedef struct v__ast__ChanInit v__ast__ChanInit;
typedef struct v__ast__MapInit v__ast__MapInit;
typedef struct v__ast__RangeExpr v__ast__RangeExpr;
typedef struct v__ast__CastExpr v__ast__CastExpr;
typedef struct v__ast__AsmStmt v__ast__AsmStmt;
typedef struct v__ast__AsmTemplate v__ast__AsmTemplate;
typedef struct v__ast__AsmRegister v__ast__AsmRegister;
typedef struct v__ast__AsmDisp v__ast__AsmDisp;
typedef struct v__ast__AsmAlias v__ast__AsmAlias;
typedef struct v__ast__AsmAddressing v__ast__AsmAddressing;
typedef struct v__ast__AsmClobbered v__ast__AsmClobbered;
typedef struct v__ast__AsmIO v__ast__AsmIO;
typedef struct v__ast__AssertStmt v__ast__AssertStmt;
typedef struct v__ast__IfGuardVar v__ast__IfGuardVar;
typedef struct v__ast__IfGuardExpr v__ast__IfGuardExpr;
typedef struct v__ast__OrExpr v__ast__OrExpr;
typedef struct v__ast__Assoc v__ast__Assoc;
typedef struct v__ast__SizeOf v__ast__SizeOf;
typedef struct v__ast__IsRefType v__ast__IsRefType;
typedef struct v__ast__OffsetOf v__ast__OffsetOf;
typedef struct v__ast__Likely v__ast__Likely;
typedef struct v__ast__TypeOf v__ast__TypeOf;
typedef struct v__ast__DumpExpr v__ast__DumpExpr;
typedef struct v__ast__Comment v__ast__Comment;
typedef struct v__ast__ConcatExpr v__ast__ConcatExpr;
typedef struct v__ast__AtExpr v__ast__AtExpr;
typedef struct v__ast__ComptimeSelector v__ast__ComptimeSelector;
typedef struct v__ast__ComptimeCall v__ast__ComptimeCall;
typedef struct v__ast__None v__ast__None;
typedef struct v__ast__SqlStmt v__ast__SqlStmt;
typedef struct v__ast__SqlStmtLine v__ast__SqlStmtLine;
typedef struct v__ast__SqlExpr v__ast__SqlExpr;
typedef struct v__ast__NodeError v__ast__NodeError;
typedef struct v__ast__CTempVar v__ast__CTempVar;
typedef struct v__ast__Attr v__ast__Attr;
typedef struct v__ast__Scope v__ast__Scope;
typedef struct v__ast__Table v__ast__Table;
typedef struct v__ast__Fn v__ast__Fn;
typedef struct v__ast__Param v__ast__Param;
typedef struct v__ast__GetEmbedsOptions v__ast__GetEmbedsOptions;
typedef struct v__ast__TypeSymbol v__ast__TypeSymbol;
typedef struct v__ast__MultiReturn v__ast__MultiReturn;
typedef struct v__ast__FnType v__ast__FnType;
typedef struct v__ast__Struct v__ast__Struct;
typedef struct v__ast__GenericInst v__ast__GenericInst;
typedef struct v__ast__Interface v__ast__Interface;
typedef struct v__ast__Enum v__ast__Enum;
typedef struct v__ast__Alias v__ast__Alias;
typedef struct v__ast__Aggregate v__ast__Aggregate;
typedef struct v__ast__Array v__ast__Array;
typedef struct v__ast__ArrayFixed v__ast__ArrayFixed;
typedef struct v__ast__Chan v__ast__Chan;
typedef struct v__ast__Thread v__ast__Thread;
typedef struct v__ast__Map v__ast__Map;
typedef struct v__ast__SumType v__ast__SumType;
typedef struct v__ast__FnSignatureOpts v__ast__FnSignatureOpts;
typedef struct v__checker__Checker v__checker__Checker;
typedef struct v__transformer__KeyVal v__transformer__KeyVal;
typedef struct v__transformer__IndexState v__transformer__IndexState;
typedef struct v__transformer__Transformer v__transformer__Transformer;
typedef struct v__markused__Walker v__markused__Walker;
typedef struct v__gen__c__UnsupportedAssertCtempTransform v__gen__c__UnsupportedAssertCtempTransform;
typedef struct v__gen__c__StrType v__gen__c__StrType;
typedef struct v__gen__c__Gen v__gen__c__Gen;
typedef struct v__gen__c__GlobalConstDef v__gen__c__GlobalConstDef;
typedef struct v__gen__c__SumtypeCastingFn v__gen__c__SumtypeCastingFn;
typedef struct v__gen__c__GenSafeIntegerCfg v__gen__c__GenSafeIntegerCfg;
typedef struct v__gen__c__ProfileCounterMeta v__gen__c__ProfileCounterMeta;
typedef struct v__gen__c__Type v__gen__c__Type;
typedef struct v__scanner__Scanner v__scanner__Scanner;
typedef struct v__ast__walker__Inspector v__ast__walker__Inspector;
typedef struct v__parser__ReceiverParsingInfo v__parser__ReceiverParsingInfo;
typedef struct v__parser__Parser v__parser__Parser;
typedef struct v__parser__EatCommentsConfig v__parser__EatCommentsConfig;
typedef struct v__callgraph__Mapper v__callgraph__Mapper;
typedef struct v__builder__Builder v__builder__Builder;
typedef struct v__builder__FunctionRedefinition v__builder__FunctionRedefinition;
typedef struct v__builder__CcompilerOptions v__builder__CcompilerOptions;
typedef struct v__builder__MsvcResult v__builder__MsvcResult;
typedef struct v__builder__WindowsKit v__builder__WindowsKit;
typedef struct v__builder__VsInstallation v__builder__VsInstallation;
typedef struct v__builder__MsvcStringFlags v__builder__MsvcStringFlags;
typedef struct _option_int _option_int;
typedef struct _option_f64 _option_f64;
typedef struct _option_u64 _option_u64;
typedef struct _option_i64 _option_i64;
typedef struct _option_rune _option_rune;
typedef struct _option_string _option_string;
typedef struct _option_u8 _option_u8;
typedef struct _option_voidptr _option_voidptr;
typedef struct _option_v__token__Kind _option_v__token__Kind;
typedef struct _option_time__Time _option_time__Time;
typedef struct _option_multi_return_int_int_int _option_multi_return_int_int_int;
typedef struct _option_multi_return_int_int_int_int_i64_bool _option_multi_return_int_int_int_int_i64_bool;
typedef struct _option_bool _option_bool;
typedef struct _option_void _option_void;
typedef struct _option_flag__Flag _option_flag__Flag;
typedef struct _option_Array_string _option_Array_string;
typedef struct _option_semver__Range _option_semver__Range;
typedef struct _option_semver__Version _option_semver__Version;
typedef struct _option_semver__ComparatorSet _option_semver__ComparatorSet;
typedef struct _option_semver__Comparator _option_semver__Comparator;
typedef struct _option_os__File _option_os__File;
typedef struct _option_FILE_ptr _option_FILE_ptr;
typedef struct _option_Array_u8 _option_Array_u8;
typedef struct _option_os__SignalHandler _option_os__SignalHandler;
typedef struct _option_term__Coord _option_term__Coord;
typedef struct _option_v__vmod__Manifest _option_v__vmod__Manifest;
typedef struct _option_multi_return_Array_string_int _option_multi_return_Array_string_int;
typedef struct _option_v__pkgconfig__PkgConfig_ptr _option_v__pkgconfig__PkgConfig_ptr;
typedef struct _option_v__pkgconfig__Main_ptr _option_v__pkgconfig__Main_ptr;
typedef struct _option_u32 _option_u32;
typedef struct _option_f32 _option_f32;
typedef struct _option_multi_return_f64_f64 _option_multi_return_f64_f64;
typedef struct _option_v__pref__OS _option_v__pref__OS;
typedef struct _option_v__pref__Arch _option_v__pref__Arch;
typedef struct _option_v__pref__Backend _option_v__pref__Backend;
typedef struct _option_time__StopWatch _option_time__StopWatch;
typedef struct _option_v__ast__Ident _option_v__ast__Ident;
typedef struct _option_v__ast__Attr _option_v__ast__Attr;
typedef struct _option_i8 _option_i8;
typedef struct _option_i16 _option_i16;
typedef struct _option_u16 _option_u16;
typedef struct _option_v__ast__ComptTimeConstValue _option_v__ast__ComptTimeConstValue;
typedef struct _option_v__ast__ScopeObject _option_v__ast__ScopeObject;
typedef struct _option_v__ast__ScopeStructField _option_v__ast__ScopeStructField;
typedef struct _option_v__ast__Var_ptr _option_v__ast__Var_ptr;
typedef struct _option_v__ast__GlobalField_ptr _option_v__ast__GlobalField_ptr;
typedef struct _option_v__ast__ConstField_ptr _option_v__ast__ConstField_ptr;
typedef struct _option_v__ast__Fn _option_v__ast__Fn;
typedef struct _option_multi_return_v__ast__Fn_Array_v__ast__Type _option_multi_return_v__ast__Fn_Array_v__ast__Type;
typedef struct _option_v__ast__StructField _option_v__ast__StructField;
typedef struct _option_multi_return_v__ast__StructField_Array_v__ast__Type _option_multi_return_v__ast__StructField_Array_v__ast__Type;
typedef struct _option_v__ast__TypeSymbol_ptr _option_v__ast__TypeSymbol_ptr;
typedef struct _option_Array_Array_v__ast__Type _option_Array_Array_v__ast__Type;
typedef struct _option_v__ast__Type _option_v__ast__Type;
typedef struct _option_v__ast__InterfaceDecl _option_v__ast__InterfaceDecl;
typedef struct _option_v__ast__EnumDecl _option_v__ast__EnumDecl;
typedef struct _option_v__ast__Expr _option_v__ast__Expr;
typedef struct _option_v__ast__Param _option_v__ast__Param;
typedef struct _option_Array_v__ast__Type _option_Array_v__ast__Type;
typedef struct _option_v__ast__ConstField _option_v__ast__ConstField;
typedef struct _option_v__ast__GlobalField _option_v__ast__GlobalField;
typedef struct _option_v__ast__FnDecl _option_v__ast__FnDecl;
typedef struct _option_v__gen__c__GlobalConstDef _option_v__gen__c__GlobalConstDef;
typedef struct _option_v__ast__Stmt_ptr _option_v__ast__Stmt_ptr;
typedef struct _option_v__scanner__Scanner_ptr _option_v__scanner__Scanner_ptr;
typedef struct _option_v__builder__MsvcResult _option_v__builder__MsvcResult;
typedef struct _option_v__builder__WindowsKit _option_v__builder__WindowsKit;
typedef struct _option_v__builder__VsInstallation _option_v__builder__VsInstallation;
typedef struct __shared__Array_string __shared__Array_string;
typedef struct __shared__Map_string_bool __shared__Map_string_bool;
// V cheaders:
// Generated by the V compiler
#if defined(__TINYC__) && defined(__has_include)
// tcc does not support has_include properly yet, turn it off completely
#undef __has_include
#endif
#if defined(__has_include)
#if __has_include(<inttypes.h>)
#include <inttypes.h>
#else
#error VERROR_MESSAGE The C compiler can not find <inttypes.h>. Please install build-essentials
#endif
#else
#include <inttypes.h>
#endif
#if defined(__has_include)
#if __has_include(<stddef.h>)
#include <stddef.h>
#else
#error VERROR_MESSAGE The C compiler can not find <stddef.h>. Please install build-essentials
#endif
#else
#include <stddef.h>
#endif
//================================== builtin types ================================*/
typedef int64_t i64;
typedef int16_t i16;
typedef int8_t i8;
typedef uint64_t u64;
typedef uint32_t u32;
typedef uint8_t u8;
typedef uint16_t u16;
//typedef uint8_t byte;
typedef uint32_t rune;
typedef size_t usize;
typedef ptrdiff_t isize;
#ifndef VNOFLOAT
typedef float f32;
typedef double f64;
#else
typedef int32_t f32;
typedef int64_t f64;
#endif
typedef int64_t int_literal;
#ifndef VNOFLOAT
typedef double float_literal;
#else
typedef int64_t float_literal;
#endif
typedef unsigned char* byteptr;
typedef void* voidptr;
typedef char* charptr;
typedef u8 array_fixed_byte_300 [300];
typedef struct sync__Channel* chan;
#ifndef __cplusplus
#ifndef bool
#ifdef CUSTOM_DEFINE_4bytebool
typedef int bool;
#else
typedef u8 bool;
#endif
#define true 1
#define false 0
#endif
#endif
typedef u64 (*MapHashFn)(voidptr);
typedef bool (*MapEqFn)(voidptr, voidptr);
typedef void (*MapCloneFn)(voidptr, voidptr);
typedef void (*MapFreeFn)(voidptr);
//============================== HELPER C MACROS =============================*/
// _SLIT0 is used as NULL string for literal arguments
// `"" s` is used to enforce a string literal argument
#define _SLIT0 (string){.str=(byteptr)(""), .len=0, .is_lit=1}
#define _SLIT(s) ((string){.str=(byteptr)("" s), .len=(sizeof(s)-1), .is_lit=1})
#define _SLEN(s, n) ((string){.str=(byteptr)("" s), .len=n, .is_lit=1})
// take the address of an rvalue
#define ADDR(type, expr) (&((type[]){expr}[0]))
// copy something to the heap
#define HEAP(type, expr) ((type*)memdup((void*)&((type[]){expr}[0]), sizeof(type)))
#define HEAP_noscan(type, expr) ((type*)memdup_noscan((void*)&((type[]){expr}[0]), sizeof(type)))
#define _PUSH_MANY(arr, val, tmp, tmp_typ) {tmp_typ tmp = (val); array_push_many(arr, tmp.data, tmp.len);}
#define _PUSH_MANY_noscan(arr, val, tmp, tmp_typ) {tmp_typ tmp = (val); array_push_many_noscan(arr, tmp.data, tmp.len);}
// unsigned/signed comparisons
static inline bool _us32_gt(uint32_t a, int32_t b) { return a > INT32_MAX || (int32_t)a > b; }
static inline bool _us32_ge(uint32_t a, int32_t b) { return a >= INT32_MAX || (int32_t)a >= b; }
static inline bool _us32_eq(uint32_t a, int32_t b) { return a <= INT32_MAX && (int32_t)a == b; }
static inline bool _us32_ne(uint32_t a, int32_t b) { return a > INT32_MAX || (int32_t)a != b; }
static inline bool _us32_le(uint32_t a, int32_t b) { return a <= INT32_MAX && (int32_t)a <= b; }
static inline bool _us32_lt(uint32_t a, int32_t b) { return a < INT32_MAX && (int32_t)a < b; }
static inline bool _us64_gt(uint64_t a, int64_t b) { return a > INT64_MAX || (int64_t)a > b; }
static inline bool _us64_ge(uint64_t a, int64_t b) { return a >= INT64_MAX || (int64_t)a >= b; }
static inline bool _us64_eq(uint64_t a, int64_t b) { return a <= INT64_MAX && (int64_t)a == b; }
static inline bool _us64_ne(uint64_t a, int64_t b) { return a > INT64_MAX || (int64_t)a != b; }
static inline bool _us64_le(uint64_t a, int64_t b) { return a <= INT64_MAX && (int64_t)a <= b; }
static inline bool _us64_lt(uint64_t a, int64_t b) { return a < INT64_MAX && (int64_t)a < b; }
#define EMPTY_VARG_INITIALIZATION 0
#define EMPTY_STRUCT_INITIALIZATION 0
#define EMPTY_STRUCT_DECLARATION voidptr _dummy_pad
// Due to a tcc bug, the length of an array needs to be specified, but GCC crashes if it is...
#define EMPTY_ARRAY_OF_ELEMS(x,n) (x[])
#define TCCSKIP(x) x
#define __NOINLINE __attribute__((noinline))
#define __IRQHANDLER __attribute__((interrupt))
#define __V_architecture 0
#if defined(__x86_64__) || defined(_M_AMD64)
#define __V_amd64 1
#undef __V_architecture
#define __V_architecture 1
#endif
#if defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64)
#define __V_arm64 1
#undef __V_architecture
#define __V_architecture 2
#endif
#if defined(__arm__) || defined(_M_ARM)
#define __V_arm32 1
#undef __V_architecture
#define __V_architecture 3
#endif
#if defined(__i386__) || defined(_M_IX86)
#define __V_x86 1
#undef __V_architecture
#define __V_architecture 6
#endif
// Using just __GNUC__ for detecting gcc, is not reliable because other compilers define it too:
#ifdef __GNUC__
#define __V_GCC__
#endif
#ifdef __TINYC__
#undef __V_GCC__
#endif
#ifdef __cplusplus
#undef __V_GCC__
#endif
#ifdef __clang__
#undef __V_GCC__
#endif
#ifdef _MSC_VER
#undef __V_GCC__
#undef EMPTY_STRUCT_INITIALIZATION
#define EMPTY_STRUCT_INITIALIZATION 0
#endif
#ifdef __TINYC__
#define _Atomic volatile
#undef EMPTY_STRUCT_DECLARATION
#define EMPTY_STRUCT_DECLARATION voidptr _dummy_pad
#undef EMPTY_ARRAY_OF_ELEMS
#define EMPTY_ARRAY_OF_ELEMS(x,n) (x[n])
#undef __NOINLINE
#undef __IRQHANDLER
// tcc does not support inlining at all
#define __NOINLINE
#define __IRQHANDLER
#undef TCCSKIP
#define TCCSKIP(x)
// #include <byteswap.h>
#ifndef _WIN32
#include <execinfo.h>
int tcc_backtrace(const char *fmt, ...);
#endif
#endif
// Use __offsetof_ptr instead of __offset_of, when you *do* have a valid pointer, to avoid UB:
#ifndef __offsetof_ptr
#define __offsetof_ptr(ptr,PTYPE,FIELDNAME) ((size_t)((byte *)&((PTYPE *)ptr)->FIELDNAME - (byte *)ptr))
#endif
// for __offset_of
#ifndef __offsetof
#define __offsetof(PTYPE,FIELDNAME) ((size_t)((char *)&((PTYPE *)0)->FIELDNAME - (char *)0))
#endif
#define OPTION_CAST(x) (x)
#ifndef V64_PRINTFORMAT
#ifdef PRIx64
#define V64_PRINTFORMAT "0x%"PRIx64
#elif defined(__WIN32__)
#define V64_PRINTFORMAT "0x%I64x"
#elif defined(__linux__) && defined(__LP64__)
#define V64_PRINTFORMAT "0x%lx"
#else
#define V64_PRINTFORMAT "0x%llx"
#endif
#endif
#if defined(_WIN32) || defined(__CYGWIN__)
#define VV_EXPORTED_SYMBOL extern __declspec(dllexport)
#define VV_LOCAL_SYMBOL static
#else
// 4 < gcc < 5 is used by some older Ubuntu LTS and Centos versions,
// and does not support __has_attribute(visibility) ...
#ifndef __has_attribute
#define __has_attribute(x) 0 // Compatibility with non-clang compilers.
#endif
#if (defined(__GNUC__) && (__GNUC__ >= 4)) || (defined(__clang__) && __has_attribute(visibility))
#ifdef ARM
#define VV_EXPORTED_SYMBOL extern __attribute__((externally_visible,visibility("default")))
#else
#define VV_EXPORTED_SYMBOL extern __attribute__((visibility("default")))
#endif
#if defined(__clang__) && (defined(_VUSECACHE) || defined(_VBUILDMODULE))
#define VV_LOCAL_SYMBOL static
#else
#define VV_LOCAL_SYMBOL __attribute__ ((visibility ("hidden")))
#endif
#else
#define VV_EXPORTED_SYMBOL extern
#define VV_LOCAL_SYMBOL static
#endif
#endif
#ifdef __cplusplus
#include <utility>
#define _MOV std::move
#else
#define _MOV
#endif
// tcc does not support has_include properly yet, turn it off completely
#if defined(__TINYC__) && defined(__has_include)
#undef __has_include
#endif
#if !defined(VWEAK)
#define VWEAK __attribute__((weak))
#ifdef _MSC_VER
#undef VWEAK
#define VWEAK
#endif
#if defined(__MINGW32__) || defined(__MINGW64__)
#undef VWEAK
#define VWEAK
#endif
#endif
#if !defined(VNORETURN)
#if defined(__TINYC__)
#include <stdnoreturn.h>
#define VNORETURN noreturn
#endif
# if !defined(__TINYC__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
# define VNORETURN _Noreturn
# elif defined(__GNUC__) && __GNUC__ >= 2
# define VNORETURN __attribute__((noreturn))
# endif
#ifndef VNORETURN
#define VNORETURN
#endif
#endif
#if !defined(VUNREACHABLE)
#if defined(__GNUC__) && !defined(__clang__)
#define V_GCC_VERSION (__GNUC__ * 10000L + __GNUC_MINOR__ * 100L + __GNUC_PATCHLEVEL__)
#if (V_GCC_VERSION >= 40500L)
#define VUNREACHABLE() do { __builtin_unreachable(); } while (0)
#endif
#endif
#if defined(__clang__) && defined(__has_builtin)
#if __has_builtin(__builtin_unreachable)
#define VUNREACHABLE() do { __builtin_unreachable(); } while (0)
#endif
#endif
#ifndef VUNREACHABLE
#define VUNREACHABLE() do { } while (0)
#endif
#if defined(__FreeBSD__) && defined(__TINYC__)
#define VUNREACHABLE() do { } while (0)
#endif
#endif
//likely and unlikely macros
#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
#define _likely_(x) __builtin_expect(x,1)
#define _unlikely_(x) __builtin_expect(x,0)
#else
#define _likely_(x) (x)
#define _unlikely_(x) (x)
#endif
// c_headers
typedef int (*qsort_callback_func)(const void*, const void*);
#include <stdio.h> // TODO remove all these includes, define all function signatures and types manually
#include <stdlib.h>
#include <string.h>
#ifndef _WIN32
#if defined __has_include
#if __has_include (<execinfo.h>)
#include <execinfo.h>
#endif
#endif
#endif
#include <stdarg.h> // for va_list
//================================== GLOBALS =================================*/
int load_so(byteptr);
void _vinit(int ___argc, voidptr ___argv);
void _vcleanup(void);
#define sigaction_size sizeof(sigaction);
#define _ARR_LEN(a) ( (sizeof(a)) / (sizeof(a[0])) )
void v_free(voidptr ptr);
voidptr memdup(voidptr src, int sz);
#if INTPTR_MAX == INT32_MAX
#define TARGET_IS_32BIT 1
#elif INTPTR_MAX == INT64_MAX
#define TARGET_IS_64BIT 1
#else
#error "The environment is not 32 or 64-bit."
#endif
#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || defined(__BIG_ENDIAN__) || defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__)
#define TARGET_ORDER_IS_BIG 1
#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(_M_AMD64) || defined(_M_X64) || defined(_M_IX86)
#define TARGET_ORDER_IS_LITTLE 1
#else
#error "Unknown architecture endianness"
#endif
#ifndef _WIN32
#include <ctype.h>
#include <locale.h> // tolower
#include <sys/time.h>
#include <unistd.h> // sleep
extern char **environ;
#endif
#if defined(__CYGWIN__) && !defined(_WIN32)
#error Cygwin is not supported, please use MinGW or Visual Studio.
#endif
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__vinix__) || defined(__serenity__) || defined(__sun)
#include <sys/types.h>
#include <sys/wait.h> // os__wait uses wait on nix
#endif
#ifdef __OpenBSD__
#include <sys/types.h>
#include <sys/resource.h>
#include <sys/wait.h> // os__wait uses wait on nix
#endif
#ifdef __NetBSD__
#include <sys/wait.h> // os__wait uses wait on nix
#endif
#ifdef _WIN32
#define WINVER 0x0600
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0600
#ifndef WIN32_FULL
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef _UNICODE
#define _UNICODE
#endif
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <io.h> // _waccess
#include <direct.h> // _wgetcwd
#ifdef V_USE_SIGNAL_H
#include <signal.h> // signal and SIGSEGV for segmentation fault handler
#endif
#ifdef _MSC_VER
// On MSVC these are the same (as long as /volatile:ms is passed)
#define _Atomic volatile
// MSVC cannot parse some things properly
#undef EMPTY_STRUCT_DECLARATION
#undef OPTION_CAST
#define EMPTY_STRUCT_DECLARATION voidptr _dummy_pad
#define OPTION_CAST(x)
#undef __NOINLINE
#undef __IRQHANDLER
#define __NOINLINE __declspec(noinline)
#define __IRQHANDLER __declspec(naked)
#include <dbghelp.h>
#pragma comment(lib, "Dbghelp")
#endif
#else
#include <pthread.h>
#ifndef PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
// musl does not have that
#define pthread_rwlockattr_setkind_np(a, b)
#endif
#endif
// g_live_info is used by live.info()
static void* g_live_info = NULL;
#if defined(__MINGW32__) || defined(__MINGW64__) || (defined(_WIN32) && defined(__TINYC__))
#undef PRId64
#undef PRIi64
#undef PRIo64
#undef PRIu64
#undef PRIx64
#undef PRIX64
#define PRId64 "lld"
#define PRIi64 "lli"
#define PRIo64 "llo"
#define PRIu64 "llu"
#define PRIx64 "llx"
#define PRIX64 "llX"
#endif
#ifdef _VFREESTANDING
#undef _VFREESTANDING
#endif
// ============== wyhash ==============
#ifndef wyhash_final_version_3
#define wyhash_final_version_3
#ifndef WYHASH_CONDOM
// protections that produce different results:
// 1: normal valid behavior
// 2: extra protection against entropy loss (probability=2^-63), aka. "blind multiplication"
#define WYHASH_CONDOM 1
#endif
#ifndef WYHASH_32BIT_MUM
// 0: normal version, slow on 32 bit systems
// 1: faster on 32 bit systems but produces different results, incompatible with wy2u0k function
#define WYHASH_32BIT_MUM 0
#endif
// includes
#include <stdint.h>
#if defined(_MSC_VER) && defined(_M_X64)
#include <intrin.h>
#pragma intrinsic(_umul128)
#endif
// 128bit multiply function
static inline uint64_t _wyrot(uint64_t x) { return (x>>32)|(x<<32); }
static inline void _wymum(uint64_t *A, uint64_t *B){
#if(WYHASH_32BIT_MUM)
uint64_t hh=(*A>>32)*(*B>>32), hl=(*A>>32)*(uint32_t)*B, lh=(uint32_t)*A*(*B>>32), ll=(uint64_t)(uint32_t)*A*(uint32_t)*B;
#if(WYHASH_CONDOM>1)
*A^=_wyrot(hl)^hh; *B^=_wyrot(lh)^ll;
#else
*A=_wyrot(hl)^hh; *B=_wyrot(lh)^ll;
#endif
#elif defined(__SIZEOF_INT128__) && !defined(VWASM)
__uint128_t r=*A; r*=*B;
#if(WYHASH_CONDOM>1)
*A^=(uint64_t)r; *B^=(uint64_t)(r>>64);
#else
*A=(uint64_t)r; *B=(uint64_t)(r>>64);
#endif
#elif defined(_MSC_VER) && defined(_M_X64)
#if(WYHASH_CONDOM>1)
uint64_t a, b;
a=_umul128(*A,*B,&b);
*A^=a; *B^=b;
#else
*A=_umul128(*A,*B,B);
#endif
#else
uint64_t ha=*A>>32, hb=*B>>32, la=(uint32_t)*A, lb=(uint32_t)*B, hi, lo;
uint64_t rh=ha*hb, rm0=ha*lb, rm1=hb*la, rl=la*lb, t=rl+(rm0<<32), c=t<rl;
lo=t+(rm1<<32); c+=lo<t; hi=rh+(rm0>>32)+(rm1>>32)+c;
#if(WYHASH_CONDOM>1)
*A^=lo; *B^=hi;
#else
*A=lo; *B=hi;
#endif
#endif
}
// multiply and xor mix function, aka MUM
static inline uint64_t _wymix(uint64_t A, uint64_t B){ _wymum(&A,&B); return A^B; }
// endian macros
#ifndef WYHASH_LITTLE_ENDIAN
#ifdef TARGET_ORDER_IS_LITTLE
#define WYHASH_LITTLE_ENDIAN 1
#else
#define WYHASH_LITTLE_ENDIAN 0
#endif
#endif
// read functions
#if (WYHASH_LITTLE_ENDIAN)
static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return v;}
static inline uint64_t _wyr4(const uint8_t *p) { uint32_t v; memcpy(&v, p, 4); return v;}
#elif defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);}
static inline uint64_t _wyr4(const uint8_t *p) { uint32_t v; memcpy(&v, p, 4); return __builtin_bswap32(v);}
#elif defined(_MSC_VER)
static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return _byteswap_uint64(v);}
static inline uint64_t _wyr4(const uint8_t *p) { uint32_t v; memcpy(&v, p, 4); return _byteswap_ulong(v);}
#else
static inline uint64_t _wyr8(const uint8_t *p) {
uint64_t v; memcpy(&v, p, 8);
return (((v >> 56) & 0xff)| ((v >> 40) & 0xff00)| ((v >> 24) & 0xff0000)| ((v >> 8) & 0xff000000)| ((v << 8) & 0xff00000000)| ((v << 24) & 0xff0000000000)| ((v << 40) & 0xff000000000000)| ((v << 56) & 0xff00000000000000));
}
static inline uint64_t _wyr4(const uint8_t *p) {
uint32_t v; memcpy(&v, p, 4);
return (((v >> 24) & 0xff)| ((v >> 8) & 0xff00)| ((v << 8) & 0xff0000)| ((v << 24) & 0xff000000));
}
#endif
static inline uint64_t _wyr3(const uint8_t *p, size_t k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1];}
// wyhash main function
static inline uint64_t wyhash(const void *key, size_t len, uint64_t seed, const uint64_t *secret){
const uint8_t *p=(const uint8_t *)key; seed^=*secret; uint64_t a, b;
if (_likely_(len<=16)) {
if (_likely_(len>=4)) { a=(_wyr4(p)<<32)|_wyr4(p+((len>>3)<<2)); b=(_wyr4(p+len-4)<<32)|_wyr4(p+len-4-((len>>3)<<2)); }
else if (_likely_(len>0)) { a=_wyr3(p,len); b=0; }
else a=b=0;
} else {
size_t i=len;
if (_unlikely_(i>48)) {
uint64_t see1=seed, see2=seed;
do {
seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed);
see1=_wymix(_wyr8(p+16)^secret[2],_wyr8(p+24)^see1);
see2=_wymix(_wyr8(p+32)^secret[3],_wyr8(p+40)^see2);
p+=48; i-=48;
} while(_likely_(i>48));
seed^=see1^see2;
}
while(_unlikely_(i>16)) { seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed); i-=16; p+=16; }
a=_wyr8(p+i-16); b=_wyr8(p+i-8);
}
return _wymix(secret[1]^len,_wymix(a^secret[1],b^seed));
}
// the default secret parameters
static const uint64_t _wyp[4] = {0xa0761d6478bd642full, 0xe7037ed1a0b428dbull, 0x8ebc6af09c88c6e3ull, 0x589965cc75374cc3ull};
// a useful 64bit-64bit mix function to produce deterministic pseudo random numbers that can pass BigCrush and PractRand
static inline uint64_t wyhash64(uint64_t A, uint64_t B){ A^=0xa0761d6478bd642full; B^=0xe7037ed1a0b428dbull; _wymum(&A,&B); return _wymix(A^0xa0761d6478bd642full,B^0xe7037ed1a0b428dbull);}
// the wyrand PRNG that pass BigCrush and PractRand
static inline uint64_t wyrand(uint64_t *seed){ *seed+=0xa0761d6478bd642full; return _wymix(*seed,*seed^0xe7037ed1a0b428dbull);}
#ifndef __vinix__
// convert any 64 bit pseudo random numbers to uniform distribution [0,1). It can be combined with wyrand, wyhash64 or wyhash.
static inline double wy2u01(uint64_t r){ const double _wynorm=1.0/(1ull<<52); return (r>>12)*_wynorm;}
// convert any 64 bit pseudo random numbers to APPROXIMATE Gaussian distribution. It can be combined with wyrand, wyhash64 or wyhash.
static inline double wy2gau(uint64_t r){ const double _wynorm=1.0/(1ull<<20); return ((r&0x1fffff)+((r>>21)&0x1fffff)+((r>>42)&0x1fffff))*_wynorm-3.0;}
#endif
#if(!WYHASH_32BIT_MUM)
// fast range integer random number generation on [0,k) credit to Daniel Lemire. May not work when WYHASH_32BIT_MUM=1. It can be combined with wyrand, wyhash64 or wyhash.
static inline uint64_t wy2u0k(uint64_t r, uint64_t k){ _wymum(&r,&k); return k; }
#endif
#endif
#define _IN_MAP(val, m) map_exists(m, val)
// V includes:
#if defined(__TINYC__) && defined(__has_include)
// tcc does not support has_include properly yet, turn it off completely
#undef __has_include
#endif
// added by module `builtin`, file: float.c.v:9:
#if defined(__has_include)
#if __has_include(<float.h>)
#include <float.h>
#else
#error VERROR_MESSAGE Header file <float.h>, needed for module `builtin` was not found. Please install the corresponding development headers.
#endif
#else
#include <float.h>
#endif
// added by module `time`, file: time.c.v:6:
#if defined(__has_include)
#if __has_include(<time.h>)
#include <time.h>
#else
#error VERROR_MESSAGE Header file <time.h>, needed for module `time` was not found. Please install the corresponding development headers.
#endif
#else
#include <time.h>
#endif
// added by module `time`, file: time_windows.c.v:6:
#if defined(__has_include)
#if __has_include(<time.h>)
#include <time.h>
#else
#error VERROR_MESSAGE Header file <time.h>, needed for module `time` was not found. Please install the corresponding development headers.
#endif
#else
#include <time.h>
#endif
// inserted by module `sync.stdatomic`, file: 1.declarations.c.v:8:
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef COMPAT_ATOMICS_WIN32_STDATOMIC_H
#define COMPAT_ATOMICS_WIN32_STDATOMIC_H
#define WIN32_LEAN_AND_MEAN
#include <stddef.h>
#include <stdint.h>
#include <windows.h>
#ifdef __TINYC__
#endif
#define ATOMIC_FLAG_INIT 0
#define ATOMIC_VAR_INIT(value) (value)
#define atomic_init(obj, value) \
do \
{ \
*(obj) = (value); \
} while (0)
#define kill_dependency(y) ((void)0)
#define atomic_thread_fence(order) \
MemoryBarrier();
#define atomic_signal_fence(order) \
((void)0)
#define atomic_is_lock_free(obj) 0
typedef intptr_t atomic_flag;
typedef intptr_t atomic_bool;
typedef intptr_t atomic_char;
typedef intptr_t atomic_schar;
typedef intptr_t atomic_uchar;
typedef intptr_t atomic_short;
typedef intptr_t atomic_ushort;
typedef intptr_t atomic_int;
typedef intptr_t atomic_uint;
typedef intptr_t atomic_long;
typedef intptr_t atomic_ulong;
typedef intptr_t atomic_llong;
typedef intptr_t atomic_ullong;
typedef intptr_t atomic_wchar_t;
typedef intptr_t atomic_int_least8_t;
typedef intptr_t atomic_uint_least8_t;
typedef intptr_t atomic_int_least16_t;
typedef intptr_t atomic_uint_least16_t;
typedef intptr_t atomic_int_least32_t;
typedef intptr_t atomic_uint_least32_t;
typedef intptr_t atomic_int_least64_t;
typedef intptr_t atomic_uint_least64_t;
typedef intptr_t atomic_int_fast8_t;
typedef intptr_t atomic_uint_fast8_t;
typedef intptr_t atomic_int_fast16_t;
typedef intptr_t atomic_uint_fast16_t;
typedef intptr_t atomic_int_fast32_t;
typedef intptr_t atomic_uint_fast32_t;
typedef intptr_t atomic_int_fast64_t;
typedef intptr_t atomic_uint_fast64_t;
typedef intptr_t atomic_intptr_t;
typedef intptr_t atomic_uintptr_t;
typedef intptr_t atomic_size_t;
typedef intptr_t atomic_ptrdiff_t;
typedef intptr_t atomic_intmax_t;
typedef intptr_t atomic_uintmax_t;
#ifdef __TINYC__
/*
For TCC it is missing the x64 version of _InterlockedExchangeAdd64 so we
fake it (works the same) with InterlockedCompareExchange64 until it
succeeds
*/
__CRT_INLINE LONGLONG _InterlockedExchangeAdd64(LONGLONG volatile *Addend, LONGLONG Value)
{
LONGLONG Old;
do
{
Old = *Addend;
} while (InterlockedCompareExchange64(Addend, Old + Value, Old) != Old);
return Old;
}
__CRT_INLINE LONG _InterlockedExchangeAdd(LONG volatile *Addend, LONG Value)
{
LONG Old;
do
{
Old = *Addend;
} while (InterlockedCompareExchange(Addend, Old + Value, Old) != Old);
return Old;
}
__CRT_INLINE SHORT _InterlockedExchangeAdd16(SHORT volatile *Addend, SHORT Value)
{
SHORT Old;
do
{
Old = *Addend;
} while (InterlockedCompareExchange16(Addend, Old + Value, Old) != Old);
return Old;
}
#define InterlockedIncrement64 _InterlockedExchangeAdd64
#endif
#define atomic_store(object, desired) \
do \
{ \
*(object) = (desired); \
MemoryBarrier(); \
} while (0)
#define atomic_store_explicit(object, desired, order) \
atomic_store(object, desired)
#define atomic_load(object) \
(MemoryBarrier(), *(object))
#define atomic_load_explicit(object, order) \
atomic_load(object)
#define atomic_exchange(object, desired) \
InterlockedExchangePointer(object, desired)
#define atomic_exchange_explicit(object, desired, order) \
atomic_exchange(object, desired)
static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
intptr_t desired)
{
intptr_t old = *expected;
*expected = (intptr_t)InterlockedCompareExchangePointer(
(PVOID *)object, (PVOID)desired, (PVOID)old);
return *expected == old;
}
#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
atomic_compare_exchange_strong(object, expected, desired)
#define atomic_compare_exchange_weak(object, expected, desired) \
atomic_compare_exchange_strong(object, expected, desired)
#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
atomic_compare_exchange_weak(object, expected, desired)
#ifdef _WIN64
#define atomic_fetch_add(object, operand) \
InterlockedExchangeAdd64(object, operand)
#define atomic_fetch_sub(object, operand) \
InterlockedExchangeAdd64(object, -(operand))
#define atomic_fetch_or(object, operand) \
InterlockedOr64(object, operand)
#define atomic_fetch_xor(object, operand) \
InterlockedXor64(object, operand)
#define atomic_fetch_and(object, operand) \
InterlockedAnd64(object, operand)
#else
#define atomic_fetch_add(object, operand) \
InterlockedExchangeAdd(object, operand)
#define atomic_fetch_sub(object, operand) \
InterlockedExchangeAdd(object, -(operand))
#define atomic_fetch_or(object, operand) \
InterlockedOr(object, operand)
#define atomic_fetch_xor(object, operand) \
InterlockedXor(object, operand)
#define atomic_fetch_and(object, operand) \
InterlockedAnd(object, operand)
#endif /* _WIN64 */
/* specialized versions with explicit object size */
#define atomic_load_ptr atomic_load
#define atomic_store_ptr atomic_store
#define atomic_compare_exchange_weak_ptr atomic_compare_exchange_weak
#define atomic_compare_exchange_strong_ptr atomic_compare_exchange_strong
#define atomic_exchange_ptr atomic_exchange
#define atomic_fetch_add_ptr atomic_fetch_add
#define atomic_fetch_sub_ptr atomic_fetch_sub
#define atomic_fetch_and_ptr atomic_fetch_and
#define atomic_fetch_or_ptr atomic_fetch_or
#define atomic_fetch_xor_ptr atomic_fetch_xor
static inline void atomic_store_u64(unsigned long long* object, unsigned long long desired) {
do {
*(object) = (desired);
MemoryBarrier();
} while (0);
}
static inline unsigned long long atomic_load_u64(unsigned long long* object) {
return (MemoryBarrier(), *(object));
}
#define atomic_exchange_u64(object, desired) \
InterlockedExchange64(object, desired)
static inline int atomic_compare_exchange_strong_u64(unsigned long long* object, unsigned long long* expected,
unsigned long long desired)
{
unsigned long long old = *expected;
*expected = InterlockedCompareExchange64(object, desired, old);
return *expected == old;
}
#define atomic_compare_exchange_weak_u64(object, expected, desired) \
atomic_compare_exchange_strong_u64(object, expected, desired)
#define atomic_fetch_add_u64(object, operand) \
InterlockedExchangeAdd64(object, operand)
#define atomic_fetch_sub_u64(object, operand) \
InterlockedExchangeAdd64(object, -(operand))
#define atomic_fetch_or_u64(object, operand) \
InterlockedOr64(object, operand)
#define atomic_fetch_xor_u64(object, operand) \
InterlockedXor64(object, operand)
#define atomic_fetch_and_u64(object, operand) \
InterlockedAnd64(object, operand)
static inline void atomic_store_u32(unsigned* object, unsigned desired) {
do {
*(object) = (desired);
MemoryBarrier();
} while (0);
}
static inline unsigned atomic_load_u32(unsigned* object) {
return (MemoryBarrier(), *(object));
}
#define atomic_exchange_u32(object, desired) \
InterlockedExchange(object, desired)
static inline int atomic_compare_exchange_strong_u32(unsigned* object, unsigned* expected,
unsigned desired)
{
unsigned old = *expected;
*expected = InterlockedCompareExchange(object, desired, old);
return *expected == old;
}
#define atomic_compare_exchange_weak_u32(object, expected, desired) \
atomic_compare_exchange_strong_u32(object, expected, desired)
#define atomic_fetch_add_u32(object, operand) \
InterlockedExchangeAdd(object, operand)
#define atomic_fetch_sub_u32(object, operand) \
InterlockedExchangeAdd(object, -(operand))
#define atomic_fetch_or_u32(object, operand) \
InterlockedOr(object, operand)
#define atomic_fetch_xor_u32(object, operand) \
InterlockedXor(object, operand)
#define atomic_fetch_and_u32(object, operand) \
InterlockedAnd(object, operand)
static inline void atomic_store_u16(unsigned short* object, unsigned short desired) {
do {
*(object) = (desired);
MemoryBarrier();
} while (0);
}
static inline unsigned short atomic_load_u16(unsigned short* object) {
return (MemoryBarrier(), *(object));
}
#define atomic_exchange_u16(object, desired) \
InterlockedExchange16(object, desired)
static inline int atomic_compare_exchange_strong_u16(unsigned short* object, unsigned short* expected,
unsigned short desired)
{
unsigned short old = *expected;
*expected = InterlockedCompareExchange16(object, desired, old);
return *expected == old;
}
#define atomic_compare_exchange_weak_u16(object, expected, desired) \
atomic_compare_exchange_strong_u16(object, expected, desired)
#define atomic_fetch_add_u16(object, operand) \
InterlockedExchangeAdd16(object, operand)
#define atomic_fetch_sub_u16(object, operand) \
InterlockedExchangeAdd16(object, -(operand))
#define atomic_fetch_or_u16(object, operand) \
InterlockedOr16(object, operand)
#define atomic_fetch_xor_u16(object, operand) \
InterlockedXor16(object, operand)
#define atomic_fetch_and_u16(object, operand) \
InterlockedAnd16(object, operand)
#define atomic_fetch_add_explicit(object, operand, order) \
atomic_fetch_add(object, operand)
#define atomic_fetch_sub_explicit(object, operand, order) \
atomic_fetch_sub(object, operand)
#define atomic_fetch_or_explicit(object, operand, order) \
atomic_fetch_or(object, operand)
#define atomic_fetch_xor_explicit(object, operand, order) \
atomic_fetch_xor(object, operand)
#define atomic_fetch_and_explicit(object, operand, order) \
atomic_fetch_and(object, operand)
#define atomic_flag_test_and_set(object) \
atomic_exchange(object, 1)
#define atomic_flag_test_and_set_explicit(object, order) \
atomic_flag_test_and_set(object)
#define atomic_flag_clear(object) \
atomic_store(object, 0)
#define atomic_flag_clear_explicit(object, order) \
atomic_flag_clear(object)
#endif /* COMPAT_ATOMICS_WIN32_STDATOMIC_H */
// added by module `os`, file: os.c.v:3:
#if defined(__has_include)
#if __has_include(<sys/stat.h>)
#include <sys/stat.h>
#else
#error VERROR_MESSAGE Header file <sys/stat.h>, needed for module `os` was not found. Please install the corresponding development headers.
#endif
#else
#include <sys/stat.h>
#endif
// added by module `os`, file: os.c.v:4:
#include <errno.h>
// added by module `os`, file: os_windows.c.v:6:
#if defined(__has_include)
#if __has_include(<process.h>)
#include <process.h>
#else
#error VERROR_MESSAGE Header file <process.h>, needed for module `os` was not found. Please install the corresponding development headers.
#endif
#else
#include <process.h>
#endif
// added by module `os`, file: os_windows.c.v:7:
#if defined(__has_include)
#if __has_include(<sys/utime.h>)
#include <sys/utime.h>
#else
#error VERROR_MESSAGE Header file <sys/utime.h>, needed for module `os` was not found. Please install the corresponding development headers.
#endif
#else
#include <sys/utime.h>
#endif
// added by module `os`, file: signal.c.v:3:
#if defined(__has_include)
#if __has_include(<signal.h>)
#include <signal.h>
#else
#error VERROR_MESSAGE Header file <signal.h>, needed for module `os` was not found. Please install the corresponding development headers.
#endif
#else
#include <signal.h>
#endif
// added by module `sync`, file: sync_windows.c.v:8:
#if defined(__has_include)
#if __has_include(<synchapi.h>)
#include <synchapi.h>
#else
#error VERROR_MESSAGE Header file <synchapi.h>, needed for module `sync` was not found. Please install the corresponding development headers.
#endif
#else
#include <synchapi.h>
#endif
// added by module `sync`, file: sync_windows.c.v:9:
#if defined(__has_include)
#if __has_include(<time.h>)
#include <time.h>
#else
#error VERROR_MESSAGE Header file <time.h>, needed for module `sync` was not found. Please install the corresponding development headers.
#endif
#else
#include <time.h>
#endif
// Enum definitions:
typedef enum {
strconv__ParserState__ok, //
strconv__ParserState__pzero, // +1
strconv__ParserState__mzero, // +2
strconv__ParserState__pinf, // +3
strconv__ParserState__minf, // +4
strconv__ParserState__invalid_number, // +5
} strconv__ParserState;
typedef enum {
strconv__Align_text__right = 0, // 0
strconv__Align_text__left, // 0+1
strconv__Align_text__center, // 0+2
} strconv__Align_text;
typedef enum {
strconv__Char_parse_state__start, //
strconv__Char_parse_state__norm_char, // +1
strconv__Char_parse_state__field_char, // +2
strconv__Char_parse_state__pad_ch, // +3
strconv__Char_parse_state__len_set_start, // +4
strconv__Char_parse_state__len_set_in, // +5
strconv__Char_parse_state__check_type, // +6
strconv__Char_parse_state__check_float, // +7
strconv__Char_parse_state__check_float_in, // +8
strconv__Char_parse_state__reset_params, // +9
} strconv__Char_parse_state;
typedef enum {
ArrayFlags__noslices = 1, // 1 << 0
ArrayFlags__noshrink = 2, // 1 << 1
} ArrayFlags;
typedef enum {
AttributeKind__plain, //
AttributeKind__string, // +1
AttributeKind__number, // +2
AttributeKind__comptime_define, // +3
} AttributeKind;
typedef enum {
ChanState__success, //
ChanState__not_ready, // +1
ChanState__closed, // +2
} ChanState;
typedef enum {
StrIntpType__si_no_str = 0, // 0
StrIntpType__si_c, // 0+1
StrIntpType__si_u8, // 0+2
StrIntpType__si_i8, // 0+3
StrIntpType__si_u16, // 0+4
StrIntpType__si_i16, // 0+5
StrIntpType__si_u32, // 0+6
StrIntpType__si_i32, // 0+7
StrIntpType__si_u64, // 0+8
StrIntpType__si_i64, // 0+9
StrIntpType__si_e32, // 0+10
StrIntpType__si_e64, // 0+11
StrIntpType__si_f32, // 0+12
StrIntpType__si_f64, // 0+13
StrIntpType__si_g32, // 0+14
StrIntpType__si_g64, // 0+15
StrIntpType__si_s, // 0+16
StrIntpType__si_p, // 0+17
StrIntpType__si_vp, // 0+18
} StrIntpType;
typedef enum {
v__token__Kind__unknown, //
v__token__Kind__eof, // +1
v__token__Kind__name, // +2
v__token__Kind__number, // +3
v__token__Kind__string, // +4
v__token__Kind__str_inter, // +5
v__token__Kind__chartoken, // +6
v__token__Kind__plus, // +7
v__token__Kind__minus, // +8
v__token__Kind__mul, // +9
v__token__Kind__div, // +10
v__token__Kind__mod, // +11
v__token__Kind__xor, // +12
v__token__Kind__pipe, // +13
v__token__Kind__inc, // +14
v__token__Kind__dec, // +15
v__token__Kind__and, // +16
v__token__Kind__logical_or, // +17
v__token__Kind__not, // +18
v__token__Kind__bit_not, // +19
v__token__Kind__question, // +20
v__token__Kind__comma, // +21
v__token__Kind__semicolon, // +22
v__token__Kind__colon, // +23
v__token__Kind__arrow, // +24
v__token__Kind__amp, // +25
v__token__Kind__hash, // +26
v__token__Kind__dollar, // +27
v__token__Kind__at, // +28
v__token__Kind__str_dollar, // +29
v__token__Kind__left_shift, // +30
v__token__Kind__right_shift, // +31
v__token__Kind__unsigned_right_shift, // +32
v__token__Kind__not_in, // +33
v__token__Kind__not_is, // +34
v__token__Kind__assign, // +35
v__token__Kind__decl_assign, // +36
v__token__Kind__plus_assign, // +37
v__token__Kind__minus_assign, // +38
v__token__Kind__div_assign, // +39
v__token__Kind__mult_assign, // +40
v__token__Kind__xor_assign, // +41
v__token__Kind__mod_assign, // +42
v__token__Kind__or_assign, // +43
v__token__Kind__and_assign, // +44
v__token__Kind__right_shift_assign, // +45
v__token__Kind__left_shift_assign, // +46
v__token__Kind__unsigned_right_shift_assign, // +47
v__token__Kind__lcbr, // +48
v__token__Kind__rcbr, // +49
v__token__Kind__lpar, // +50
v__token__Kind__rpar, // +51
v__token__Kind__lsbr, // +52
v__token__Kind__nilsbr, // +53
v__token__Kind__rsbr, // +54
v__token__Kind__eq, // +55
v__token__Kind__ne, // +56
v__token__Kind__gt, // +57
v__token__Kind__lt, // +58
v__token__Kind__ge, // +59
v__token__Kind__le, // +60
v__token__Kind__comment, // +61
v__token__Kind__nl, // +62
v__token__Kind__dot, // +63
v__token__Kind__dotdot, // +64
v__token__Kind__ellipsis, // +65
v__token__Kind__keyword_beg, // +66
v__token__Kind__key_as, // +67
v__token__Kind__key_asm, // +68
v__token__Kind__key_assert, // +69
v__token__Kind__key_atomic, // +70
v__token__Kind__key_break, // +71
v__token__Kind__key_const, // +72
v__token__Kind__key_continue, // +73
v__token__Kind__key_defer, // +74
v__token__Kind__key_else, // +75
v__token__Kind__key_enum, // +76
v__token__Kind__key_false, // +77
v__token__Kind__key_for, // +78
v__token__Kind__key_fn, // +79
v__token__Kind__key_global, // +80
v__token__Kind__key_go, // +81
v__token__Kind__key_goto, // +82
v__token__Kind__key_if, // +83
v__token__Kind__key_import, // +84
v__token__Kind__key_in, // +85
v__token__Kind__key_interface, // +86
v__token__Kind__key_is, // +87
v__token__Kind__key_match, // +88
v__token__Kind__key_module, // +89
v__token__Kind__key_mut, // +90
v__token__Kind__key_shared, // +91
v__token__Kind__key_lock, // +92
v__token__Kind__key_rlock, // +93
v__token__Kind__key_none, // +94
v__token__Kind__key_return, // +95
v__token__Kind__key_select, // +96
v__token__Kind__key_sizeof, // +97
v__token__Kind__key_isreftype, // +98
v__token__Kind__key_likely, // +99
v__token__Kind__key_unlikely, // +100
v__token__Kind__key_offsetof, // +101
v__token__Kind__key_struct, // +102
v__token__Kind__key_true, // +103
v__token__Kind__key_type, // +104
v__token__Kind__key_typeof, // +105
v__token__Kind__key_dump, // +106
v__token__Kind__key_orelse, // +107
v__token__Kind__key_union, // +108
v__token__Kind__key_pub, // +109
v__token__Kind__key_static, // +110
v__token__Kind__key_volatile, // +111
v__token__Kind__key_unsafe, // +112
v__token__Kind__keyword_end, // +113
v__token__Kind___end_, // +114
} v__token__Kind;
typedef enum {
v__token__AtKind__unknown, //
v__token__AtKind__fn_name, // +1
v__token__AtKind__method_name, // +2
v__token__AtKind__mod_name, // +3
v__token__AtKind__struct_name, // +4
v__token__AtKind__vexe_path, // +5
v__token__AtKind__file_path, // +6
v__token__AtKind__line_nr, // +7
v__token__AtKind__column_nr, // +8
v__token__AtKind__vhash, // +9
v__token__AtKind__vmod_file, // +10
v__token__AtKind__vmodroot_path, // +11
v__token__AtKind__vroot_path, // +12
v__token__AtKind__vexeroot_path, // +13
} v__token__AtKind;
typedef enum {
v__token__Precedence__lowest, //
v__token__Precedence__cond, // +1
v__token__Precedence__in_as, // +2
v__token__Precedence__assign, // +3
v__token__Precedence__eq, // +4
v__token__Precedence__sum, // +5
v__token__Precedence__product, // +6
v__token__Precedence__prefix, // +7
v__token__Precedence__postfix, // +8
v__token__Precedence__call, // +9
v__token__Precedence__index, // +10
} v__token__Precedence;
typedef enum {
time__FormatTime__hhmm12, //
time__FormatTime__hhmm24, // +1
time__FormatTime__hhmmss12, // +2
time__FormatTime__hhmmss24, // +3
time__FormatTime__hhmmss24_milli, // +4
time__FormatTime__hhmmss24_micro, // +5
time__FormatTime__no_time, // +6
} time__FormatTime;
typedef enum {
time__FormatDate__ddmmyy, //
time__FormatDate__ddmmyyyy, // +1
time__FormatDate__mmddyy, // +2
time__FormatDate__mmddyyyy, // +3
time__FormatDate__mmmd, // +4
time__FormatDate__mmmdd, // +5
time__FormatDate__mmmddyy, // +6
time__FormatDate__mmmddyyyy, // +7
time__FormatDate__no_date, // +8
time__FormatDate__yyyymmdd, // +9
time__FormatDate__yymmdd, // +10
} time__FormatDate;
typedef enum {
time__FormatDelimiter__dot, //
time__FormatDelimiter__hyphen, // +1
time__FormatDelimiter__slash, // +2
time__FormatDelimiter__space, // +3
time__FormatDelimiter__no_delimiter, // +4
} time__FormatDelimiter;
typedef enum {
semver__Operator__gt, //
semver__Operator__lt, // +1
semver__Operator__ge, // +2
semver__Operator__le, // +3
semver__Operator__eq, // +4
} semver__Operator;
typedef enum {
semver__Increment__major, //
semver__Increment__minor, // +1
semver__Increment__patch, // +2
} semver__Increment;
typedef enum {
os__SeekMode__start, //
os__SeekMode__current, // +1
os__SeekMode__end, // +2
} os__SeekMode;
typedef enum {
os__FileType__regular, //
os__FileType__directory, // +1
os__FileType__character_device, // +2
os__FileType__block_device, // +3
os__FileType__fifo, // +4
os__FileType__symbolic_link, // +5
os__FileType__socket, // +6
} os__FileType;
typedef enum {
os__ProcessState__not_started, //
os__ProcessState__running, // +1
os__ProcessState__stopped, // +2
os__ProcessState__exited, // +3
os__ProcessState__aborted, // +4
os__ProcessState__closed, // +5
} os__ProcessState;
typedef enum {
os__Signal__hup = 1, // 1
os__Signal__int = 2, // 2
os__Signal__quit = 3, // 3
os__Signal__ill = 4, // 4
os__Signal__trap = 5, // 5
os__Signal__abrt = 6, // 6
os__Signal__bus = 7, // 7
os__Signal__fpe = 8, // 8
os__Signal__kill = 9, // 9
os__Signal__usr1 = 10, // 10
os__Signal__segv = 11, // 11
os__Signal__usr2 = 12, // 12
os__Signal__pipe = 13, // 13
os__Signal__alrm = 14, // 14
os__Signal__term = 15, // 15
os__Signal__stkflt = 16, // 16
os__Signal__chld = 17, // 17
os__Signal__cont = 18, // 18
os__Signal__stop = 19, // 19
os__Signal__tstp = 20, // 20
os__Signal__ttin = 21, // 21
os__Signal__ttou = 22, // 22
os__Signal__urg = 23, // 23
os__Signal__xcpu = 24, // 24
os__Signal__xfsz = 25, // 25
os__Signal__vtalrm = 26, // 26
os__Signal__prof = 27, // 27
os__Signal__winch = 28, // 28
os__Signal__poll = 29, // 29
os__Signal__pwr = 30, // 30
os__Signal__sys = 31, // 31
} os__Signal;
typedef enum {
v__errors__Reporter__scanner, //
v__errors__Reporter__parser, // +1
v__errors__Reporter__checker, // +2
v__errors__Reporter__builder, // +3
v__errors__Reporter__gen, // +4
} v__errors__Reporter;
typedef enum {
v__vet__ErrorKind__error, //
v__vet__ErrorKind__warning, // +1
} v__vet__ErrorKind;
typedef enum {
v__vet__FixKind__unknown, //
v__vet__FixKind__doc, // +1
v__vet__FixKind__vfmt, // +2
} v__vet__FixKind;
typedef enum {
v__vet__ErrorType__default, //
v__vet__ErrorType__space_indent, // +1
v__vet__ErrorType__trailing_space, // +2
} v__vet__ErrorType;
typedef enum {
v__vmod__TokenKind__module_keyword, //
v__vmod__TokenKind__field_key, // +1
v__vmod__TokenKind__lcbr, // +2
v__vmod__TokenKind__rcbr, // +3
v__vmod__TokenKind__labr, // +4
v__vmod__TokenKind__rabr, // +5
v__vmod__TokenKind__comma, // +6
v__vmod__TokenKind__colon, // +7
v__vmod__TokenKind__eof, // +8
v__vmod__TokenKind__str, // +9
v__vmod__TokenKind__ident, // +10
v__vmod__TokenKind__unknown, // +11
} v__vmod__TokenKind;
typedef enum {
v__pref__OS___auto, //
v__pref__OS__ios, // +1
v__pref__OS__macos, // +2
v__pref__OS__linux, // +3
v__pref__OS__windows, // +4
v__pref__OS__freebsd, // +5
v__pref__OS__openbsd, // +6
v__pref__OS__netbsd, // +7
v__pref__OS__dragonfly, // +8
v__pref__OS__js_node, // +9
v__pref__OS__js_browser, // +10
v__pref__OS__js_freestanding, // +11
v__pref__OS__android, // +12
v__pref__OS__solaris, // +13
v__pref__OS__serenity, // +14
v__pref__OS__vinix, // +15
v__pref__OS__haiku, // +16
v__pref__OS__wasm32, // +17
v__pref__OS__wasm32_emscripten, // +18
v__pref__OS__wasm32_wasi, // +19
v__pref__OS__raw, // +20
v__pref__OS__all, // +21
} v__pref__OS;
typedef enum {
v__pref__BuildMode__default_mode, //
v__pref__BuildMode__build_module, // +1
} v__pref__BuildMode;
typedef enum {
v__pref__AssertFailureMode__default, //
v__pref__AssertFailureMode__aborts, // +1
v__pref__AssertFailureMode__backtraces, // +2
} v__pref__AssertFailureMode;
typedef enum {
v__pref__GarbageCollectionMode__unknown, //
v__pref__GarbageCollectionMode__no_gc, // +1
v__pref__GarbageCollectionMode__boehm_full, // +2
v__pref__GarbageCollectionMode__boehm_incr, // +3
v__pref__GarbageCollectionMode__boehm_full_opt, // +4
v__pref__GarbageCollectionMode__boehm_incr_opt, // +5
v__pref__GarbageCollectionMode__boehm_leak, // +6
} v__pref__GarbageCollectionMode;
typedef enum {
v__pref__OutputMode__stdout, //
v__pref__OutputMode__silent, // +1
} v__pref__OutputMode;
typedef enum {
v__pref__ColorOutput__auto, //
v__pref__ColorOutput__always, // +1
v__pref__ColorOutput__never, // +2
} v__pref__ColorOutput;
typedef enum {
v__pref__Backend__c, //
v__pref__Backend__js_node, // +1
v__pref__Backend__js_browser, // +2
v__pref__Backend__js_freestanding, // +3
v__pref__Backend__native, // +4
v__pref__Backend__interpret, // +5
} v__pref__Backend;
typedef enum {
v__pref__CompilerType__gcc, //
v__pref__CompilerType__tinyc, // +1
v__pref__CompilerType__clang, // +2
v__pref__CompilerType__mingw, // +3
v__pref__CompilerType__msvc, // +4
v__pref__CompilerType__cplusplus, // +5
} v__pref__CompilerType;
typedef enum {
v__pref__Arch___auto, //
v__pref__Arch__amd64, // +1
v__pref__Arch__arm64, // +2
v__pref__Arch__arm32, // +3
v__pref__Arch__rv64, // +4
v__pref__Arch__rv32, // +5
v__pref__Arch__i386, // +6
v__pref__Arch__js_node, // +7
v__pref__Arch__js_browser, // +8
v__pref__Arch__js_freestanding, // +9
v__pref__Arch___max, // +10
} v__pref__Arch;
typedef enum {
sync__BufferElemStat__unused = 0, // 0
sync__BufferElemStat__writing, // 0+1
sync__BufferElemStat__written, // 0+2
sync__BufferElemStat__reading, // 0+3
} sync__BufferElemStat;
typedef enum {
sync__Direction__pop, //
sync__Direction__push, // +1
} sync__Direction;
typedef enum {
v__ast__ComptimeTypeKind__map_, //
v__ast__ComptimeTypeKind__int, // +1
v__ast__ComptimeTypeKind__float, // +2
v__ast__ComptimeTypeKind__struct_, // +3
v__ast__ComptimeTypeKind__iface, // +4
v__ast__ComptimeTypeKind__array, // +5
v__ast__ComptimeTypeKind__sum_type, // +6
v__ast__ComptimeTypeKind__enum_, // +7
} v__ast__ComptimeTypeKind;
typedef enum {
v__ast__GenericKindField__unknown, //
v__ast__GenericKindField__name, // +1
v__ast__GenericKindField__typ, // +2
} v__ast__GenericKindField;
typedef enum {
v__ast__IdentKind__unresolved, //
v__ast__IdentKind__blank_ident, // +1
v__ast__IdentKind__variable, // +2
v__ast__IdentKind__constant, // +3
v__ast__IdentKind__global, // +4
v__ast__IdentKind__function, // +5
} v__ast__IdentKind;
typedef enum {
v__ast__ComptimeForKind__methods, //
v__ast__ComptimeForKind__fields, // +1
v__ast__ComptimeForKind__attributes, // +2
} v__ast__ComptimeForKind;
typedef enum {
v__ast__AddressingMode__invalid, //
v__ast__AddressingMode__displacement, // +1
v__ast__AddressingMode__base, // +2
v__ast__AddressingMode__base_plus_displacement, // +3
v__ast__AddressingMode__index_times_scale_plus_displacement, // +4
v__ast__AddressingMode__base_plus_index_plus_displacement, // +5
v__ast__AddressingMode__base_plus_index_times_scale_plus_displacement, // +6
v__ast__AddressingMode__rip_plus_displacement, // +7
} v__ast__AddressingMode;
typedef enum {
v__ast__OrKind__absent, //
v__ast__OrKind__block, // +1
v__ast__OrKind__propagate_option, // +2
v__ast__OrKind__propagate_result, // +3
} v__ast__OrKind;
typedef enum {
v__ast__SqlStmtKind__insert, //
v__ast__SqlStmtKind__update, // +1
v__ast__SqlStmtKind__delete, // +2
v__ast__SqlStmtKind__create, // +3
v__ast__SqlStmtKind__drop, // +4
} v__ast__SqlStmtKind;
typedef enum {
v__ast__AttrKind__plain, //
v__ast__AttrKind__string, // +1
v__ast__AttrKind__number, // +2
v__ast__AttrKind__bool, // +3
v__ast__AttrKind__comptime_define, // +4
} v__ast__AttrKind;
typedef enum {
v__ast__Language__v, //
v__ast__Language__c, // +1
v__ast__Language__js, // +2
v__ast__Language__amd64, // +3
v__ast__Language__i386, // +4
v__ast__Language__arm64, // +5
v__ast__Language__arm32, // +6
v__ast__Language__rv64, // +7
v__ast__Language__rv32, // +8
} v__ast__Language;
typedef enum {
v__ast__TypeFlag__optional, //
v__ast__TypeFlag__result, // +1
v__ast__TypeFlag__variadic, // +2
v__ast__TypeFlag__generic, // +3
v__ast__TypeFlag__shared_f, // +4
v__ast__TypeFlag__atomic_f, // +5
} v__ast__TypeFlag;
typedef enum {
v__ast__ShareType__mut_t, //
v__ast__ShareType__shared_t, // +1
v__ast__ShareType__atomic_t, // +2
} v__ast__ShareType;
typedef enum {
v__ast__Kind__placeholder, //
v__ast__Kind__void, // +1
v__ast__Kind__voidptr, // +2
v__ast__Kind__byteptr, // +3
v__ast__Kind__charptr, // +4
v__ast__Kind__i8, // +5
v__ast__Kind__i16, // +6
v__ast__Kind__int, // +7
v__ast__Kind__i64, // +8
v__ast__Kind__isize, // +9
v__ast__Kind__u8, // +10
v__ast__Kind__u16, // +11
v__ast__Kind__u32, // +12
v__ast__Kind__u64, // +13
v__ast__Kind__usize, // +14
v__ast__Kind__f32, // +15
v__ast__Kind__f64, // +16
v__ast__Kind__char, // +17
v__ast__Kind__rune, // +18
v__ast__Kind__bool, // +19
v__ast__Kind__none_, // +20
v__ast__Kind__string, // +21
v__ast__Kind__array, // +22
v__ast__Kind__array_fixed, // +23
v__ast__Kind__map, // +24
v__ast__Kind__chan, // +25
v__ast__Kind__any, // +26
v__ast__Kind__struct_, // +27
v__ast__Kind__generic_inst, // +28
v__ast__Kind__multi_return, // +29
v__ast__Kind__sum_type, // +30
v__ast__Kind__alias, // +31
v__ast__Kind__enum_, // +32
v__ast__Kind__function, // +33
v__ast__Kind__interface_, // +34
v__ast__Kind__float_literal, // +35
v__ast__Kind__int_literal, // +36
v__ast__Kind__aggregate, // +37
v__ast__Kind__thread, // +38
} v__ast__Kind;
typedef enum {
v__checker__ComptimeBranchSkipState__eval, //
v__checker__ComptimeBranchSkipState__skip, // +1
v__checker__ComptimeBranchSkipState__unknown, // +2
} v__checker__ComptimeBranchSkipState;
typedef enum {
v__gen__c__SqlExprSide__left, //
v__gen__c__SqlExprSide__right, // +1
} v__gen__c__SqlExprSide;
typedef enum {
v__gen__c__SqlType__sqlite3, //
v__gen__c__SqlType__mysql, // +1
v__gen__c__SqlType__psql, // +2
v__gen__c__SqlType__mssql, // +3
v__gen__c__SqlType__unknown, // +4
} v__gen__c__SqlType;
typedef enum {
v__scanner__CommentsMode__skip_comments, //
v__scanner__CommentsMode__parse_comments, // +1
v__scanner__CommentsMode__toplevel_comments, // +2
} v__scanner__CommentsMode;
typedef enum {
v__parser__State__simple, //
v__parser__State__html, // +1
v__parser__State__css, // +2
v__parser__State__js, // +3
} v__parser__State;
// V type definitions:
struct IError {
union {
void* _object;
None__* _None__;
Error* _Error;
MessageError* _MessageError;
time__TimeParseError* _time__TimeParseError;
flag__UnkownFlagError* _flag__UnkownFlagError;
flag__ArgsCountError* _flag__ArgsCountError;
semver__InvalidComparatorFormatError* _semver__InvalidComparatorFormatError;
semver__EmptyInputError* _semver__EmptyInputError;
semver__InvalidVersionFormatError* _semver__InvalidVersionFormatError;
os__FileNotOpenedError* _os__FileNotOpenedError;
os__SizeOfTypeIs0Error* _os__SizeOfTypeIs0Error;
os__ExecutableNotFoundError* _os__ExecutableNotFoundError;
v__gen__c__UnsupportedAssertCtempTransform* _v__gen__c__UnsupportedAssertCtempTransform;
};
int _typ;
string* msg;
int* code;
};
struct string {
u8* str;
int len;
int is_lit;
};
struct array {
int element_size;
voidptr data;
int offset;
int len;
int cap;
ArrayFlags flags;
};
struct DenseArray {
int key_bytes;
int value_bytes;
int cap;
int len;
u32 deletes;
u8* all_deleted;
u8* keys;
u8* values;
};
struct map {
int key_bytes;
int value_bytes;
u32 even_index;
u8 cached_hashbits;
u8 shift;
DenseArray key_values;
u32* metas;
u32 extra_metas;
bool has_string_keys;
MapHashFn hash_fn;
MapEqFn key_eq_fn;
MapCloneFn clone_fn;
MapFreeFn free_fn;
int len;
};
struct Error {
EMPTY_STRUCT_DECLARATION;
};
struct _option {
u8 state;
IError err;
};
struct _result {
bool is_error;
IError err;
};
typedef array Array_string;
typedef array Array_u8;
typedef array Array_int;
typedef array Array_voidptr;
typedef array Array_VCastTypeIndexName;
typedef array Array_MethodArgs;
typedef u64 Array_fixed_u64_2 [2];
typedef char Array_fixed_char_254 [254];
typedef array Array_u8_ptr;
typedef array Array_rune;
typedef string Array_fixed_string_11 [11];
typedef voidptr Array_fixed_voidptr_11 [11];
typedef array Array_RepIndex;
typedef map Map_string_int;
typedef map Map_string_string;
typedef array Array_char_ptr;
typedef u16 Array_fixed_u16_260 [260];
typedef u16 Array_fixed_u16_14 [14];
typedef int Array_fixed_int_3 [3];
typedef u8 Array_fixed_u8_65536 [65536];
typedef char Array_fixed_char_256 [256];
typedef u8 Array_fixed_u8_20 [20];
typedef map Map_string_Array_string;
typedef array Array_v__util__Possibility;
typedef map Map_string_time__StopWatch;
typedef array Array_v__ast__File_ptr;
typedef array Array_v__builder__FunctionRedefinition;
typedef array Array_v__cflag__CFlag;
typedef map Map_string_bool;
typedef array Array_u32;
typedef array Array_v__token__WIndex;
typedef map Map_string_T;
typedef map Map_string_v__token__Kind;
typedef array Array_v__token__Precedence;
typedef array Array_v__vmod__Token;
typedef map Map_string_v__vmod__ModFileAndFolder;
typedef array Array_v__ast__Stmt;
typedef array Array_v__ast__Comment;
typedef array Array_bool;
typedef array Array_v__token__Pos;
typedef array Array_v__ast__Expr;
typedef array Array_v__ast__Type;
typedef array Array_v__ast__Attr;
typedef array Array_v__ast__ConstField;
typedef array Array_v__ast__Embed;
typedef array Array_v__ast__StructField;
typedef array Array_v__ast__FnDecl;
typedef array Array_v__ast__InterfaceEmbedding;
typedef array Array_v__ast__StructInitField;
typedef array Array_v__ast__StructInitEmbed;
typedef array Array_v__ast__ImportSymbol;
typedef array Array_v__ast__Param;
typedef array Array_v__ast__DeferStmt;
typedef array Array_v__ast__CallArg;
typedef array Array_v__ast__GlobalField;
typedef array Array_v__ast__Import;
typedef array Array_v__ast__EmbeddedFile;
typedef array Array_v__errors__Error;
typedef array Array_v__errors__Warning;
typedef array Array_v__errors__Notice;
typedef array Array_v__ast__FnDecl_ptr;
typedef array Array_v__ast__IfBranch;
typedef array Array_v__ast__MatchBranch;
typedef array Array_Array_v__ast__Comment;
typedef array Array_v__ast__SelectBranch;
typedef array Array_v__ast__EnumField;
typedef array Array_v__ast__TypeNode;
typedef array Array_v__ast__Ident;
typedef array Array_v__ast__AsmClobbered;
typedef array Array_v__ast__AsmTemplate;
typedef array Array_v__ast__AsmIO;
typedef array Array_v__ast__AsmArg;
typedef array Array_v__ast__IfGuardVar;
typedef array Array_v__ast__SqlStmtLine;
typedef map Map_int_v__ast__SqlStmtLine;
typedef map Map_int_v__ast__SqlExpr;
typedef array Array_v__ast__Node;
typedef map Map_string_v__ast__ScopeObject;
typedef map Map_string_v__ast__ScopeStructField;
typedef array Array_v__ast__Scope_ptr;
typedef array Array_v__ast__TypeSymbol_ptr;
typedef map Map_string_v__ast__Fn;
typedef map Map_string_Array_v__ast__Type;
typedef map Map_int_string;
typedef array Array_Array_v__ast__Type;
typedef map Map_string_Array_Array_v__ast__Type;
typedef map Map_int_v__ast__InterfaceDecl;
typedef map Map_string_v__ast__EnumDecl;
typedef map Map_string_time__Time;
typedef map Map_u64_string;
typedef array Array_v__ast__Fn;
typedef map Map_string_v__ast__StructField;
typedef array Array_v__ast__Kind;
typedef map Map_int_Array_v__ast__Type;
typedef array Array_v__ast__File;
typedef map Map_string_v__ast__Type;
typedef map Map_int_v__ast__InterfaceEmbedding;
typedef array Array_i64;
typedef array Array_v__transformer__KeyVal;
typedef array Array_Array_v__transformer__KeyVal;
typedef array Array_v__vet__Error;
typedef map Map_string_v__ast__FnDecl;
typedef map Map_string_v__ast__ConstField;
typedef map Map_string_v__ast__GlobalField;
typedef array Array_v__depgraph__DepGraphNode;
typedef map Map_string_i64;
typedef map Map_string_strings__Builder;
typedef map Map_string_v__gen__c__GlobalConstDef;
typedef map Map_string_v__ast__Stmt_ptr;
typedef array Array_v__gen__c__StrType;
typedef array Array_v__gen__c__SumtypeCastingFn;
typedef map Map_int_bool;
typedef array Array_v__gen__c__ProfileCounterMeta;
typedef array Array_v__ast__InfixExpr;
typedef array Array_v__ast__TypeSymbol;
typedef array Array_v__token__Token;
typedef array Array_sync__Channel_ptr;
typedef array Array_sync__Direction;
typedef array Array_sync__Subscription;
typedef array Array_flag__Flag;
typedef array Array_f64;
typedef array Array_semver__Comparator;
typedef array Array_semver__ComparatorSet;
typedef u8 Array_fixed_u8_5 [5];
typedef array Array_u64;
typedef array Array_strconv__Uint128;
typedef u8 Array_fixed_u8_32 [32];
typedef u8 Array_fixed_u8_26 [26];
typedef voidptr Array_fixed_voidptr_100 [100];
typedef u8 Array_fixed_u8_17 [17];
typedef array Array_StrIntpType;
typedef array Array_v__token__Kind;
typedef u16 Array_fixed_u16_32768 [32768];
typedef u8 Array_fixed_u8_4096 [4096];
typedef u16 Array_fixed_u16_255 [255];
typedef array Array_os__ProcessState;
typedef u8 Array_fixed_u8_50 [50];
typedef array Array_v__vmod__TokenKind;
typedef array Array_v__pref__Backend;
typedef map Map_int_Array_string;
typedef map Map_int_Map_string_int;
typedef array Array_v__ast__IdentKind;
typedef array Array_v__ast__IfExpr;
typedef array Array_v__ast__BoolLiteral;
typedef array Array_v__ast__SelectorExpr;
typedef array Array_v__pref__GarbageCollectionMode;
typedef array Array_v__gen__c__Gen_ptr;
typedef array Array_v__ast__Struct;
typedef array Array_v__ast__CallExpr;
typedef array Array_v__pref__Arch;
typedef array Array_v__pref__OS;
typedef u8 byte;
typedef int i32;
typedef Array_u8 strings__Builder;
typedef voidptr os__HANDLE;
typedef voidptr os__HMODULE;
typedef u32* os__PU32;
typedef voidptr v__builder__RegKey;
typedef i64 time__Duration;
typedef int v__ast__Type;
typedef voidptr sync__MHANDLE;
typedef voidptr sync__SHANDLE;
typedef bool (*anon_fn_voidptr__bool)(voidptr);
typedef voidptr (*anon_fn_voidptr__voidptr)(voidptr);
typedef int (*anon_fn_voidptr_voidptr__int)(voidptr,voidptr);
typedef int (*anon_fn_int_int__int)(int,int);
typedef void (*FnExitCb)();
typedef int (*VectoredExceptionHandler)(ExceptionPointers*);
typedef int (*FnSortCB)(voidptr,voidptr);
typedef void (*os__ShellExecuteWin)(voidptr,u16*,u16*,u16*,u16*,int);
typedef void (*anon_fn_string)(string);
typedef void (*os__FnWalkContextCB)(voidptr,string);
typedef u32 (*os__VectoredExceptionHandler)(ExceptionPointers*);
typedef void (*os__FN_NTSuspendResume)(voidptr);
typedef void (*os__SignalHandler)(os__Signal);
typedef void (*os__FN_SA_Handler)(int);
typedef string (*anon_fn_string__string)(string);
typedef void (*v__builder__FnBackend)(v__builder__Builder*);
typedef void (*v__ast__FnPanicHandler)(v__ast__Table*,string);
typedef string (*v__dotgraph__FnLabel2NodeName)(string,voidptr);
typedef bool (*v__ast__walker__InspectorFn)(v__ast__Node*,voidptr);
typedef void (*anon_fn_)();
typedef void (*anon_fn_voidptr)(voidptr);
typedef voidptr (*sync__pool__ThreadCB)(sync__pool__PoolProcessor*,int,int);
struct rand__PRNG {
union {
void* _object;
rand__wyrand__WyRandRNG* _rand__wyrand__WyRandRNG;
};
int _typ;
};
struct hash__Hasher {
union {
void* _object;
};
int _typ;
};
struct hash__Hash32er {
union {
void* _object;
};
int _typ;
};
struct hash__Hash64er {
union {
void* _object;
};
int _typ;
};
struct v__ast__walker__Visitor {
union {
void* _object;
v__ast__walker__Inspector* _v__ast__walker__Inspector;
v__callgraph__Mapper* _v__callgraph__Mapper;
};
int _typ;
};
// #start sorted_symbols
struct none {
EMPTY_STRUCT_DECLARATION;
};
typedef HANDLE __v_thread;
struct ContextRecord {
EMPTY_STRUCT_DECLARATION;
};
struct ExceptionPointers {
ExceptionRecord* exception_record;
ContextRecord* context_record;
};
struct None__ {
Error Error;
};
struct StrIntpCgenData {
string str;
string fmt;
string d;
};
struct os__FileNotOpenedError {
Error Error;
};
struct os__SizeOfTypeIs0Error {
Error Error;
};
struct os__ExecutableNotFoundError {
Error Error;
};
struct os__Uname {
string sysname;
string nodename;
string release;
string version;
string machine;
};
struct os__ContextRecord {
EMPTY_STRUCT_DECLARATION;
};
struct os__ExceptionPointers {
ExceptionRecord* exception_record;
ContextRecord* context_record;
};
struct v__cflag__CFlag {
string mod;
string os;
string name;
string value;
string cached;
};
struct v__builder__WindowsKit {
string um_lib_path;
string ucrt_lib_path;
string um_include_path;
string ucrt_include_path;
string shared_include_path;
};
struct v__builder__VsInstallation {
string include_path;
string lib_path;
string exe_path;
};
struct v__vmod__ModFileAndFolder {
string vmod_file;
string vmod_folder;
};
// Union sum type v__ast__TypeDecl =
// | 283 = v__ast__AliasTypeDecl
// | 284 = v__ast__FnTypeDecl
// | 285 = v__ast__SumTypeDecl
struct v__ast__TypeDecl {
union {
v__ast__AliasTypeDecl* _v__ast__AliasTypeDecl;
v__ast__FnTypeDecl* _v__ast__FnTypeDecl;
v__ast__SumTypeDecl* _v__ast__SumTypeDecl;
};
int _typ;
string* name;
bool* is_pub;
v__token__Pos* pos;
Array_v__ast__Comment* comments;
};
// Union sum type v__ast__Expr =
// | 287 = v__ast__AnonFn
// | 288 = v__ast__ArrayDecompose
// | 289 = v__ast__ArrayInit
// | 290 = v__ast__AsCast
// | 291 = v__ast__Assoc
// | 292 = v__ast__AtExpr
// | 293 = v__ast__BoolLiteral
// | 294 = v__ast__CTempVar
// | 295 = v__ast__CallExpr
// | 296 = v__ast__CastExpr
// | 297 = v__ast__ChanInit
// | 298 = v__ast__CharLiteral
// | 299 = v__ast__Comment
// | 300 = v__ast__ComptimeCall
// | 301 = v__ast__ComptimeSelector
// | 302 = v__ast__ComptimeType
// | 303 = v__ast__ConcatExpr
// | 304 = v__ast__DumpExpr
// | 305 = v__ast__EmptyExpr
// | 306 = v__ast__EnumVal
// | 307 = v__ast__FloatLiteral
// | 308 = v__ast__GoExpr
// | 309 = v__ast__Ident
// | 310 = v__ast__IfExpr
// | 311 = v__ast__IfGuardExpr
// | 312 = v__ast__IndexExpr
// | 313 = v__ast__InfixExpr
// | 314 = v__ast__IntegerLiteral
// | 315 = v__ast__IsRefType
// | 316 = v__ast__Likely
// | 317 = v__ast__LockExpr
// | 318 = v__ast__MapInit
// | 319 = v__ast__MatchExpr
// | 320 = v__ast__NodeError
// | 321 = v__ast__None
// | 322 = v__ast__OffsetOf
// | 323 = v__ast__OrExpr
// | 324 = v__ast__ParExpr
// | 325 = v__ast__PostfixExpr
// | 326 = v__ast__PrefixExpr
// | 327 = v__ast__RangeExpr
// | 328 = v__ast__SelectExpr
// | 329 = v__ast__SelectorExpr
// | 330 = v__ast__SizeOf
// | 331 = v__ast__SqlExpr
// | 332 = v__ast__StringInterLiteral
// | 333 = v__ast__StringLiteral
// | 334 = v__ast__StructInit
// | 335 = v__ast__TypeNode
// | 336 = v__ast__TypeOf
// | 337 = v__ast__UnsafeExpr
struct v__ast__Expr {
union {
v__ast__AnonFn* _v__ast__AnonFn;
v__ast__ArrayDecompose* _v__ast__ArrayDecompose;
v__ast__ArrayInit* _v__ast__ArrayInit;
v__ast__AsCast* _v__ast__AsCast;
v__ast__Assoc* _v__ast__Assoc;
v__ast__AtExpr* _v__ast__AtExpr;
v__ast__BoolLiteral* _v__ast__BoolLiteral;
v__ast__CTempVar* _v__ast__CTempVar;
v__ast__CallExpr* _v__ast__CallExpr;
v__ast__CastExpr* _v__ast__CastExpr;
v__ast__ChanInit* _v__ast__ChanInit;
v__ast__CharLiteral* _v__ast__CharLiteral;
v__ast__Comment* _v__ast__Comment;
v__ast__ComptimeCall* _v__ast__ComptimeCall;
v__ast__ComptimeSelector* _v__ast__ComptimeSelector;
v__ast__ComptimeType* _v__ast__ComptimeType;
v__ast__ConcatExpr* _v__ast__ConcatExpr;
v__ast__DumpExpr* _v__ast__DumpExpr;
v__ast__EmptyExpr* _v__ast__EmptyExpr;
v__ast__EnumVal* _v__ast__EnumVal;
v__ast__FloatLiteral* _v__ast__FloatLiteral;
v__ast__GoExpr* _v__ast__GoExpr;
v__ast__Ident* _v__ast__Ident;
v__ast__IfExpr* _v__ast__IfExpr;
v__ast__IfGuardExpr* _v__ast__IfGuardExpr;
v__ast__IndexExpr* _v__ast__IndexExpr;
v__ast__InfixExpr* _v__ast__InfixExpr;
v__ast__IntegerLiteral* _v__ast__IntegerLiteral;
v__ast__IsRefType* _v__ast__IsRefType;
v__ast__Likely* _v__ast__Likely;
v__ast__LockExpr* _v__ast__LockExpr;
v__ast__MapInit* _v__ast__MapInit;
v__ast__MatchExpr* _v__ast__MatchExpr;
v__ast__NodeError* _v__ast__NodeError;
v__ast__None* _v__ast__None;
v__ast__OffsetOf* _v__ast__OffsetOf;
v__ast__OrExpr* _v__ast__OrExpr;
v__ast__ParExpr* _v__ast__ParExpr;
v__ast__PostfixExpr* _v__ast__PostfixExpr;
v__ast__PrefixExpr* _v__ast__PrefixExpr;
v__ast__RangeExpr* _v__ast__RangeExpr;
v__ast__SelectExpr* _v__ast__SelectExpr;
v__ast__SelectorExpr* _v__ast__SelectorExpr;
v__ast__SizeOf* _v__ast__SizeOf;
v__ast__SqlExpr* _v__ast__SqlExpr;
v__ast__StringInterLiteral* _v__ast__StringInterLiteral;
v__ast__StringLiteral* _v__ast__StringLiteral;
v__ast__StructInit* _v__ast__StructInit;
v__ast__TypeNode* _v__ast__TypeNode;
v__ast__TypeOf* _v__ast__TypeOf;
v__ast__UnsafeExpr* _v__ast__UnsafeExpr;
};
int _typ;
};
// Union sum type v__ast__Stmt =
// | 339 = v__ast__AsmStmt
// | 340 = v__ast__AssertStmt
// | 341 = v__ast__AssignStmt
// | 342 = v__ast__Block
// | 343 = v__ast__BranchStmt
// | 344 = v__ast__ComptimeFor
// | 345 = v__ast__ConstDecl
// | 346 = v__ast__DeferStmt
// | 347 = v__ast__EmptyStmt
// | 348 = v__ast__EnumDecl
// | 349 = v__ast__ExprStmt
// | 220 = v__ast__FnDecl
// | 350 = v__ast__ForCStmt
// | 351 = v__ast__ForInStmt
// | 352 = v__ast__ForStmt
// | 353 = v__ast__GlobalDecl
// | 354 = v__ast__GotoLabel
// | 355 = v__ast__GotoStmt
// | 356 = v__ast__HashStmt
// | 357 = v__ast__Import
// | 358 = v__ast__InterfaceDecl
// | 359 = v__ast__Module
// | 320 = v__ast__NodeError
// | 360 = v__ast__Return
// | 361 = v__ast__SqlStmt
// | 362 = v__ast__StructDecl
// | 286 = v__ast__TypeDecl
struct v__ast__Stmt {
union {
v__ast__AsmStmt* _v__ast__AsmStmt;
v__ast__AssertStmt* _v__ast__AssertStmt;
v__ast__AssignStmt* _v__ast__AssignStmt;
v__ast__Block* _v__ast__Block;
v__ast__BranchStmt* _v__ast__BranchStmt;
v__ast__ComptimeFor* _v__ast__ComptimeFor;
v__ast__ConstDecl* _v__ast__ConstDecl;
v__ast__DeferStmt* _v__ast__DeferStmt;
v__ast__EmptyStmt* _v__ast__EmptyStmt;
v__ast__EnumDecl* _v__ast__EnumDecl;
v__ast__ExprStmt* _v__ast__ExprStmt;
v__ast__FnDecl* _v__ast__FnDecl;
v__ast__ForCStmt* _v__ast__ForCStmt;
v__ast__ForInStmt* _v__ast__ForInStmt;
v__ast__ForStmt* _v__ast__ForStmt;
v__ast__GlobalDecl* _v__ast__GlobalDecl;
v__ast__GotoLabel* _v__ast__GotoLabel;
v__ast__GotoStmt* _v__ast__GotoStmt;
v__ast__HashStmt* _v__ast__HashStmt;
v__ast__Import* _v__ast__Import;
v__ast__InterfaceDecl* _v__ast__InterfaceDecl;
v__ast__Module* _v__ast__Module;
v__ast__NodeError* _v__ast__NodeError;
v__ast__Return* _v__ast__Return;
v__ast__SqlStmt* _v__ast__SqlStmt;
v__ast__StructDecl* _v__ast__StructDecl;
v__ast__TypeDecl* _v__ast__TypeDecl;
};
int _typ;
v__token__Pos* pos;
};
// Union sum type v__ast__ScopeObject =
// | 364 = v__ast__AsmRegister
// | 365 = v__ast__ConstField
// | 366 = v__ast__GlobalField
// | 367 = v__ast__Var
struct v__ast__ScopeObject {
union {
v__ast__AsmRegister* _v__ast__AsmRegister;
v__ast__ConstField* _v__ast__ConstField;
v__ast__GlobalField* _v__ast__GlobalField;
v__ast__Var* _v__ast__Var;
};
int _typ;
string* name;
v__ast__Type* typ;
};
// Union sum type v__ast__Node =
// | 369 = v__ast__CallArg
// | 365 = v__ast__ConstField
// | 370 = v__ast__EmptyNode
// | 371 = v__ast__EnumField
// | 338 = v__ast__Expr
// | 211 = v__ast__File
// | 366 = v__ast__GlobalField
// | 372 = v__ast__IfBranch
// | 373 = v__ast__MatchBranch
// | 320 = v__ast__NodeError
// | 374 = v__ast__Param
// | 368 = v__ast__ScopeObject
// | 375 = v__ast__SelectBranch
// | 363 = v__ast__Stmt
// | 376 = v__ast__StructField
// | 377 = v__ast__StructInitField
struct v__ast__Node {
union {
v__ast__CallArg* _v__ast__CallArg;
v__ast__ConstField* _v__ast__ConstField;
v__ast__EmptyNode* _v__ast__EmptyNode;
v__ast__EnumField* _v__ast__EnumField;
v__ast__Expr* _v__ast__Expr;
v__ast__File* _v__ast__File;
v__ast__GlobalField* _v__ast__GlobalField;
v__ast__IfBranch* _v__ast__IfBranch;
v__ast__MatchBranch* _v__ast__MatchBranch;
v__ast__NodeError* _v__ast__NodeError;
v__ast__Param* _v__ast__Param;
v__ast__ScopeObject* _v__ast__ScopeObject;
v__ast__SelectBranch* _v__ast__SelectBranch;
v__ast__Stmt* _v__ast__Stmt;
v__ast__StructField* _v__ast__StructField;
v__ast__StructInitField* _v__ast__StructInitField;
};
int _typ;
};
// Union sum type v__ast__ComptTimeConstValue =
// | 305 = v__ast__EmptyExpr
// | 15 = f32
// | 16 = f64
// | 6 = i16
// | 8 = i64
// | 5 = i8
// | 7 = int
// | 21 = rune
// | 20 = string
// | 11 = u16
// | 12 = u32
// | 13 = u64
// | 10 = u8
struct v__ast__ComptTimeConstValue {
union {
v__ast__EmptyExpr* _v__ast__EmptyExpr;
f32* _f32;
f64* _f64;
i16* _i16;
i64* _i64;
i8* _i8;
int* _int;
rune* _rune;
string* _string;
u16* _u16;
u32* _u32;
u64* _u64;
u8* _u8;
};
int _typ;
};
// Union sum type v__ast__IdentInfo =
// | 418 = v__ast__IdentFn
// | 419 = v__ast__IdentVar
struct v__ast__IdentInfo {
union {
v__ast__IdentFn* _v__ast__IdentFn;
v__ast__IdentVar* _v__ast__IdentVar;
};
int _typ;
};
// Union sum type v__ast__AsmArg =
// | 439 = v__ast__AsmAddressing
// | 440 = v__ast__AsmAlias
// | 441 = v__ast__AsmDisp
// | 364 = v__ast__AsmRegister
// | 293 = v__ast__BoolLiteral
// | 298 = v__ast__CharLiteral
// | 307 = v__ast__FloatLiteral
// | 314 = v__ast__IntegerLiteral
// | 20 = string
struct v__ast__AsmArg {
union {
v__ast__AsmAddressing* _v__ast__AsmAddressing;
v__ast__AsmAlias* _v__ast__AsmAlias;
v__ast__AsmDisp* _v__ast__AsmDisp;
v__ast__AsmRegister* _v__ast__AsmRegister;
v__ast__BoolLiteral* _v__ast__BoolLiteral;
v__ast__CharLiteral* _v__ast__CharLiteral;
v__ast__FloatLiteral* _v__ast__FloatLiteral;
v__ast__IntegerLiteral* _v__ast__IntegerLiteral;
string* _string;
};
int _typ;
};
// Union sum type v__ast__TypeInfo =
// | 473 = v__ast__Aggregate
// | 475 = v__ast__Alias
// | 454 = v__ast__Array
// | 483 = v__ast__ArrayFixed
// | 484 = v__ast__Chan
// | 489 = v__ast__Enum
// | 487 = v__ast__FnType
// | 488 = v__ast__GenericInst
// | 478 = v__ast__Interface
// | 455 = v__ast__Map
// | 486 = v__ast__MultiReturn
// | 459 = v__ast__Struct
// | 479 = v__ast__SumType
// | 485 = v__ast__Thread
struct v__ast__TypeInfo {
union {
v__ast__Aggregate* _v__ast__Aggregate;
v__ast__Alias* _v__ast__Alias;
v__ast__Array* _v__ast__Array;
v__ast__ArrayFixed* _v__ast__ArrayFixed;
v__ast__Chan* _v__ast__Chan;
v__ast__Enum* _v__ast__Enum;
v__ast__FnType* _v__ast__FnType;
v__ast__GenericInst* _v__ast__GenericInst;
v__ast__Interface* _v__ast__Interface;
v__ast__Map* _v__ast__Map;
v__ast__MultiReturn* _v__ast__MultiReturn;
v__ast__Struct* _v__ast__Struct;
v__ast__SumType* _v__ast__SumType;
v__ast__Thread* _v__ast__Thread;
};
int _typ;
};
struct v__gen__c__UnsupportedAssertCtempTransform {
Error Error;
};
struct v__gen__c__ProfileCounterMeta {
string fn_name;
string vpc_name;
string vpc_calls;
};
struct sync__Subscription {
sync__Semaphore* sem;
sync__Subscription** prev;
sync__Subscription* nxt;
};
struct flag__UnkownFlagError {
Error Error;
string flag;
};
struct semver__EmptyInputError {
Error Error;
};
struct semver__InvalidVersionFormatError {
Error Error;
string input;
};
struct VCastTypeIndexName {
int tindex;
string tname;
};
struct VAssertMetaInfo {
string fpath;
int line_nr;
string fn_name;
string src;
string op;
string llabel;
string rlabel;
string lvalue;
string rvalue;
};
struct MethodArgs {
int typ;
string name;
};
struct FunctionData {
string name;
Array_string attrs;
Array_MethodArgs args;
int return_type;
int typ;
};
struct FieldData {
string name;
Array_string attrs;
bool is_pub;
bool is_mut;
bool is_shared;
int typ;
};
struct StructAttribute {
string name;
bool has_arg;
string arg;
AttributeKind kind;
};
struct Line64 {
u32 f_size_of_struct;
voidptr f_key;
u32 f_line_number;
u8* f_file_name;
u64 f_address;
};
struct ExceptionRecord {
u32 code;
u32 flags;
ExceptionRecord* record;
voidptr address;
u32 param_count;
};
union strconv__Float64u {
f64 f;
u64 u;
};
union strconv__Float32u {
f32 f;
u32 u;
};
struct MessageError {
string msg;
int code;
};
struct Option {
u8 state;
IError err;
};
struct VMemoryBlock {
int id;
isize cap;
byte* start;
VMemoryBlock* previous;
isize remaining;
u8* current;
int mallocs;
};
struct SortedMap {
int value_bytes;
mapnode* root;
int len;
};
struct RepIndex {
int idx;
int val_idx;
};
union StrIntpMem {
u32 d_c;
byte d_u8;
i8 d_i8;
u16 d_u16;
i16 d_i16;
u32 d_u32;
int d_i32;
u64 d_u64;
i64 d_i64;
f32 d_f32;
f64 d_f64;
string d_s;
voidptr d_p;
voidptr d_vp;
};
struct strconv__BF_param {
u8 pad_ch;
int len0;
int len1;
bool positive;
bool sign_flag;
strconv__Align_text allign;
bool rm_tail_zero;
};
struct strconv__PrepNumber {
bool negative;
int exponent;
u64 mantissa;
};
struct strconv__Dec32 {
u32 m;
int e;
};
union strconv__Uf32 {
f32 f;
u32 u;
};
struct strconv__Dec64 {
u64 m;
int e;
};
union strconv__Uf64 {
f64 f;
u64 u;
};
struct strconv__Uint128 {
u64 lo;
u64 hi;
};
struct os__File {
voidptr cfile;
int fd;
bool is_opened;
};
struct os__FileInfo {
string name;
int size;
};
struct os__FilePermission {
bool read;
bool write;
bool execute;
};
struct os__Result {
int exit_code;
string output;
};
struct os__Command {
voidptr f;
bool eof;
int exit_code;
string path;
bool redirect_stdout;
};
struct os__Filetime {
u32 dw_low_date_time;
u32 dw_high_date_time;
};
struct os__ProcessInformation {
voidptr h_process;
voidptr h_thread;
u32 dw_process_id;
u32 dw_thread_id;
};
struct os__StartupInfo {
u32 cb;
u16* lp_reserved;
u16* lp_desktop;
u16* lp_title;
u32 dw_x;
u32 dw_y;
u32 dw_x_size;
u32 dw_y_size;
u32 dw_x_count_chars;
u32 dw_y_count_chars;
u32 dw_fill_attributes;
u32 dw_flags;
u16 w_show_window;
u16 cb_reserved2;
u8* lp_reserved2;
voidptr h_std_input;
voidptr h_std_output;
voidptr h_std_error;
};
struct os__SecurityAttributes {
u32 n_length;
voidptr lp_security_descriptor;
bool b_inherit_handle;
};
struct os__ExceptionRecord {
u32 code;
u32 flags;
ExceptionRecord* record;
voidptr address;
u32 param_count;
};
struct term__Coord {
int x;
int y;
};
struct v__vcache__CacheManager {
string basepath;
string original_vopts;
string vopts;
Map_string_string k2cpath;
};
struct v__util__EManager {
bool support_color;
};
struct v__token__Pos {
int len;
int line_nr;
int pos;
int col;
int last_line;
};
struct v__util__LinesCache {
Map_string_Array_string lines;
};
struct v__util__Possibility {
string value;
string svalue;
f32 similarity;
};
struct v__util__Suggestion {
Array_v__util__Possibility known;
string wanted;
string swanted;
};
struct v__util__Surrounder {
Array_string befores;
Array_string afters;
};
struct time__StopWatch {
u64 elapsed;
u64 start;
u64 end;
};
struct v__util__Timers {
string label;
Map_string_time__StopWatch swatches;
bool should_print;
Array_string already_shown;
};
struct v__util__TimerParams {
bool should_print;