約 4,430,109 件
https://w.atwiki.jp/rrtserver/pages/16.html
Buildcraft A3.4.3 BC Additinail Object 1.0.1.88 CoFHCore 1.4.7.3 Craftguide 1.6.5.12 CustomMobSpawner 1.11 Mo Creatures 4.5.1 extrabees 1.5.0.2 ExtrabiomeXL 3.9.0 Forestory for Minecraft A 2.0.0.10 IndustrialCraft2 1.115.213-lf ItemCraftingRecipeDisabler 1.4.6a Logisticpipes 0.7.0.86 Advanced Solor Panels 3.3.2 Railcraft 6.15.3.0 Thaumcraft3.0.3 thaumicbees 1.4.0a thermalExpansion 2.2.2.2 TwilightForest 1.15.2 推奨Client Mods ingameinfo Rei s minimap SpawnChecker 検討中Mods 斜面ブロックMOD FossilandArcheologyRevival JammyFurnitureMod
https://w.atwiki.jp/natsutan/pages/29.html
概要 generic/tclBasic.c 引数 Tcl_Interp *interp TCL インタープリタへのポインター const char *script 実行するコマンド int numBytes scriptのバイト数。0より小さいときは全バイト。 int flags 制御フラグTCL_EVAL_GLOBALのみサポート int line スクリプトの開始行数 int* clNextOuter CONST char* outerScript outerスクリプト。一番outer(呼び出しの浅い)スクリプトを示す。outerScript == scriptの時、一番outerなスクリプトであることを示す。 戻り値 実行結果 処理 変数の宣言 Interp *iPtr = (Interp *) interp; const char *p, *next; const unsigned int minObjs = 20; Tcl_Obj **objv, **objvSpace; int *expand, *lines, *lineSpace; Tcl_Token *tokenPtr; int commandLength, bytesLeft, expandRequested, code = TCL_OK; CallFrame *savedVarFramePtr;/* Saves old copy of iPtr- varFramePtr in case * TCL_EVAL_GLOBAL was set. */ int allowExceptions = (iPtr- evalFlags TCL_ALLOW_EXCEPTIONS); int gotParse = 0; unsigned int i, objectsUsed = 0; /* These variables keep track of how much * state has been allocated while evaluating * the script, so that it can be freed * properly if an error occurs. */ Tcl_Parse *parsePtr = (Tcl_Parse *) TclStackAlloc(interp, sizeof(Tcl_Parse)); CmdFrame *eeFramePtr = (CmdFrame *) TclStackAlloc(interp, sizeof(CmdFrame)); Tcl_Obj **stackObjArray = (Tcl_Obj **) TclStackAlloc(interp, minObjs * sizeof(Tcl_Obj *)); int *expandStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); int *linesStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); /* TIP #280 Structures for tracking of command * locations. */ /* * Pointer for the tracking of invisible continuation lines. Initialized * only if the caller gave us a table of locations to track, via * scriptCLLocPtr. It always refers to the table entry holding the * location of the next invisible continuation line to look for, while * parsing the script. */ int* clNext = NULL; if (iPtr- scriptCLLocPtr) { if (clNextOuter) { clNext = clNextOuter; } else { clNext = iPtr- scriptCLLocPtr- loc[0]; } } if (numBytes 0) { numBytes = strlen(script); } Tcl_ResetResult(interp); savedVarFramePtr = iPtr- varFramePtr; if (flags TCL_EVAL_GLOBAL) { iPtr- varFramePtr = iPtr- rootFramePtr; } /* * Each iteration through the following loop parses the next command from * the script and then executes it. */ objv = objvSpace = stackObjArray; lines = lineSpace = linesStack; expand = expandStack; p = script; bytesLeft = numBytes; /* * TIP #280 Initialize tracking. Do not push on the frame stack yet. * * We may continue counting based on a specific context (CTX), or open a * new context, either for a sourced script, or eval . For sourced files * we always have a path object, even if nothing was specified in the * interp itself. That makes code using it simpler as NULL checks can be * left out. Sourced file without path in the scriptFile is possible * during Tcl initialization. */ if (iPtr- evalFlags TCL_EVAL_CTX) { /* * Path information comes out of the context. */ eeFramePtr- type = TCL_LOCATION_SOURCE; eeFramePtr- data.eval.path = iPtr- invokeCmdFramePtr- data.eval.path; Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else if (iPtr- evalFlags TCL_EVAL_FILE) { /* * Set up for a sourced file. */ eeFramePtr- type = TCL_LOCATION_SOURCE; if (iPtr- scriptFile) { /* * Normalization here, to have the correct pwd. Should have * negligible impact on performance, as the norm should have been * done already by the source invoking us, and it caches the * result. */ Tcl_Obj *norm = Tcl_FSGetNormalizedPath(interp, iPtr- scriptFile); if (norm == NULL) { /* * Error message in the interp result. */ code = TCL_ERROR; goto error; } eeFramePtr- data.eval.path = norm; } else { TclNewLiteralStringObj(eeFramePtr- data.eval.path, ""); } Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else { /* * Set up for plain eval. */ eeFramePtr- type = TCL_LOCATION_EVAL; eeFramePtr- data.eval.path = NULL; } eeFramePtr- level = iPtr- cmdFramePtr ? iPtr- cmdFramePtr- level + 1 1; eeFramePtr- framePtr = iPtr- framePtr; eeFramePtr- nextPtr = iPtr- cmdFramePtr; eeFramePtr- nline = 0; eeFramePtr- line = NULL; iPtr- evalFlags = 0; do { if (Tcl_ParseCommand(interp, p, bytesLeft, 0, parsePtr) != TCL_OK) { code = TCL_ERROR; goto error; } /* * TIP #280 Track lines. The parser may have skipped text till it * found the command we are now at. We have to count the lines in this * block, and do not forget invisible continuation lines. */ TclAdvanceLines( line, p, parsePtr- commandStart); TclAdvanceContinuations ( line, clNext, parsePtr- commandStart - outerScript); gotParse = 1; if (parsePtr- numWords 0) { /* * TIP #280. Track lines within the words of the current * command. We use a separate pointer into the table of * continuation line locations to not lose our position for the * per-command parsing. */ int wordLine = line; const char *wordStart = parsePtr- commandStart; int* wordCLNext = clNext; /* * Generate an array of objects for the words of the command. */ unsigned int objectsNeeded = 0; unsigned int numWords = parsePtr- numWords; if (numWords minObjs) { expand = (int *) ckalloc(numWords * sizeof(int)); objvSpace = (Tcl_Obj **) ckalloc(numWords * sizeof(Tcl_Obj *)); lineSpace = (int *) ckalloc(numWords * sizeof(int)); } expandRequested = 0; objv = objvSpace; lines = lineSpace; for (objectsUsed = 0, tokenPtr = parsePtr- tokenPtr; objectsUsed numWords; objectsUsed++, tokenPtr += tokenPtr- numComponents+1) { /* * TIP #280. Track lines to current word. Save the information * on a per-word basis, signaling dynamic words as needed. * Make the information available to the recursively called * evaluator as well, including the type of context (source * vs. eval). */ TclAdvanceLines( wordLine, wordStart, tokenPtr- start); TclAdvanceContinuations ( wordLine, wordCLNext, tokenPtr- start - outerScript); wordStart = tokenPtr- start; lines[objectsUsed] = TclWordKnownAtCompileTime(tokenPtr, NULL) ? wordLine -1; if (eeFramePtr- type == TCL_LOCATION_SOURCE) { iPtr- evalFlags |= TCL_EVAL_FILE; } code = TclSubstTokens(interp, tokenPtr+1, tokenPtr- numComponents, NULL, wordLine, wordCLNext, outerScript); iPtr- evalFlags = 0; if (code != TCL_OK) { goto error; } objv[objectsUsed] = Tcl_GetObjResult(interp); Tcl_IncrRefCount(objv[objectsUsed]); if (tokenPtr- type == TCL_TOKEN_EXPAND_WORD) { int numElements; code = TclListObjLength(interp, objv[objectsUsed], numElements); if (code == TCL_ERROR) { /* * Attempt to expand a non-list. */ Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( "\n (expanding word %d)", objectsUsed)); Tcl_DecrRefCount(objv[objectsUsed]); goto error; } expandRequested = 1; expand[objectsUsed] = 1; objectsNeeded += (numElements ? numElements 1); } else { expand[objectsUsed] = 0; objectsNeeded++; } if (wordCLNext) { TclContinuationsEnterDerived (objv[objectsUsed], wordStart - outerScript, wordCLNext); } } /* for loop */ if (expandRequested) { /* * Some word expansion was requested. Check for objv resize. */ Tcl_Obj **copy = objvSpace; int *lcopy = lineSpace; int wordIdx = numWords; int objIdx = objectsNeeded - 1; if ((numWords minObjs) || (objectsNeeded minObjs)) { objv = objvSpace = (Tcl_Obj **) ckalloc(objectsNeeded * sizeof(Tcl_Obj *)); lines = lineSpace = (int *) ckalloc(objectsNeeded * sizeof(int)); } objectsUsed = 0; while (wordIdx--) { if (expand[wordIdx]) { int numElements; Tcl_Obj **elements, *temp = copy[wordIdx]; Tcl_ListObjGetElements(NULL, temp, numElements, elements); objectsUsed += numElements; while (numElements--) { lines[objIdx] = -1; objv[objIdx--] = elements[numElements]; Tcl_IncrRefCount(elements[numElements]); } Tcl_DecrRefCount(temp); } else { lines[objIdx] = lcopy[wordIdx]; objv[objIdx--] = copy[wordIdx]; objectsUsed++; } } objv += objIdx+1; if (copy != stackObjArray) { ckfree((char *) copy); } if (lcopy != linesStack) { ckfree((char *) lcopy); } } /* * Execute the command and free the objects for its words. * * TIP #280 Remember the command itself for info frame . We * shorten the visible command by one char to exclude the * termination character, if necessary. Here is where we put our * frame on the stack of frames too. _After_ the nested commands * have been executed. */ eeFramePtr- cmd.str.cmd = parsePtr- commandStart; eeFramePtr- cmd.str.len = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + parsePtr- commandSize - 1) { eeFramePtr- cmd.str.len--; } eeFramePtr- nline = objectsUsed; eeFramePtr- line = lines; TclArgumentEnter (interp, objv, objectsUsed, eeFramePtr); iPtr- cmdFramePtr = eeFramePtr; iPtr- numLevels++; code = TclEvalObjvInternal(interp, objectsUsed, objv, parsePtr- commandStart, parsePtr- commandSize, 0); iPtr- numLevels--; iPtr- cmdFramePtr = iPtr- cmdFramePtr- nextPtr; TclArgumentRelease (interp, objv, objectsUsed); eeFramePtr- line = NULL; eeFramePtr- nline = 0; if (code != TCL_OK) { goto error; } for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } objectsUsed = 0; if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); objvSpace = stackObjArray; ckfree((char *) lineSpace); lineSpace = linesStack; } /* * Free expand separately since objvSpace could have been * reallocated above. */ if (expand != expandStack) { ckfree((char *) expand); expand = expandStack; } } /* * Advance to the next command in the script. * * TIP #280 Track Lines. Now we track how many lines were in the * executed command. */ next = parsePtr- commandStart + parsePtr- commandSize; bytesLeft -= next - p; p = next; TclAdvanceLines( line, parsePtr- commandStart, p); Tcl_FreeParse(parsePtr); gotParse = 0; } while (bytesLeft 0); iPtr- varFramePtr = savedVarFramePtr; code = TCL_OK; goto cleanup_return; error /* * Generate and log various pieces of error information. */ if (iPtr- numLevels == 0) { if (code == TCL_RETURN) { code = TclUpdateReturnInfo(iPtr); } if ((code != TCL_OK) (code != TCL_ERROR) !allowExceptions) { ProcessUnexpectedResult(interp, code); code = TCL_ERROR; } } if ((code == TCL_ERROR) !(iPtr- flags ERR_ALREADY_LOGGED)) { commandLength = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + commandLength - 1) { /* * The terminator character (such as ; or ]) of the command where * the error occurred is the last character in the parsed command. * Reduce the length by one so that the error message doesn t * include the terminator character. */ commandLength -= 1; } Tcl_LogCommandInfo(interp, script, parsePtr- commandStart, commandLength); } iPtr- flags = ~ERR_ALREADY_LOGGED; /* * Then free resources that had been allocated to the command. */ for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } if (gotParse) { Tcl_FreeParse(parsePtr); } if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); ckfree((char *) lineSpace); } if (expand != expandStack) { ckfree((char *) expand); } iPtr- varFramePtr = savedVarFramePtr; cleanup_return /* * TIP #280. Release the local CmdFrame, and its contents. */ if (eeFramePtr- type == TCL_LOCATION_SOURCE) { Tcl_DecrRefCount(eeFramePtr- data.eval.path); } TclStackFree(interp, linesStack); TclStackFree(interp, expandStack); TclStackFree(interp, stackObjArray); TclStackFree(interp, eeFramePtr); TclStackFree(interp, parsePtr); return code; } ソース int TclEvalEx( Tcl_Interp *interp,/* Interpreter in which to evaluate the * script. Also used for error reporting. */ const char *script,/* First character of script to evaluate. */ int numBytes,/* Number of bytes in script. If 0, the * script consists of all bytes up to the * first NUL character. */ int flags,/* Collection of OR-ed bits that control the * evaluation of the script. Only * TCL_EVAL_GLOBAL is currently supported. */ int line,/* The line the script starts on. */ int* clNextOuter, /* Information about an outer context for */ CONST char* outerScript) /* continuation line data. This is set only in * TclSubstTokens(), to properly handle * [...]-nested commands. The outerScript * refers to the most-outer script containing the * embedded command, which is refered to by * script . The clNextOuter refers to the * current entry in the table of continuation * lines in this "master script", and the * character offsets are relative to the * outerScript as well. * * If outerScript == script, then this call is * for the outer-most script/command. See * Tcl_EvalEx() and TclEvalObjEx() for places * generating arguments for which this is true. */ { Interp *iPtr = (Interp *) interp; const char *p, *next; const unsigned int minObjs = 20; Tcl_Obj **objv, **objvSpace; int *expand, *lines, *lineSpace; Tcl_Token *tokenPtr; int commandLength, bytesLeft, expandRequested, code = TCL_OK; CallFrame *savedVarFramePtr;/* Saves old copy of iPtr- varFramePtr in case * TCL_EVAL_GLOBAL was set. */ int allowExceptions = (iPtr- evalFlags TCL_ALLOW_EXCEPTIONS); int gotParse = 0; unsigned int i, objectsUsed = 0; /* These variables keep track of how much * state has been allocated while evaluating * the script, so that it can be freed * properly if an error occurs. */ Tcl_Parse *parsePtr = (Tcl_Parse *) TclStackAlloc(interp, sizeof(Tcl_Parse)); CmdFrame *eeFramePtr = (CmdFrame *) TclStackAlloc(interp, sizeof(CmdFrame)); Tcl_Obj **stackObjArray = (Tcl_Obj **) TclStackAlloc(interp, minObjs * sizeof(Tcl_Obj *)); int *expandStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); int *linesStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int)); /* TIP #280 Structures for tracking of command * locations. */ /* * Pointer for the tracking of invisible continuation lines. Initialized * only if the caller gave us a table of locations to track, via * scriptCLLocPtr. It always refers to the table entry holding the * location of the next invisible continuation line to look for, while * parsing the script. */ int* clNext = NULL; if (iPtr- scriptCLLocPtr) { if (clNextOuter) { clNext = clNextOuter; } else { clNext = iPtr- scriptCLLocPtr- loc[0]; } } if (numBytes 0) { numBytes = strlen(script); } Tcl_ResetResult(interp); savedVarFramePtr = iPtr- varFramePtr; if (flags TCL_EVAL_GLOBAL) { iPtr- varFramePtr = iPtr- rootFramePtr; } /* * Each iteration through the following loop parses the next command from * the script and then executes it. */ objv = objvSpace = stackObjArray; lines = lineSpace = linesStack; expand = expandStack; p = script; bytesLeft = numBytes; /* * TIP #280 Initialize tracking. Do not push on the frame stack yet. * * We may continue counting based on a specific context (CTX), or open a * new context, either for a sourced script, or eval . For sourced files * we always have a path object, even if nothing was specified in the * interp itself. That makes code using it simpler as NULL checks can be * left out. Sourced file without path in the scriptFile is possible * during Tcl initialization. */ if (iPtr- evalFlags TCL_EVAL_CTX) { /* * Path information comes out of the context. */ eeFramePtr- type = TCL_LOCATION_SOURCE; eeFramePtr- data.eval.path = iPtr- invokeCmdFramePtr- data.eval.path; Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else if (iPtr- evalFlags TCL_EVAL_FILE) { /* * Set up for a sourced file. */ eeFramePtr- type = TCL_LOCATION_SOURCE; if (iPtr- scriptFile) { /* * Normalization here, to have the correct pwd. Should have * negligible impact on performance, as the norm should have been * done already by the source invoking us, and it caches the * result. */ Tcl_Obj *norm = Tcl_FSGetNormalizedPath(interp, iPtr- scriptFile); if (norm == NULL) { /* * Error message in the interp result. */ code = TCL_ERROR; goto error; } eeFramePtr- data.eval.path = norm; } else { TclNewLiteralStringObj(eeFramePtr- data.eval.path, ""); } Tcl_IncrRefCount(eeFramePtr- data.eval.path); } else { /* * Set up for plain eval. */ eeFramePtr- type = TCL_LOCATION_EVAL; eeFramePtr- data.eval.path = NULL; } eeFramePtr- level = iPtr- cmdFramePtr ? iPtr- cmdFramePtr- level + 1 1; eeFramePtr- framePtr = iPtr- framePtr; eeFramePtr- nextPtr = iPtr- cmdFramePtr; eeFramePtr- nline = 0; eeFramePtr- line = NULL; iPtr- evalFlags = 0; do { if (Tcl_ParseCommand(interp, p, bytesLeft, 0, parsePtr) != TCL_OK) { code = TCL_ERROR; goto error; } /* * TIP #280 Track lines. The parser may have skipped text till it * found the command we are now at. We have to count the lines in this * block, and do not forget invisible continuation lines. */ TclAdvanceLines( line, p, parsePtr- commandStart); TclAdvanceContinuations ( line, clNext, parsePtr- commandStart - outerScript); gotParse = 1; if (parsePtr- numWords 0) { /* * TIP #280. Track lines within the words of the current * command. We use a separate pointer into the table of * continuation line locations to not lose our position for the * per-command parsing. */ int wordLine = line; const char *wordStart = parsePtr- commandStart; int* wordCLNext = clNext; /* * Generate an array of objects for the words of the command. */ unsigned int objectsNeeded = 0; unsigned int numWords = parsePtr- numWords; if (numWords minObjs) { expand = (int *) ckalloc(numWords * sizeof(int)); objvSpace = (Tcl_Obj **) ckalloc(numWords * sizeof(Tcl_Obj *)); lineSpace = (int *) ckalloc(numWords * sizeof(int)); } expandRequested = 0; objv = objvSpace; lines = lineSpace; for (objectsUsed = 0, tokenPtr = parsePtr- tokenPtr; objectsUsed numWords; objectsUsed++, tokenPtr += tokenPtr- numComponents+1) { /* * TIP #280. Track lines to current word. Save the information * on a per-word basis, signaling dynamic words as needed. * Make the information available to the recursively called * evaluator as well, including the type of context (source * vs. eval). */ TclAdvanceLines( wordLine, wordStart, tokenPtr- start); TclAdvanceContinuations ( wordLine, wordCLNext, tokenPtr- start - outerScript); wordStart = tokenPtr- start; lines[objectsUsed] = TclWordKnownAtCompileTime(tokenPtr, NULL) ? wordLine -1; if (eeFramePtr- type == TCL_LOCATION_SOURCE) { iPtr- evalFlags |= TCL_EVAL_FILE; } code = TclSubstTokens(interp, tokenPtr+1, tokenPtr- numComponents, NULL, wordLine, wordCLNext, outerScript); iPtr- evalFlags = 0; if (code != TCL_OK) { goto error; } objv[objectsUsed] = Tcl_GetObjResult(interp); Tcl_IncrRefCount(objv[objectsUsed]); if (tokenPtr- type == TCL_TOKEN_EXPAND_WORD) { int numElements; code = TclListObjLength(interp, objv[objectsUsed], numElements); if (code == TCL_ERROR) { /* * Attempt to expand a non-list. */ Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( "\n (expanding word %d)", objectsUsed)); Tcl_DecrRefCount(objv[objectsUsed]); goto error; } expandRequested = 1; expand[objectsUsed] = 1; objectsNeeded += (numElements ? numElements 1); } else { expand[objectsUsed] = 0; objectsNeeded++; } if (wordCLNext) { TclContinuationsEnterDerived (objv[objectsUsed], wordStart - outerScript, wordCLNext); } } /* for loop */ if (expandRequested) { /* * Some word expansion was requested. Check for objv resize. */ Tcl_Obj **copy = objvSpace; int *lcopy = lineSpace; int wordIdx = numWords; int objIdx = objectsNeeded - 1; if ((numWords minObjs) || (objectsNeeded minObjs)) { objv = objvSpace = (Tcl_Obj **) ckalloc(objectsNeeded * sizeof(Tcl_Obj *)); lines = lineSpace = (int *) ckalloc(objectsNeeded * sizeof(int)); } objectsUsed = 0; while (wordIdx--) { if (expand[wordIdx]) { int numElements; Tcl_Obj **elements, *temp = copy[wordIdx]; Tcl_ListObjGetElements(NULL, temp, numElements, elements); objectsUsed += numElements; while (numElements--) { lines[objIdx] = -1; objv[objIdx--] = elements[numElements]; Tcl_IncrRefCount(elements[numElements]); } Tcl_DecrRefCount(temp); } else { lines[objIdx] = lcopy[wordIdx]; objv[objIdx--] = copy[wordIdx]; objectsUsed++; } } objv += objIdx+1; if (copy != stackObjArray) { ckfree((char *) copy); } if (lcopy != linesStack) { ckfree((char *) lcopy); } } /* * Execute the command and free the objects for its words. * * TIP #280 Remember the command itself for info frame . We * shorten the visible command by one char to exclude the * termination character, if necessary. Here is where we put our * frame on the stack of frames too. _After_ the nested commands * have been executed. */ eeFramePtr- cmd.str.cmd = parsePtr- commandStart; eeFramePtr- cmd.str.len = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + parsePtr- commandSize - 1) { eeFramePtr- cmd.str.len--; } eeFramePtr- nline = objectsUsed; eeFramePtr- line = lines; TclArgumentEnter (interp, objv, objectsUsed, eeFramePtr); iPtr- cmdFramePtr = eeFramePtr; iPtr- numLevels++; code = TclEvalObjvInternal(interp, objectsUsed, objv, parsePtr- commandStart, parsePtr- commandSize, 0); iPtr- numLevels--; iPtr- cmdFramePtr = iPtr- cmdFramePtr- nextPtr; TclArgumentRelease (interp, objv, objectsUsed); eeFramePtr- line = NULL; eeFramePtr- nline = 0; if (code != TCL_OK) { goto error; } for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } objectsUsed = 0; if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); objvSpace = stackObjArray; ckfree((char *) lineSpace); lineSpace = linesStack; } /* * Free expand separately since objvSpace could have been * reallocated above. */ if (expand != expandStack) { ckfree((char *) expand); expand = expandStack; } } /* * Advance to the next command in the script. * * TIP #280 Track Lines. Now we track how many lines were in the * executed command. */ next = parsePtr- commandStart + parsePtr- commandSize; bytesLeft -= next - p; p = next; TclAdvanceLines( line, parsePtr- commandStart, p); Tcl_FreeParse(parsePtr); gotParse = 0; } while (bytesLeft 0); iPtr- varFramePtr = savedVarFramePtr; code = TCL_OK; goto cleanup_return; error /* * Generate and log various pieces of error information. */ if (iPtr- numLevels == 0) { if (code == TCL_RETURN) { code = TclUpdateReturnInfo(iPtr); } if ((code != TCL_OK) (code != TCL_ERROR) !allowExceptions) { ProcessUnexpectedResult(interp, code); code = TCL_ERROR; } } if ((code == TCL_ERROR) !(iPtr- flags ERR_ALREADY_LOGGED)) { commandLength = parsePtr- commandSize; if (parsePtr- term == parsePtr- commandStart + commandLength - 1) { /* * The terminator character (such as ; or ]) of the command where * the error occurred is the last character in the parsed command. * Reduce the length by one so that the error message doesn t * include the terminator character. */ commandLength -= 1; } Tcl_LogCommandInfo(interp, script, parsePtr- commandStart, commandLength); } iPtr- flags = ~ERR_ALREADY_LOGGED; /* * Then free resources that had been allocated to the command. */ for (i = 0; i objectsUsed; i++) { Tcl_DecrRefCount(objv[i]); } if (gotParse) { Tcl_FreeParse(parsePtr); } if (objvSpace != stackObjArray) { ckfree((char *) objvSpace); ckfree((char *) lineSpace); } if (expand != expandStack) { ckfree((char *) expand); } iPtr- varFramePtr = savedVarFramePtr; cleanup_return /* * TIP #280. Release the local CmdFrame, and its contents. */ if (eeFramePtr- type == TCL_LOCATION_SOURCE) { Tcl_DecrRefCount(eeFramePtr- data.eval.path); } TclStackFree(interp, linesStack); TclStackFree(interp, expandStack); TclStackFree(interp, stackObjArray); TclStackFree(interp, eeFramePtr); TclStackFree(interp, parsePtr); return code; }
https://w.atwiki.jp/cohstatsjp/pages/260.html
Vehicle Sherman Firefly Contents 1 Cromwell Command Tank Veterancy 2 Tactics 3 History 4 Requires 4.1 Cromwell Command Tank 5 Built From 5.1 Armor Command Truck 6 Support Abilities 6.1 Hull Down Position 7 Vehicle Upgrades 7.1 Tank Crew Commander 8 Vehicle Weapons 8.1 17 Pounder Firefly 8.2 Besa Coaxial Vehicle 8.3 Besa Hull MG Sherman Firefly Health 550 Max Speed 5 Sight 35 Cost 450100 Acceleration 1.5 Detection 0/0 Time 65 Deceleration 5 Hotkey F Population 10 Rotation 35 Target Type armour_sherman Upkeep 9 Crush Human true Critical Type armour Crush Mode crush_medium Rear Damage Enabled true Cromwell Command Tank Veterancy [Expand][Hide] Sight Radius Vehicles Stackable +5 0 Vet-Exp Weapon Reload Vehicles Stackable x0.75 0 Vet-Exp Weapon Range Vehicles Stackable +2.5 0 Vet-Exp Weapon Reload Sherman Firefly Stackable x0.8 0 Vet-Exp Sight Radius Vehicles Stackable +5 48 Vet-Exp Weapon Reload Vehicles Stackable x0.9 48 Vet-Exp Weapon Range Vehicles Stackable +2.5 48 Vet-Exp Weapon Reload Sherman Firefly Stackable x0.8 48 Vet-Exp Veterancy Level 1 N/A N/A Nothing 24 Vet-Exp Veterancy Level 2 N/A N/A Nothing 48 Vet-Exp Veterancy Level 3 N/A N/A Nothing 72 Vet-Exp Tactics While the armor is not great, the Firefly has a great range and penetration. As a result keeping the tank at max range allows it put out very respectable damage without taking any itself. Another reason to keep the Firefly at maximum range is a set of range modifiers applied to its reload time. As strange as it sounds, the main gun reloads faster at long range and gets significant short range penalties. With the 2.3 patch it is also necessary to keep a Command Tank in range to get the most out of it. Using hulldown on your Firefly is often a fatal mistake, as the enemy can then easily close in and exploit the reload time penalties as well as the weak rear armour. The Panther is often considered to be the archenemy of the Firefly. Since both units have enough firepower to penetrate the enemy s frontal armour with every single shot and both have comparable mobility, the aforementioned short range penalties of the Firefly become the most important factor in such a duel. In close combat, the Panther will usually slaughter the Firefly without much resistance, while at maximum range, the opposite might be true (the Firefly outranges the Panther). History Fireflies were introduced to armored brigades and divisions in 21 Army Group in 1944 just in time for the Normandy landings. After experience in the Battle of Normandy, it was decided to employ them by assigning one (later two) to each four-tank troop instead of concentrating them in Firefly-only troops or squadrons. They were among the few Allied tanks capable of taking on the German Panther and Tiger tanks at normal combat ranges. Though they were no better-armored than most M4 versions, the 17-pdr anti-tank gun offered far better performance than the standard 75 mm gun which had been chosen for the infantry support role. Even using the regular APC round it could penetrate the front armour of a Tiger I at up to 1,000 meters; with the more advanced APCBC and APDS rounds that became available towards the end of the war, it could penetrate at over 2,000 meters. The principal disadvantages of the Firefly were its low rate of fire (about half that of a 75 mm Sherman), due to the cramped nature of the turret and difficulty in reloading a gun turned on its side, and the very large, bright muzzle flash of the 17-pdr gun. Requires Cromwell Command Tank [Expand][Hide] Health 636 Population 8 Cost 30050 Max Speed 5 Time 50 Target Type armour_cromwell Hotkey T Effects The unarmed Command Tank uses a dummy gun barrel to mask its true identity from the enemy. Massive radios crowd the turret, allowing communication with nearby tank squads and other command elements. ESee Vehicle Cromwell Command Tank for details. Built From Armor Command Truck [Expand][Hide] Health 750 Population 0 Cost 20565 Max Speed 3 Time 70 Target Type hqs_mobile Hotkey A Effects The Armor Command Truck coordinates and deploys Heavy Armor on the battlefield. ESee Vehicle Armor Command Truck for details. Support Abilities Hull Down Position [Expand][Hide] Cost Activation toggle Duration _ Target tp_any Recharge 0 Hotkey D Effects Tank can be toggled into and out of a Hull Down Position, which offers more protection to the vehicle. ESee Ability Hull Down Position for details. Vehicle Upgrades Tank Crew Commander [Expand][Hide] Cost 10 Time 10 Hotkey T Effects The tank crew commander will emerge to survey the battlefield, improving sight range. ESee Upgrade Tank Crew Commander for details. Vehicle Weapons 17 Pounder Firefly [Expand][Hide] Weapon 17 Pounder Firefly See Weapon 17 Pounder Firefly for details. Besa Coaxial Vehicle [Expand][Hide] Weapon Besa Coaxial Vehicle See Weapon Besa Coaxial Vehicle for details. Besa Hull MG [Expand][Hide] Weapon Besa Hull MG See Weapon Besa Hull MG for details. Retrieved from http //coh-stats.com/Vehicle Sherman_Firefly
https://w.atwiki.jp/cohstatsjp/pages/246.html
Vehicle M4 Crocodile Sherman Contents 1 M4 Crocodile Sherman Veterancy 2Tactics 3History 4Built From 4.1 Tank Depot 5Company Abilities 5.1 Field Repairs 5.2 Allied War Machine 6Vehicle Abilities 6.1 Lower the Bulldozer 7Vehicle Upgrades 7.1 Bulldozer 8Vehicle Weapons 8.1 Sherman Flamethrower 8.2 30 Cal Hull MG M4 Crocodile Sherman Health 636 Max Speed 5.2 Sight 35 Cost 320110 Acceleration 1.6 Detection 0/0 Time 55 Deceleration 4 Hotkey C Population 8 Rotation 40 Target Type armour_sherman Upkeep 13.824 Crush Human true Critical Type armour Crush Mode crush_medium Rear Damage Enabled true M4 Crocodile Sherman Veterancy [Expand][Hide] Maximum Speed 1.25 8 Vet-Exp Cooldown 0.8 16 Vet-Exp Damage 1.25 32 Vet-Exp Tactics The flame thrower mounted on the Crocodile is useful against enemy in buildings, and it has armor. Making it a perfect tank to clear enemies out in buildings or just enemy buildings. Can support your assault by suppressing enemy infantry. Note This tank does not have the firepower to even give 1 point of damage to any enemy tank. So make sure the Crocodile is protected by anti tank weaponry. If your playing a map like, McGechan s war you can use the bulldozer upgrade to just plow through the hedgerows. It is useful for making a quick route to the enemy base or to a point being captured by infantry, be careful though, because once the hedgerows are gone they ain t coming back. History The US Army did not put much stock into flamethrower tanks, and so very few examples were ever made. The few that existed were field conversions of existing M4 Sherman tanks, one of which was the Crocodile, so named for the fuel trailer that it towed. The co-axial machine-gun was replaced with a flamethrower, though the operation of the main gun was not affected. Other versions replaced the hull-mounted machine-gun with a flamethrower instead, but these lacked a fuel trailer. Aside from being able to carry more fuel, the fuel trailer also meant that the tank wasn t internally carrying volatile containers of gasoline vapor, so survivability was much higher. Despite the fuel trailer, the flamethrower could only be used for less than 10 seconds before it was emptied. Only 4 Sherman Crocodiles were ever made, and most of them served in the Pacific. The Sherman Crocodile in Company of Heroes is historically inaccurate in that it lacks the fuel trailer needed to be a crocodile . Also the main gun does not function, which wasn t a problem for the real model. Built From Tank Depot [Expand][Hide] Health 775 Target Type building Cost 35090 Critical Type building Time 165 Hotkey T Effects Primary Tank Production Structure. Deploys M10 s, M4 Shermans as well as Sherman Crocodiles. Also contains upgrades for the M4 Sherman. ESeeStructure Tank Depotfor details. Company Abilities Field Repairs [Expand][Hide] Cost 150 Activation timed Duration 20 Target tp_any Recharge 45 Hotkey Effects Crews will Repair their own Vehicles automatically. ESeeAbility Field Repairsfor details. Allied War Machine [Expand][Hide] Cost 200 Activation timed Duration 30 Target tp_any Recharge 90 Hotkey Effects Replaces up to 2 destroyed Allied tanks with a new Tank for a period of time. ESeeAbility Allied War Machinefor details. Vehicle Abilities Lower the Bulldozer [Expand][Hide] Cost Activation toggle Duration 3 Target tp_any Recharge 0 Hotkey B Effects Lowers the Bulldozer attachment. When engaged the Tank can clear hedgerows, Tank Traps, and other heavy obstacles. ESeeAbility Lower the Bulldozerfor details. Vehicle Upgrades Bulldozer [Expand][Hide] Cost 75 Time 30 Hotkey B Effects Equip your M4 Crocodile Sherman with the Bulldozer. ESeeUpgrade Bulldozerfor details. Vehicle Weapons Sherman Flamethrower [Expand][Hide] Weapon Sherman Flamethrower SeeWeapon Sherman Flamethrowerfor details. 30 Cal Hull MG [Expand][Hide] Weapon 30 Cal Hull MG SeeWeapon 30 Cal Hull MGfor details. Retrieved from http //www.coh-stats.com/Vehicle M4_%27Crocodile%27_Sherman
https://w.atwiki.jp/mtgwiki/pages/1179.html
Savaen Expanses Savaen Expanses(広漠なるサヴェイン) 広漠なるサヴェインは小説The Gathering Darkに名前だけ登場した地名。 ザ・ダーク及び小説The Gathering Darkは暗黒時代のテリシア/Terisiareが舞台と設定されているので、テリシアのいずれかの地域を指すものと思われる。 ただし、ドメインズ/The Domainsには既にSavaen Elves(サヴェインのエルフ)が住むSavaen Forest(サヴェインの森)が設定されており、そちらを指した言葉である可能性も否定はできない。 また、単にサヴェインのエルフが住む、テリシアとドメインズのそれぞれ別の地域を指しているとも考えられる。 訳語 「Savaen Expanses」は、広漠なるスカイクラウド/Skycloud Expanseの例に従って、「広漠なるサヴェイン」とした。これは公式な訳では無い。 関連カード Savaen Elves 参考 ザ・ダーク テリシア/Terisiare ドメインズ/The Domains Savaen Forest(サヴェインの森) Savea(サヴィア) Savaen Elves(サヴェインのエルフ) The Gathering Dark(小説) 背景世界/ストーリー用語
https://w.atwiki.jp/todo314/pages/385.html
Overlapping Community Detection Using Seed Set Expansion Joyce Jiyoung Whang, David F. Gleich, Inderjit S. Dhillon CIKM 2013 概要 コンダクタンスがいい感じになる重複コミュニティ検出手法を提案 提案手法 目標 全体をカバーしつつ、最大のコンダクタンスを小さくしたい Filtering whiskerを取り除きたいので、以下のような分解をする core=(ざっくりいうと)最大の2点連結成分 bridge=橋 whisker=残り Seeding 色々な手法でクラスタ中心を決める Graclus centers, Spread Hubs, Local Optimal Egonets, Random Seeds Seed Set Expansion [Andersen-Chung-Lang. FOCS 06]で近似 εでコミュニティの大きさを調整 Propagation whiskerを適当にくっつける 実験 カバー-最大コンダクタンスのプロット図で、提案手法がナイスな事を主張 ground truthがあるもので比較 まとめ 既存の知見+理論的結果たちを組み合わせ、無難に上手くまとめた感じ こういうの=[Andersen-Chung-Lang. FOCS 06]を分散とかそういうグラフ処理用途に使えんかな CIKM コミュニティ検出 2016/12/27
https://w.atwiki.jp/expansion_server59/pages/16.html
ログインまで 現在の対応しているMinecraft本体は1.6.4varです 1.6.4でminecraftを起動し、multiplayを選びます。 Addserverを押した後、server nameとserver addressを入力する画面が現れます。 server nameは何でも良いですが、自分がexpansion serverと分かりやすいような名前にすると良いでしょう。ここではexpansion_serverと入力したことにします。 Server addressには、この鯖のIPを入力しましょう。IPはwikiのどこかにあります。 そしてDoneと押せば一番下にexpansion_serverと白い文字で書かれたものがありますので、それをダブルクリックか選択してjoin serverを押しましょう。 さあ、そこからexpansion_serverに入ったことになります。まずはTを押してhi!とチャットしましょう。 暮らせるようになるまで そのままではmining worldでは絶対に暮らせないのでPVEに行き、ゾンビやスケルトンを倒してドロップアイテムを集めましょう。 ゾンビ肉が15個あるならそれで十分です。 次にshopに行き、ゾンビ肉をラピスラズリに変換してもらいましょう。緑色の服の村人がそうです。 この世界での通貨はCell、Uellです。ラピスラズリは1Cellです。 15cellあれば、茶色の服の人から木のつるはしなどを買いましょう。そこからはあなたの自由です。 派闘などで仲間を集めたり、鉱石などを集めて自分で売るのも良いでしょう。 説明一覧 PvP PvE Shop mining 名前 コメント
https://w.atwiki.jp/expansion3/
Expansion3のクランホームへようこそ テスト期間です。 何作るか決めたらいろいろ貼るのでお待ちください。 "Expansion3"「えくすぱんしょんすりー」と読む。クランマスターは"らんえぼ"。 主に護衛・殲滅戦で活動を行う。ゲスト戦・クラン戦も5人以上から行う。 【メンバー募集要項】 メンバー募集に関しては基準があるので理解してほしい。 募集概要・申請の仕方についてはこちら→募集概要・申請の仕方
https://w.atwiki.jp/marketresearch/pages/14.html
Research Analysis The market research report profiles well-balanced information with previous as well as future results with an aim to offer a better understanding of the Recycled Thermoplastic Market. The market report further offers an in-depth view of the leading factors that are related to increasing the demand growth for Recycled Thermoplastic Market. Not only this but also in this study the readers can get an in-depth report of the possibilities in combination with the latest trends in the targeted market. It is also a detailed combination of 10 years old qualitative and quantitative analysis of the industry that has been presented in the report with an aim to help the market players to increase maximum profit in the sector. The market research report also provides information on the record of individual sales records that are made with the expected revenue over the forecast period. This research report provides an extensive examination of all the related segments present in the industry. Moreover, it throws light on the recent development as well as the opportunity is that is going on in the Recycled Thermoplastic Market. Get a Sample PDF File@ https //www.quincemarketinsights.com/request-sample-88267?pu Market Report Features Overview Of The Market Report The market research report offers a detailed quantitative as well as qualitative overview of the market for Recycled Thermoplastic Market on the basis of area, category, product, competitors, and application. In terms of expanded coverage, the market report is further extended in terms of end-user market analysis and the comprehensive producer profile. Market Segmentation Of Recycled Thermoplastic Market Market The market segmentation of the Recycled Thermoplastic Market is done on the basis of technology, product type, application, distribution channel, and end-user. Geographical segmentation is also being done to get valuable insights into the Recycled Thermoplastic Market. Geographical Analysis Doing the geographical analysis is very important to know about the broad feature of the market. In this section, the readers can get a comprehensive analysis of the Recycled Thermoplastic Market based on the geographical location. This section throws light on the demand and sales output for the Recycled Thermoplastic Market at the national and international levels. The study is being done taking into account some of the major geographic regions such as North America, Europe, Asia Pacific, South America, Middle East, and Africa. Make an Enquiry for purchasing this Report @ https //www.quincemarketinsights.com/enquiry-before-buying/enquiry-before-buying-88267?pu Market Key Highlights The market report on the Recycled Thermoplastic Market is a summary of the current market situation for the Recycled Thermoplastic Market. Moreover, the analysis provides information regarding the newly launched product and also the products that are to be launched during the forecast period. The study also includes minute details regarding market share, segment, trends, growth and forecast W Plastics, Plastipak Holdings, Inc., PARC Corporation, Clear Path Recycling, B. Schoenberg and Co., Custom Polymers Inc., RJM International Inc., Suez SA, Merlin Plastics Alberta Inc., Ricova International Inc. Quince Market Insights Top Trending Research Report* https //qmi189135117.wordpress.com/2022/09/16/cumene-sulfonic-acid-market-size-industry-growth-rate-global-share-upcoming-trends-leading-players-products-and-services-overview-forecast-to-2032/ https //qmi189135117.wordpress.com/2022/09/16/3-hexenyl-salicylate-market-key-findings-growth-prospects-and-size-by-country-top-manufacturer-expansion-plans-and-business-strategy-forecast-to-2032/ https //qmi189135117.wordpress.com/2022/09/16/ethylene-glycol-monostearate-market-trends-growth-size-swot-analysis-opportunity-assessment-by-forecast-to-2021-drivers-and-applications-are-pertinent-for-sustenance-during-the-forecast-period-20/ Details Contained In The Recycled Thermoplastic Market Report 2021 Market Overview 1.1 Market Introduction 1.2 Market Analysis By Type 1.2.1 Type 1 1.2.2 Type 2 1.3 Market Analysis By Applications 1.3.1 Application 1 1.3.2 Application 2 1.4 Market Analysis by Regions 1.4.1 North America 1.4.2 Europe 1.4.3 Asia Pacific 1.4.4 South America 1.4.5 the Middle East and Africa Market Scope Market Segmentation by type, application, end-users and regions Market Size estimation Market Competition Key Market Leaders Conclusions The market research report offers a detailed study of the Recycled Thermoplastic Market which include market shares, size and growth opportunities by applications, product types and geographic regions. Not only this but also the report also contains a detailed summary of the leading market players. The experts have also mentioned the market growth, threats, opportunities and risks. About Us QMI has the most comprehensive collection of market research products and services available on the web. We deliver reports from virtually all major publications and refresh our list regularly to provide you with immediate online access to the world’s most extensive and up-to-date archive of professional insights into global markets, companies, goods, and patterns. Contact us Quince Market Insights Phone +1 208 405 2835 Email sales@quincemarketinsights.com Website https //www.quincemarketinsights.com/
https://w.atwiki.jp/triggerfist/pages/29.html
2つの新しいマップRail Yard Rooftops キャラクターをカスタマイズ18,000通り以上のスキンの組み合わせ 武器をカスタマイズ400種類以上のスキン アンロック可能なクローム&ゴールド・ガン 専用の達成項目 関連動画 http //www.youtube.com/watch?v=_CkGPAl1tUc