The following public C routines are new in release 8.5 of the Tcl/Tk libraries:
int Tcl_FSEvalFileEx(Tcl_Interp *interp, Tcl_Obj *fileName, CONST char *encodingName) Tcl_ExitProc *Tcl_SetExitProc(Tcl_ExitProc *proc) void Tcl_LimitAddHandler(Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc) void Tcl_LimitRemoveHandler(Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData) int Tcl_LimitReady(Tcl_Interp *interp) int Tcl_LimitCheck(Tcl_Interp *interp) int Tcl_LimitExceeded(Tcl_Interp *interp) void Tcl_LimitSetCommands(Tcl_Interp *interp, int commandLimit) void Tcl_LimitSetTime(Tcl_Interp *interp, Tcl_Time *timeLimitPtr) void Tcl_LimitSetGranularity(Tcl_Interp *interp, int type, int granularity) int Tcl_LimitTypeEnabled(Tcl_Interp *interp, int type) int Tcl_LimitTypeExceeded(Tcl_Interp *interp, int type) void Tcl_LimitTypeSet(Tcl_Interp *interp, int type) void Tcl_LimitTypeReset(Tcl_Interp *interp, int type) int Tcl_LimitGetCommands(Tcl_Interp *interp) void Tcl_LimitGetTime(Tcl_Interp *interp, Tcl_Time *timeLimitPtr) int Tcl_LimitGetGranularity(Tcl_Interp *interp, int type) Tcl_InterpState Tcl_SaveInterpState(Tcl_Interp *interp, int status) int Tcl_RestoreInterpState(Tcl_Interp *interp, Tcl_InterpState state) void Tcl_DiscardInterpState(Tcl_InterpState state) int Tcl_SetReturnOptions(Tcl_Interp *interp, Tcl_Obj *options) Tcl_Obj *Tcl_GetReturnOptions(Tcl_Interp *interp, int result) int Tcl_IsEnsemble(Tcl_Command token) Tcl_Command Tcl_CreateEnsemble(Tcl_Interp *interp, CONST char *name, Tcl_Namespace *namespacePtr, int flags) Tcl_Command Tcl_FindEnsemble(Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags) int Tcl_SetEnsembleSubcommandList(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList) int Tcl_SetEnsembleMappingDict(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict) int Tcl_SetEnsembleUnknownHandler(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList) int Tcl_SetEnsembleFlags(Tcl_Interp *interp, Tcl_Command token, int flags) int Tcl_GetEnsembleSubcommandList(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr) int Tcl_GetEnsembleMappingDict(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr) int Tcl_GetEnsembleUnknownHandler(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr) int Tcl_GetEnsembleFlags(Tcl_Interp *interp, Tcl_Command token, int *flagsPtr) int Tcl_GetEnsembleNamespace(Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr) void Tcl_SetTimeProc(Tcl_GetTimeProc* getProc, Tcl_ScaleTimeProc* scaleProc, ClientData clientData) void Tcl_QueryTimeProc(Tcl_GetTimeProc** getProc, Tcl_ScaleTimeProc** scaleProc, ClientData* clientData) Tcl_DriverThreadActionProc *Tcl_ChannelThreadActionProc( CONST Tcl_ChannelType *chanTypePtr) Tcl_Obj* Tcl_NewBignumObj(mp_int* value) Tcl_Obj* Tcl_DbNewBignumObj(mp_int* value, CONST char* file, int line) void Tcl_SetBignumObj(Tcl_Obj* obj, mp_int* value) int Tcl_GetBignumFromObj(Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value) int Tcl_TakeBignumFromObj(Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value) int Tcl_TruncateChannel(Tcl_Channel chan, Tcl_WideInt length) Tcl_DriverTruncateProc *Tcl_ChannelTruncateProc( CONST Tcl_ChannelType *chanTypePtr) void Tcl_SetChannelErrorInterp(Tcl_Interp* interp, Tcl_Obj* msg) void Tcl_GetChannelErrorInterp(Tcl_Interp* interp, Tcl_Obj** msg) void Tcl_SetChannelError(Tcl_Channel chan, Tcl_Obj* msg) void Tcl_GetChannelError(Tcl_Channel chan, Tcl_Obj** msg) int Tcl_InitBignumFromDouble(Tcl_Interp* interp, double initval, mp_int *toInit) Tcl_Obj *Tcl_GetNamespaceUnknownHandler(Tcl_Interp *interp, Tcl_Namespace *nsPtr) int Tcl_SetNamespaceUnknownHandler( Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr) int Tcl_GetEncodingFromObj(Tcl_Interp* interp, Tcl_Obj* objPtr, Tcl_Encoding* encodingPtr) Tcl_Obj* Tcl_GetEncodingSearchPath(void) int Tcl_SetEncodingSearchPath(Tcl_Obj* searchPath) CONST char *Tcl_GetEncodingNameFromEnvironment(Tcl_DString* bufPtr) int Tcl_PkgRequireProc(Tcl_Interp *interp, CONST char *name, int objc, Tcl_Obj *CONST objv[], ClientData *clientDataPtr) void Tcl_AppendObjToErrorInfo(Tcl_Interp *interp, Tcl_Obj *objPtr) void Tcl_AppendLimitedToObj(Tcl_Obj *objPtr, CONST char *bytes, int length, int limit, CONST char *ellipsis) Tcl_Obj * Tcl_Format(Tcl_Interp *interp, CONST char *format, int objc, Tcl_Obj * CONST objv[]) int Tcl_AppendFormatToObj(Tcl_Interp *interp, Tcl_Obj *objPtr, CONST char *format, int objc, Tcl_Obj * CONST objv[]) Tcl_Obj * Tcl_ObjPrintf(CONST char *format, ...) void Tcl_AppendPrintfToObj(Tcl_Obj *objPtr, CONST char *format, ...)