@lpc-lang/core 1.1.2-5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +255 -0
  2. package/bin/lpc +4 -0
  3. package/bin/lpcserver +4 -0
  4. package/cancellationToken/cancellationToken.d.ts +8 -0
  5. package/cancellationToken/cancellationToken.d.ts.map +1 -0
  6. package/cancellationToken/serverCancellationToken.d.ts +21 -0
  7. package/cancellationToken/serverCancellationToken.d.ts.map +1 -0
  8. package/cli/_namespaces/lpc.d.ts +2 -0
  9. package/cli/_namespaces/lpc.d.ts.map +1 -0
  10. package/cli/lpc.d.ts +2 -0
  11. package/cli/lpc.d.ts.map +1 -0
  12. package/compiler/LpcConfig.d.ts +17 -0
  13. package/compiler/LpcConfig.d.ts.map +1 -0
  14. package/compiler/_namespaces/lpc.d.ts +49 -0
  15. package/compiler/_namespaces/lpc.d.ts.map +1 -0
  16. package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts +2 -0
  17. package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts.map +1 -0
  18. package/compiler/_namespaces/lpc.performance.d.ts +2 -0
  19. package/compiler/_namespaces/lpc.performance.d.ts.map +1 -0
  20. package/compiler/binder.d.ts +2 -0
  21. package/compiler/binder.d.ts.map +1 -0
  22. package/compiler/builderPublic.d.ts +76 -0
  23. package/compiler/builderPublic.d.ts.map +1 -0
  24. package/compiler/checker.d.ts +2 -0
  25. package/compiler/checker.d.ts.map +1 -0
  26. package/compiler/commandLineParser.d.ts +47 -0
  27. package/compiler/commandLineParser.d.ts.map +1 -0
  28. package/compiler/core.d.ts +3 -0
  29. package/compiler/core.d.ts.map +1 -0
  30. package/compiler/corePublic.d.ts +19 -0
  31. package/compiler/corePublic.d.ts.map +1 -0
  32. package/compiler/debug.d.ts +71 -0
  33. package/compiler/debug.d.ts.map +1 -0
  34. package/compiler/diagnosticInformation.d.ts +518 -0
  35. package/compiler/diagnosticInformation.d.ts.map +1 -0
  36. package/compiler/emitter.d.ts +11 -0
  37. package/compiler/emitter.d.ts.map +1 -0
  38. package/compiler/executeCommandLine.d.ts +15 -0
  39. package/compiler/executeCommandLine.d.ts.map +1 -0
  40. package/compiler/expressionToTypeNode.d.ts +2 -0
  41. package/compiler/expressionToTypeNode.d.ts.map +1 -0
  42. package/compiler/factory/baseNodeFactory.d.ts +2 -0
  43. package/compiler/factory/baseNodeFactory.d.ts.map +1 -0
  44. package/compiler/factory/emitHelper.d.ts +2 -0
  45. package/compiler/factory/emitHelper.d.ts.map +1 -0
  46. package/compiler/factory/emitNode.d.ts +22 -0
  47. package/compiler/factory/emitNode.d.ts.map +1 -0
  48. package/compiler/factory/nodeChildren.d.ts +2 -0
  49. package/compiler/factory/nodeChildren.d.ts.map +1 -0
  50. package/compiler/factory/nodeConverters.d.ts +2 -0
  51. package/compiler/factory/nodeConverters.d.ts.map +1 -0
  52. package/compiler/factory/nodeFactory.d.ts +4 -0
  53. package/compiler/factory/nodeFactory.d.ts.map +1 -0
  54. package/compiler/factory/parenthesizerRules.d.ts +2 -0
  55. package/compiler/factory/parenthesizerRules.d.ts.map +1 -0
  56. package/compiler/factory/utilities.d.ts +2 -0
  57. package/compiler/factory/utilities.d.ts.map +1 -0
  58. package/compiler/factory/utilitiesPublic.d.ts +4 -0
  59. package/compiler/factory/utilitiesPublic.d.ts.map +1 -0
  60. package/compiler/lpcFileHandler.d.ts +10 -0
  61. package/compiler/lpcFileHandler.d.ts.map +1 -0
  62. package/compiler/lpcJsHelpers.d.ts +17 -0
  63. package/compiler/lpcJsHelpers.d.ts.map +1 -0
  64. package/compiler/lpcbuild.d.ts +2 -0
  65. package/compiler/lpcbuild.d.ts.map +1 -0
  66. package/compiler/lpcbuildPublic.d.ts +26 -0
  67. package/compiler/lpcbuildPublic.d.ts.map +1 -0
  68. package/compiler/moduleNameResolver.d.ts +55 -0
  69. package/compiler/moduleNameResolver.d.ts.map +1 -0
  70. package/compiler/moduleSpecifiers.d.ts +2 -0
  71. package/compiler/moduleSpecifiers.d.ts.map +1 -0
  72. package/compiler/nodeTests.d.ts +115 -0
  73. package/compiler/nodeTests.d.ts.map +1 -0
  74. package/compiler/parser.d.ts +65 -0
  75. package/compiler/parser.d.ts.map +1 -0
  76. package/compiler/path.d.ts +2 -0
  77. package/compiler/path.d.ts.map +1 -0
  78. package/compiler/perfLoger.d.ts +2 -0
  79. package/compiler/perfLoger.d.ts.map +1 -0
  80. package/compiler/performance.d.ts +2 -0
  81. package/compiler/performance.d.ts.map +1 -0
  82. package/compiler/performanceCore.d.ts +2 -0
  83. package/compiler/performanceCore.d.ts.map +1 -0
  84. package/compiler/program.d.ts +72 -0
  85. package/compiler/program.d.ts.map +1 -0
  86. package/compiler/resolutionCache.d.ts +6 -0
  87. package/compiler/resolutionCache.d.ts.map +1 -0
  88. package/compiler/resolver.d.ts +1 -0
  89. package/compiler/resolver.d.ts.map +1 -0
  90. package/compiler/scanner.d.ts +85 -0
  91. package/compiler/scanner.d.ts.map +1 -0
  92. package/compiler/sourcemap.d.ts +2 -0
  93. package/compiler/sourcemap.d.ts.map +1 -0
  94. package/compiler/sys.d.ts +56 -0
  95. package/compiler/sys.d.ts.map +1 -0
  96. package/compiler/tracing.d.ts +31 -0
  97. package/compiler/tracing.d.ts.map +1 -0
  98. package/compiler/transformers/declarations.d.ts +2 -0
  99. package/compiler/transformers/declarations.d.ts.map +1 -0
  100. package/compiler/transformers.d.ts +2 -0
  101. package/compiler/transformers.d.ts.map +1 -0
  102. package/compiler/types.d.ts +3284 -0
  103. package/compiler/types.d.ts.map +1 -0
  104. package/compiler/utilities.d.ts +57 -0
  105. package/compiler/utilities.d.ts.map +1 -0
  106. package/compiler/utilitiesPublic.d.ts +213 -0
  107. package/compiler/utilitiesPublic.d.ts.map +1 -0
  108. package/compiler/visitorPublic.d.ts +72 -0
  109. package/compiler/visitorPublic.d.ts.map +1 -0
  110. package/compiler/watch.d.ts +2 -0
  111. package/compiler/watch.d.ts.map +1 -0
  112. package/compiler/watchPublic.d.ts +44 -0
  113. package/compiler/watchPublic.d.ts.map +1 -0
  114. package/compiler/watchUtilities.d.ts +14 -0
  115. package/compiler/watchUtilities.d.ts.map +1 -0
  116. package/config-types.d.ts +33 -0
  117. package/config-types.d.ts.map +1 -0
  118. package/harness/harnessIO.d.ts +4 -0
  119. package/harness/harnessIO.d.ts.map +1 -0
  120. package/lpc/_namespaces/lpc.d.ts +6 -0
  121. package/lpc/_namespaces/lpc.d.ts.map +1 -0
  122. package/lpc/_namespaces/lpc.server.d.ts +2 -0
  123. package/lpc/_namespaces/lpc.server.d.ts.map +1 -0
  124. package/lpc/lpc.d.ts +2 -0
  125. package/lpc/lpc.d.ts.map +1 -0
  126. package/lpcserver/document.d.ts +1 -0
  127. package/lpcserver/document.d.ts.map +1 -0
  128. package/lpcserver/nodeServer.d.ts +25 -0
  129. package/lpcserver/nodeServer.d.ts.map +1 -0
  130. package/lpcserver/protocol.const.d.ts +46 -0
  131. package/lpcserver/protocol.const.d.ts.map +1 -0
  132. package/lpcserver/server.d.ts +3 -0
  133. package/lpcserver/server.d.ts.map +1 -0
  134. package/lpcserver/textRendering.d.ts +14 -0
  135. package/lpcserver/textRendering.d.ts.map +1 -0
  136. package/lpcserver/typeConverters.d.ts +44 -0
  137. package/lpcserver/typeConverters.d.ts.map +1 -0
  138. package/lpcserver/utils.d.ts +14 -0
  139. package/lpcserver/utils.d.ts.map +1 -0
  140. package/package.json +48 -0
  141. package/parse-fluff-docs.d.ts +2 -0
  142. package/parse-fluff-docs.d.ts.map +1 -0
  143. package/parse-ld-docs.d.ts +2 -0
  144. package/parse-ld-docs.d.ts.map +1 -0
  145. package/server/_namespaces/lpc.d.ts +5 -0
  146. package/server/_namespaces/lpc.d.ts.map +1 -0
  147. package/server/_namespaces/lpc.server.d.ts +11 -0
  148. package/server/_namespaces/lpc.server.d.ts.map +1 -0
  149. package/server/_namespaces/lpc.server.protocol.d.ts +2 -0
  150. package/server/_namespaces/lpc.server.protocol.d.ts.map +1 -0
  151. package/server/editorServices.d.ts +261 -0
  152. package/server/editorServices.d.ts.map +1 -0
  153. package/server/project.d.ts +143 -0
  154. package/server/project.d.ts.map +1 -0
  155. package/server/protocol.d.ts +962 -0
  156. package/server/protocol.d.ts.map +1 -0
  157. package/server/scriptInfo.d.ts +53 -0
  158. package/server/scriptInfo.d.ts.map +1 -0
  159. package/server/scriptVersionCache.d.ts +2 -0
  160. package/server/scriptVersionCache.d.ts.map +1 -0
  161. package/server/session.d.ts +150 -0
  162. package/server/session.d.ts.map +1 -0
  163. package/server/types.d.ts +24 -0
  164. package/server/types.d.ts.map +1 -0
  165. package/server/utilities.d.ts +2 -0
  166. package/server/utilities.d.ts.map +1 -0
  167. package/server/utilitiesPublic.d.ts +37 -0
  168. package/server/utilitiesPublic.d.ts.map +1 -0
  169. package/server.d.ts +2 -0
  170. package/server.d.ts.map +1 -0
  171. package/services/_namespaces/lpc.Completions.StringCompletions.d.ts +2 -0
  172. package/services/_namespaces/lpc.Completions.StringCompletions.d.ts.map +1 -0
  173. package/services/_namespaces/lpc.Completions.d.ts +4 -0
  174. package/services/_namespaces/lpc.Completions.d.ts.map +1 -0
  175. package/services/_namespaces/lpc.FindAllReferences.d.ts +3 -0
  176. package/services/_namespaces/lpc.FindAllReferences.d.ts.map +1 -0
  177. package/services/_namespaces/lpc.GoToDefinition.d.ts +2 -0
  178. package/services/_namespaces/lpc.GoToDefinition.d.ts.map +1 -0
  179. package/services/_namespaces/lpc.JsDoc.d.ts +2 -0
  180. package/services/_namespaces/lpc.JsDoc.d.ts.map +1 -0
  181. package/services/_namespaces/lpc.NavigationBar.d.ts +2 -0
  182. package/services/_namespaces/lpc.NavigationBar.d.ts.map +1 -0
  183. package/services/_namespaces/lpc.Rename.d.ts +2 -0
  184. package/services/_namespaces/lpc.Rename.d.ts.map +1 -0
  185. package/services/_namespaces/lpc.SignatureHelp.d.ts +2 -0
  186. package/services/_namespaces/lpc.SignatureHelp.d.ts.map +1 -0
  187. package/services/_namespaces/lpc.SymbolDisplay.d.ts +2 -0
  188. package/services/_namespaces/lpc.SymbolDisplay.d.ts.map +1 -0
  189. package/services/_namespaces/lpc.codefix.d.ts +3 -0
  190. package/services/_namespaces/lpc.codefix.d.ts.map +1 -0
  191. package/services/_namespaces/lpc.d.ts +30 -0
  192. package/services/_namespaces/lpc.d.ts.map +1 -0
  193. package/services/_namespaces/lpc.formatting.d.ts +7 -0
  194. package/services/_namespaces/lpc.formatting.d.ts.map +1 -0
  195. package/services/_namespaces/lpc.textChanges.d.ts +2 -0
  196. package/services/_namespaces/lpc.textChanges.d.ts.map +1 -0
  197. package/services/classifier2020.d.ts +2 -0
  198. package/services/classifier2020.d.ts.map +1 -0
  199. package/services/codefixes/helpers.d.ts +2 -0
  200. package/services/codefixes/helpers.d.ts.map +1 -0
  201. package/services/codefixes/importFixes.d.ts +2 -0
  202. package/services/codefixes/importFixes.d.ts.map +1 -0
  203. package/services/completions.d.ts +2 -0
  204. package/services/completions.d.ts.map +1 -0
  205. package/services/documentRegistry.d.ts +90 -0
  206. package/services/documentRegistry.d.ts.map +1 -0
  207. package/services/exportInfoMap.d.ts +5 -0
  208. package/services/exportInfoMap.d.ts.map +1 -0
  209. package/services/findAllReferences.d.ts +2 -0
  210. package/services/findAllReferences.d.ts.map +1 -0
  211. package/services/formatting/formatting.d.ts +2 -0
  212. package/services/formatting/formatting.d.ts.map +1 -0
  213. package/services/formatting/formattingContext.d.ts +2 -0
  214. package/services/formatting/formattingContext.d.ts.map +1 -0
  215. package/services/formatting/rule.d.ts +2 -0
  216. package/services/formatting/rule.d.ts.map +1 -0
  217. package/services/formatting/rules.d.ts +2 -0
  218. package/services/formatting/rules.d.ts.map +1 -0
  219. package/services/formatting/rulesMap.d.ts +2 -0
  220. package/services/formatting/rulesMap.d.ts.map +1 -0
  221. package/services/formatting/smartIndenter.d.ts +2 -0
  222. package/services/formatting/smartIndenter.d.ts.map +1 -0
  223. package/services/goToDefinition.d.ts +2 -0
  224. package/services/goToDefinition.d.ts.map +1 -0
  225. package/services/importTracker.d.ts +2 -0
  226. package/services/importTracker.d.ts.map +1 -0
  227. package/services/jsDoc.d.ts +2 -0
  228. package/services/jsDoc.d.ts.map +1 -0
  229. package/services/navigationBar.d.ts +2 -0
  230. package/services/navigationBar.d.ts.map +1 -0
  231. package/services/rename.d.ts +2 -0
  232. package/services/rename.d.ts.map +1 -0
  233. package/services/services.d.ts +54 -0
  234. package/services/services.d.ts.map +1 -0
  235. package/services/signatureHelp.d.ts +2 -0
  236. package/services/signatureHelp.d.ts.map +1 -0
  237. package/services/sourcemaps.d.ts +2 -0
  238. package/services/sourcemaps.d.ts.map +1 -0
  239. package/services/stringCompletions.d.ts +2 -0
  240. package/services/stringCompletions.d.ts.map +1 -0
  241. package/services/suggestionDiagnostics.d.ts +2 -0
  242. package/services/suggestionDiagnostics.d.ts.map +1 -0
  243. package/services/symbolDisplay.d.ts +2 -0
  244. package/services/symbolDisplay.d.ts.map +1 -0
  245. package/services/textChanges.d.ts +2 -0
  246. package/services/textChanges.d.ts.map +1 -0
  247. package/services/types.d.ts +901 -0
  248. package/services/types.d.ts.map +1 -0
  249. package/services/utilities.d.ts +3 -0
  250. package/services/utilities.d.ts.map +1 -0
  251. package/src/cli.js +58 -0
  252. package/src/cli.js.map +7 -0
  253. package/src/efuns/fluffos/arrays.h +205 -0
  254. package/src/efuns/fluffos/async.h +84 -0
  255. package/src/efuns/fluffos/buffers.h +80 -0
  256. package/src/efuns/fluffos/calls.h +275 -0
  257. package/src/efuns/fluffos/contrib.h +805 -0
  258. package/src/efuns/fluffos/db.h +125 -0
  259. package/src/efuns/fluffos/driver.h +107 -0
  260. package/src/efuns/fluffos/ed.h +48 -0
  261. package/src/efuns/fluffos/efuns.fluffos.h +75 -0
  262. package/src/efuns/fluffos/external.h +30 -0
  263. package/src/efuns/fluffos/filesystem.h +154 -0
  264. package/src/efuns/fluffos/floats.h +136 -0
  265. package/src/efuns/fluffos/functions.h +104 -0
  266. package/src/efuns/fluffos/general.h +548 -0
  267. package/src/efuns/fluffos/interactive.h +777 -0
  268. package/src/efuns/fluffos/internals.h +455 -0
  269. package/src/efuns/fluffos/lpc-config.json +10 -0
  270. package/src/efuns/fluffos/mappings.h +205 -0
  271. package/src/efuns/fluffos/misc.h +43 -0
  272. package/src/efuns/fluffos/mudlib.h +228 -0
  273. package/src/efuns/fluffos/numbers.h +41 -0
  274. package/src/efuns/fluffos/objects.h +365 -0
  275. package/src/efuns/fluffos/parsing.h +220 -0
  276. package/src/efuns/fluffos/pcre.h +75 -0
  277. package/src/efuns/fluffos/sockets.h +276 -0
  278. package/src/efuns/fluffos/strings.h +542 -0
  279. package/src/efuns/fluffos/system.h +408 -0
  280. package/src/efuns/fluffos/zh-cn/arrays.zh-cn.h +167 -0
  281. package/src/efuns/fluffos/zh-cn/async.zh-cn.h +81 -0
  282. package/src/efuns/fluffos/zh-cn/buffers.zh-cn.h +69 -0
  283. package/src/efuns/fluffos/zh-cn/calls.zh-cn.h +242 -0
  284. package/src/efuns/fluffos/zh-cn/contrib.zh-cn.h +767 -0
  285. package/src/efuns/fluffos/zh-cn/db.zh-cn.h +113 -0
  286. package/src/efuns/fluffos/zh-cn/ed.zh-cn.h +42 -0
  287. package/src/efuns/fluffos/zh-cn/efuns.fluffos.h +76 -0
  288. package/src/efuns/fluffos/zh-cn/external.zh-cn.h +25 -0
  289. package/src/efuns/fluffos/zh-cn/filesystem.zh-cn.h +140 -0
  290. package/src/efuns/fluffos/zh-cn/floats.zh-cn.h +129 -0
  291. package/src/efuns/fluffos/zh-cn/functions.zh-cn.h +87 -0
  292. package/src/efuns/fluffos/zh-cn/general.zh-cn.h +506 -0
  293. package/src/efuns/fluffos/zh-cn/interactive.zh-cn.h +659 -0
  294. package/src/efuns/fluffos/zh-cn/internals.zh-cn.h +356 -0
  295. package/src/efuns/fluffos/zh-cn/mappings.zh-cn.h +188 -0
  296. package/src/efuns/fluffos/zh-cn/misc.zh-cn.h +43 -0
  297. package/src/efuns/fluffos/zh-cn/mudlib.zh-cn.h +190 -0
  298. package/src/efuns/fluffos/zh-cn/numbers.zh-cn.h +36 -0
  299. package/src/efuns/fluffos/zh-cn/objects.zh-cn.h +280 -0
  300. package/src/efuns/fluffos/zh-cn/parsing.zh-cn.h +212 -0
  301. package/src/efuns/fluffos/zh-cn/pcre.zh-cn.h +67 -0
  302. package/src/efuns/fluffos/zh-cn/sockets.zh-cn.h +230 -0
  303. package/src/efuns/fluffos/zh-cn/strings.zh-cn.h +484 -0
  304. package/src/efuns/fluffos/zh-cn/system.zh-cn.h +366 -0
  305. package/src/efuns/ldmud/defines.h +69 -0
  306. package/src/efuns/ldmud/efun.h +10449 -0
  307. package/src/efuns/ldmud/efuns.ldmud.h +87 -0
  308. package/src/efuns/ldmud/lpc-config.json +9 -0
  309. package/src/efuns/ldmud/obsolete.h +2168 -0
  310. package/src/lpc.js +82486 -0
  311. package/src/lpc.js.map +6 -0
  312. package/src/server.js +129 -0
  313. package/src/server.js.map +7 -0
  314. package/types.d.ts +23 -0
  315. package/types.d.ts.map +1 -0
  316. package/utils.d.ts +21 -0
  317. package/utils.d.ts.map +1 -0
@@ -0,0 +1,356 @@
1
+ // internals.h
2
+
3
+ /**
4
+ * traceprefix() - 设置确定哪些对象进行追踪的前缀
5
+ *
6
+ * 如果设置了追踪前缀(即不为0),则只有名称带有设置前缀的对象才会进行追踪。
7
+ *
8
+ */
9
+ string traceprefix( string prefix );
10
+
11
+ /**
12
+ * trace() - 设置追踪标志并返回旧的标志。
13
+ *
14
+ * 设置追踪标志并返回旧的追踪标志。当追踪开启时,在执行期间会打印大量信息。
15
+ *
16
+ * 追踪位是:
17
+ *
18
+ * 1 追踪所有对lfuns的函数调用。
19
+ *
20
+ * 2 追踪所有对“call_other”的调用。
21
+ *
22
+ * 4 追踪所有函数返回。
23
+ *
24
+ * 8 在函数调用和返回值时打印参数。
25
+ *
26
+ * 16 打印所有执行的堆栈机器指令(产生大量输出!)。
27
+ *
28
+ * 32 在心跳函数中启用追踪。
29
+ *
30
+ * 64 追踪对apply的调用。
31
+ *
32
+ * 128 在追踪中显示对象名称。
33
+ *
34
+ */
35
+ int trace( int traceflags );
36
+
37
+ /**
38
+ * time_expression() - 返回表达式所花费的真实时间
39
+ *
40
+ * 评估<expr>。在评估<expr>期间经过的真实时间(以微秒为单位)将被返回。该值的精度不一定为1微秒;实际上,它可能要低得多。
41
+ *
42
+ */
43
+ int time_expression( mixed expr );
44
+
45
+ /**
46
+ * swap - 显式交换文件
47
+ *
48
+ * 此efun应仅保留用于调试。它允许对象显式交换出。如果启用,强烈建议使用模拟efun覆盖(用于此efun)以防止滥用。
49
+ *
50
+ * 注意:已被销毁、已经交换出、包含心跳、克隆、继承或互动的对象,无法被交换出。
51
+ *
52
+ */
53
+ void swap( object );
54
+
55
+ /**
56
+ * set_malloc_mask() - 设置控制显示内存分配调试信息的掩码
57
+ *
58
+ * 此efun仅在构建驱动时在options.h中同时定义DEBUGMALLOC和DEBUGMALLOC_EXTENSIONS时可用。该掩码控制在驱动分配和释放内存时显示哪些内存相关的调试信息。有关更多信息,请参阅驱动源代码中的md.c。
59
+ *
60
+ */
61
+ void set_malloc_mask( int mask );
62
+
63
+ /**
64
+ * set_debug_level() - 设置驱动的debug()宏使用的调试级别
65
+ *
66
+ * 此efun的目的是允许从mud内部控制生成的调试信息的量和类型(在驱动运行时)。
67
+ *
68
+ * 信息将同时打印到stdout和在运行时配置文件中指定的“调试日志文件”设置的文件中。
69
+ *
70
+ * 级别是一个位掩码整数或字符串。如果使用整数,可以使用按位或运算符(|)设置多个级别。
71
+ *
72
+ * 可用的级别如下:
73
+ * "call_out" 1 << 0
74
+ * "d_flag" 1 << 2
75
+ * "connections" 1 << 3
76
+ * "mapping" 1 << 4
77
+ * "sockets" 1 << 5
78
+ * "comp_func_tab" 1 << 6
79
+ * "LPC" 1 << 7
80
+ * "LPC_line" 1 << 8
81
+ * "event" 1 << 9
82
+ * "dns" 1 << 10
83
+ * "file" 1 << 11
84
+ * "add_action" 1 << 12
85
+ * "telnet" 1 << 13
86
+ * "websocket" 1 << 14
87
+ *
88
+ * 当级别为整数时,调试级别将设置为该值,清除任何以前的设置。
89
+ *
90
+ * 如果级别是字符串,选项的调试级别将切换为开启,而所有其他选项将被保留。
91
+ *
92
+ */
93
+ void set_debug_level( int | string level );
94
+
95
+ /**
96
+ * set_config() - 在运行时设置各种驱动配置设置
97
+ *
98
+ * 此efun用于在运行时设置驱动的各种配置设置。有关当前识别的选项列表,请参阅“runtime_config.h”包含文件。
99
+ *
100
+ * 请注意,这仅会修改当前运行的选项,并不会在驱动重启时保留。
101
+ *
102
+ * // 将驱动的心跳设置为1000毫秒
103
+ * set_config(__RC_HEARTBEAT_INTERVAL_MSEC__, 1000)
104
+ *
105
+ * // 调整驱动对call_out(0)的限制
106
+ * set_config(__RC_CALL_OUT_ZERO_NEST_LEVEL__, 250)
107
+ *
108
+ */
109
+ void set_config( int option, mixed value );
110
+
111
+ /**
112
+ * rusage() - 报告通过 getrusage() 系统调用收集的信息
113
+ *
114
+ * 该 efun 收集通过 getrusage() 系统调用收集的信息。有关将收集哪些信息的更多信息,请阅读 getrusage() 手册页。一些系统并没有 getrusage() 系统调用,但有 times() 系统调用。在这些系统上,仅会提供 "utime" 和 "stime"。时间以毫秒为单位报告。
115
+ *
116
+ * 以下是 rusage() 的示例用法:
117
+ *
118
+ * void
119
+ * create()
120
+ * {
121
+ * mapping info;
122
+ *
123
+ * info = rusage();
124
+ * write("用户时间 = " + info["utime"] + "ms\n");
125
+ * write("系统时间 = " + info["stime"] + "ms\n");
126
+ * }
127
+ *
128
+ * 可用字段为:
129
+ *
130
+ * utime, stime, maxrss, ixrss, idrss, isrss, minflt, majflt, nswap,
131
+ * inblock, oublock, msgsnd, msgrcv, nsignals, nvcsw, nivcsw.
132
+ *
133
+ */
134
+ mapping rusage( void );
135
+
136
+ /**
137
+ * refs - 返回对数据结构的引用数量
138
+ *
139
+ * refs() 将返回对 'data' 的引用数量。这在决定是否在返回数据结构之前进行复制时非常有用。
140
+ *
141
+ */
142
+ int refs( mixed data );
143
+
144
+ /**
145
+ * query_load_average() - 强制对象发生错误。
146
+ *
147
+ * 此函数返回一个字符串,该字符串报告两件事:1)每秒用户命令,2)每秒编译行数。
148
+ *
149
+ */
150
+ string query_load_average( void );
151
+
152
+ /**
153
+ * opcprof() - 报告各种 efun 的调用频率统计信息
154
+ *
155
+ * 该函数转储每个 efunction 和 eoperator 的统计信息。如果未指定参数,则信息将转储到名为 /OPCPROF.efun 和 /OPCPROF.eoper 的文件中。如果指定了参数,则该名称将用作转储的文件名。
156
+ *
157
+ */
158
+ void opcprof( string | void );
159
+
160
+ /**
161
+ * mud_status() - 报告各种驱动程序和 mudlib 统计信息
162
+ *
163
+ * 此函数将驱动程序和 mudlib 统计信息写到调用者的屏幕上。如果 extra 非零,则将写入额外的信息。此函数替换了 vanilla 3.1.2 中硬编码的 'status' 和 'status tables' 命令。
164
+ *
165
+ */
166
+ void mud_status( int extra );
167
+
168
+ /**
169
+ * moncontrol() - 开启/关闭执行过程中的分析
170
+ *
171
+ * 如果传入 1,moncontrol() 启用分析。如果传入 0,moncontrol() 禁用分析。在执行过程中的很多次调用中,典型用法是在驱动程序执行的某些部分进行分析。如果在驱动程序编译时没有启用分析,则 moncontrol() 无效。
172
+ *
173
+ */
174
+ void moncontrol( int on );
175
+
176
+ /**
177
+ * memory_info - 获取对象/整体内存使用情况的信息
178
+ *
179
+ * 如果提供了可选参数 'ob',memory_info() 将返回 'ob' 使用的内存的近似数量。如果没有提供参数,memory_info() 将返回整个 mud 使用的内存的近似数量。请注意,mud 使用的内存量不一定与 mud 从系统中实际分配的内存量一致。
180
+ *
181
+ */
182
+ varargs int memory_info( object ob );
183
+
184
+ /**
185
+ * malloc_status() - 报告与内存使用相关的各种统计信息。
186
+ *
187
+ * 此函数将内存使用统计信息写到调用者的屏幕上。此函数替换了 vanilla 3.1.2 中硬编码的 'malloc' 命令。请注意,malloc_status() 产生的输出取决于在构建驱动程序时在 options.h 中选择的内存管理程序包。
188
+ *
189
+ */
190
+ void malloc_status( void );
191
+
192
+ /**
193
+ * get_config() - 查询各种驱动程序配置设置
194
+ *
195
+ * 此 efun 用于查询驱动程序的各种配置设置。有关当前识别的选项列表,请参阅 "runtime_config.h" 包含文件。
196
+ *
197
+ * get_config( __RC_HEARTBEAT_INTERVAL_MSEC__ );
198
+ * get_config( __RC_CALL_OUT_ZERO_NEST_LEVEL__ );
199
+ *
200
+ */
201
+ string | int get_config( int );
202
+
203
+ /**
204
+ * dumpallobj() - 报告已加载的所有对象的各种统计信息
205
+ *
206
+ * 此函数转储已加载的所有对象的统计信息。如果未指定参数,则信息将转储到名为 /OBJ_DUMP 的文件中。如果指定了参数,则该名称将用作转储的文件名。
207
+ *
208
+ */
209
+ void dumpallobj( string | void );
210
+
211
+ /**
212
+ * dump_socket_status() - 显示每个 LPC 套接字的状态
213
+ *
214
+ * dump_socket_status() 是一个诊断工具,它显示 MudOS 驱动程序中配置的所有 LPC 套接字的当前状态。它对于调试 LPC 套接字应用程序非常有用。输出中的每一行对应于一个 LPC 套接字。第一行对应于 LPC 套接字描述符 0,第二行对应于 1,以此类推。套接字的总数是在构建驱动程序时配置的。
215
+ *
216
+ * 第一列 "Fd" 是与 LPC 套接字关联的操作系统文件描述符。"State" 是 LPC 套接字的当前操作状态。"Mode" 是套接字模式,在调用 socket_create() 时作为参数传递。局部和远程地址是互联网地址和端口号以互联网点符号表示。'*' 表示某个地址或端口为 0。注意,处于 CLOSED 状态的 LPC 套接字当前未在使用,因此为该套接字显示的数据可能是特殊的。
217
+ *
218
+ * 以下输出是在 Portals 上生成的,当时运行的唯一套接字应用程序是 MWHOD。它表明当前有两个套接字在使用,一个在 STREAM 模式套接字上监听连接请求,另一个在 DATAGRAM 模式套接字上等待传入数据。
219
+ *
220
+ * Fd 状态 模式 本地地址 远程地址
221
+ * -- --------- -------- ----------------- ------------------
222
+ * 13 LISTEN STREAM *.6889 *.*
223
+ * 14 BOUND DATAGRAM *.6888 *.*
224
+ * -1 CLOSED MUD *.* *.*
225
+ *
226
+ */
227
+ void dump_socket_status( void );
228
+
229
+ /**
230
+ * dump_prog() - 转储/反汇编一个LPC对象
231
+ *
232
+ * dump_prog() 将'obj'的程序信息转储到一个文件'file'中,或者如果未给定'file'则转储到"/PROG_DUMP"。如果当前对象没有写入该文件的权限,则操作失败。
233
+ *
234
+ * Flags可以是以下值的组合:1 - 包含i-code的反汇编 2 - 包含行号信息
235
+ *
236
+ * @param {object} ob - 要转储的对象
237
+ * @param {int} flags - 要使用的标志,默认为
238
+ * @param {string} file - 要转储到的文件,默认为"/PROG_DUMP"
239
+ */
240
+ varargs void dump_prog( object ob );
241
+
242
+ /**
243
+ * dump_file_descriptors() - 转储MudOS进程文件描述符表
244
+ *
245
+ * 此函数提供用于调试MudOS驱动程序的帮助,并有助于克服某些UN*X实现中存在的缺陷,这些实现不提供作为操作系统一部分的等效或更高级的调试功能。输出的解释非常依赖于系统。每个文件描述符都会被检查以确定它是否指向一个打开的文件。如果是,则从fstat()系统调用返回的"stat结构"中显示信息。
246
+ *
247
+ * 以下输出是在运行Sequent DYNIX/ptx系统的Lambda Realms上生成的:
248
+ *
249
+ * Fd 设备号 Inode 模式 用户ID 组ID 大小
250
+ * -- ------------- ----- ------ ----- ----- ----------
251
+ * 0 3 2 10319 c 666 0 3 0
252
+ * 1 79 7 164598 f 644 2862 1 789522
253
+ * 2 79 7 164598 f 644 2862 1 789522
254
+ * 3 40 33b 6925 c 0 2862 1 0
255
+ * 4 40 2a4 6943 c 0 2862 1 0
256
+ * 5 79 7 164599 f 600 2862 1 44784
257
+ * 6 40 2e2 145996 c 0 2862 1 0
258
+ * 7 79 7 164601 f 644 2862 1 506
259
+ *
260
+ */
261
+ void dump_file_descriptors( void );
262
+
263
+ /**
264
+ * debugmalloc() - 转储有关malloc内存的信息到一个文件。
265
+ *
266
+ * 这个efun只有在DEBUGMALLOC和DEBUGMALLOC_EXTENSIONS在驱动程序构建时都在options.h中定义的情况下才可用。debugmalloc() efun将转储由DMALLOC()和相关宏分配的内存片段的信息,如果与宏提供的标记的掩码按位与(&)结果非零。详情请阅读驱动程序源代码中的md.c和config.h。
267
+ *
268
+ */
269
+ void debugmalloc( string filename, int mask );
270
+
271
+ /**
272
+ * debug_levels
273
+ *
274
+ * 返回当前调试级别的映射,其中键是调试级别的名称,值是0(禁用)或表示调试级别的位掩码值的整数值。
275
+ *
276
+ * set_debug_level( (1 << 0) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) );
277
+ * printf("%O\n", debug_levels());
278
+ *
279
+ * 结果:
280
+ * ([ /* sizeof() == 14 *\/
281
+ * "telnet" : 0,
282
+ * "file" : 0,
283
+ * "LPC_line" : 0,
284
+ * "mapping" : 16,
285
+ * "d_flag" : 4,
286
+ * "add_action" : 0,
287
+ * "event" : 0,
288
+ * "comp_func_tab" : 0,
289
+ * "sockets" : 32,
290
+ * "dns" : 0,
291
+ * "websocket" : 0,
292
+ * "LPC" : 0,
293
+ * "connections" : 8,
294
+ * "call_out" : 1,
295
+ * ])
296
+ *
297
+ */
298
+ mapping debug_levels();
299
+
300
+ /**
301
+ * debug_info() - 显示调试信息
302
+ *
303
+ * debug_info() 是一个通用的工具,可以用于调试MudOS驱动程序。请求的调试信息由第一个参数决定。后续参数则由所选择的操作决定。
304
+ *
305
+ * 现有的操作(0和1)需要第二个对象类型参数,可以用于显示MudOS对象结构的各种字段。
306
+ *
307
+ * 以下LPC代码用于生成示例输出:
308
+ *
309
+ * /* di0.c *\/
310
+ * create() {
311
+ * debug_info(0, this_object());
312
+ * }
313
+ *
314
+ * O_HEART_BEAT : FALSE
315
+ * O_IS_WIZARD : FALSE
316
+ * O_ENABLE_COMMANDS : FALSE
317
+ * O_CLONE : FALSE
318
+ * O_DESTRUCTED : FALSE
319
+ * O_SWAPPED : FALSE
320
+ * O_ONCE_INTERACTIVE: FALSE
321
+ * O_RESET_STATE : FALSE
322
+ * O_WILL_CLEAN_UP : FALSE
323
+ * O_WILL_RESET: TRUE
324
+ * total light : 0
325
+ * next_reset : 720300560
326
+ * time_of_ref : 720299416
327
+ * ref : 2
328
+ * swap_num : -1
329
+ * name : 'u/c/cynosure/di0'
330
+ * next_all : OBJ(bin/dev/_update)
331
+ * 此对象是对象列表的头部。
332
+ *
333
+ * /* di1.c *\/
334
+ * create() {
335
+ * debug_info(1, this_object());
336
+ * }
337
+ *
338
+ * program ref's 1
339
+ * Name u/c/cynosure/di1.c
340
+ * program size 10
341
+ * num func's 1 (16)
342
+ * num strings 0
343
+ * num vars 0 (0)
344
+ * num inherits 0 (0)
345
+ * total size 104
346
+ *
347
+ */
348
+ mixed debug_info( int operation... );
349
+
350
+ /**
351
+ * cache_stats() - 报告各种驱动程序和mudlib统计信息
352
+ *
353
+ * 此efun仅在驱动程序构建时在options.h中定义了CACHE_STATS的情况下可用。该efun将转储调用者屏幕上的call_other()缓存命中率的统计信息。
354
+ *
355
+ */
356
+ void cache_stats( void );
@@ -0,0 +1,188 @@
1
+ // mappings.h
2
+
3
+ /**
4
+ * values() - 返回映射中 (key, value) 对的值数组
5
+ *
6
+ * values() 返回一个数组,包含映射 m 中存储的 (key, value) 对的值元素。
7
+ *
8
+ * 例如,如果:
9
+ *
10
+ * mapping m;
11
+ *
12
+ * m = (["hp" : 35, "sp" : 42, "mass" : 100]);
13
+ *
14
+ * 那么
15
+ *
16
+ * values(m) == ({35, 42, 100})
17
+ *
18
+ * 注意:返回的值将与相应键的顺序相同。
19
+ *
20
+ */
21
+ mixed *values( mapping m );
22
+
23
+ /**
24
+ * unique_mapping() - 基于函数从数组创建映射
25
+ *
26
+ * 返回一个按照以下方式构建的映射:
27
+ *
28
+ * 'ob->fun()' 或 'f' 将对数组的每个成员进行评估。对于
29
+ * 函数返回相同值的成员,将它们分组在一起,并将返回值作为键。
30
+ *
31
+ * 返回的映射中的键/值顺序是一致的,但不能保证将来不会改变。
32
+ *
33
+ */
34
+ mapping unique_mapping( mixed *arr, string fun, object ob,
35
+ mixed extra... );
36
+ mapping unique_mapping( mixed *arr, function f, mixed extra... );
37
+
38
+ /**
39
+ * match_path() - 在映射中搜索路径
40
+ *
41
+ * match_path() 在映射中搜索路径。每个键假定为字符串。
42
+ * 值是完全任意的。该 efun 在映射中找到最大的匹配路径。
43
+ * 以 '/' 结尾的键假定与 '/' 后面跟随的字符匹配,即 / 是
44
+ * 该目录下任何内容的通配符。
45
+ *
46
+ */
47
+ mixed match_path( mapping m, string str );
48
+
49
+ /**
50
+ * mapp() - 确定给定变量是否为映射
51
+ *
52
+ * 如果 'arg' 是一个映射,则返回 1。
53
+ *
54
+ */
55
+ int mapp( mixed arg );
56
+
57
+ /**
58
+ * map_mapping() - 通过应用函数修改映射中的元素
59
+ *
60
+ * 返回一个与 map 具有相同键的映射,其中的项目已通过 'ob->fun()'
61
+ * 或 'f' 映射。该函数对 'map' 中的每个元素调用,返回值会
62
+ * 重新放回该位置。'extra' 和后续参数作为参数传递给函数
63
+ * 在项目之后。
64
+ *
65
+ */
66
+ mapping map_mapping( mapping map,
67
+ string fun,
68
+ object ob,
69
+ mixed extra... );
70
+ mapping map_mapping( mapping map, function f, mixed extra... );
71
+
72
+ /**
73
+ * map_delete() - 基于键从映射中删除 (key, value) 对
74
+ *
75
+ * map_delete 从映射 m 中删除具有键等于 element 的 (key, value) 对。
76
+ *
77
+ * 例如,给定:
78
+ *
79
+ * mapping names;
80
+ *
81
+ * names = ([]);
82
+ * names["truilkan"] = "john";
83
+ * names["wayfarer"] = "erik";
84
+ * names["jacques"] = "dwayne";
85
+ *
86
+ * 然后:
87
+ *
88
+ * map_delete(names,"truilkan");
89
+ *
90
+ * 将导致映射 'names' 等于:
91
+ *
92
+ * (["wayfarer" : "erik", "jacques" : "dwayne"])
93
+ *
94
+ * 在调用 map_delete(names,"truilkan") 之后,keys(names) 将
95
+ * 不包含 "truilkan" [除非后续再次将 ("truilkan", *) 添加到
96
+ * 映射中]。
97
+ *
98
+ */
99
+ void map_delete( mapping m, mixed element );
100
+
101
+ /**
102
+ * keys() - 返回映射中 (key, value) 对的键数组
103
+ *
104
+ * keys() 返回一个与映射 m 中存储的 (key, value) 对的键相对应的
105
+ * 键的数组。
106
+ *
107
+ * 例如,如果:
108
+ *
109
+ * mapping m;
110
+ * m = (["hp" : 35, "sp" : 42, "mass" : 100]);
111
+ *
112
+ * 那么
113
+ *
114
+ * keys(m) == ({"hp", "sp", "mass"})
115
+ *
116
+ * 注意:键不会以任何明显的顺序返回。但是,它们将与对应的值
117
+ * (由 values() efun 返回)按相同顺序返回。
118
+ *
119
+ */
120
+ mixed *keys( mapping m );
121
+
122
+ /**
123
+ * filter_mapping() - 根据函数移除映射中的某些元素
124
+ *
125
+ * 返回一个与 map 具有相同键的映射,其中的项目已通过
126
+ * 'ob->fun()' 或 'f' 映射。该函数对 'arr' 中的每个元素调用,
127
+ * 返回值会重新放回该位置。'extra' 和后续参数作为参数
128
+ * 传递给函数在项目之后。
129
+ *
130
+ */
131
+ mapping filter_mapping( mapping map,
132
+ string fun,
133
+ object ob,
134
+ mixed extra... );
135
+ mapping filter_mapping( mapping map, function f, mixed extra... );
136
+
137
+ /**
138
+ * allocate_mapping() - 预分配映射的空间
139
+ *
140
+ * 返回一个预分配了 'size' 元素空间的映射。
141
+ *
142
+ * 例如:
143
+ *
144
+ * mapping x;
145
+ * int y = 200;
146
+ *
147
+ * x = allocate_mapping(y);
148
+ *
149
+ * 其中 y 是映射的初始大小。如果你对映射将包含的元素数量
150
+ * (在这种情况下为 200)有一些了解,使用 allocate_mapping
151
+ * 是初始化映射的首选方式。原因是一次性分配存储在内存
152
+ * 上是稍微更高效的。因此如果你正在使用映射来存储 200 个条目的
153
+ * 灵魂,上述初始化就非常合适。注意,上述初始化并不限制你只
154
+ * 能有 200 个条目。它只是说前 200 个条目将存储得更有效。
155
+ * 注意:如果你将从映射中删除许多元素,你应该使用 x = ([])
156
+ * 来初始化映射,而不是使用 allocate_mapping()。
157
+ *
158
+ * 注意:在这个时候,'size' 是没有意义的,x = allocate_mapping(200);
159
+ * 相当于 x = ([ ]);
160
+ *
161
+ * allocate_mapping(mixed *keys, mixed v):
162
+ * - 如果值是一个数组,返回的数组具有键 'keys' 和值
163
+ * 'value'(像 3.2.x 的 mkmapping)
164
+ * - 如果它是一个函数,则映射具有键 'keys' 和值
165
+ * evaluate(value, key)
166
+ * - 否则,每个键都有值 'value'
167
+ *
168
+ * allocate_mapping(0) ;
169
+ * // ([ ])
170
+ *
171
+ * allocate_mapping(25) ;
172
+ * // ([ ])
173
+ *
174
+ * allocate_mapping( ({ 1, 2, 3 }), ({ "one", "two", "three" }) )
175
+ * // ([ 1 : "one", 2 : "two", 3 : "three" ])
176
+ *
177
+ * allocate_mapping( users(), (: $1->query_name() :))
178
+ * // ([
179
+ * // OBJ(karahd /std/user#9) : "Karahd",
180
+ * // OBJ(gesslar /std/user#2) : "Gesslar"
181
+ * // ])
182
+ *
183
+ * allocate_mapping( ({ "apple", "banana", "pear" }), 25)
184
+ * // ([ "pear" : 25, "apple" : 25, "banana" : 25 ])
185
+ *
186
+ */
187
+ mapping allocate_mapping( int size );
188
+ mapping allocate_mapping(mixed *key, mixed value);
@@ -0,0 +1,43 @@
1
+ // test_bit.md.h
2
+
3
+ /**
4
+ * test_bit
5
+ * set_bit() - 在比特字符串中设置一个比特
6
+ *
7
+ * 如果比特 'n' 在字符串 'str' 中被设置,返回 0 或 1。
8
+ *
9
+ */
10
+ int test_bit( string str, int n );
11
+
12
+ // test_load.md.h
13
+
14
+ /**
15
+ * test_load
16
+ * test_load - 测试文件是否可加载
17
+ *
18
+ * 测试一个文件是否可加载。如果文件可加载,将返回 1,
19
+ 否则返回 0。如果尝试加载的文件包含错误,
20
+ 将会报告这些错误,在这种情况下,你可能需要将
21
+ 函数调用包装在 catch 语句中以获取 0 的结果。
22
+ *
23
+ */
24
+ int test_load( string filename );
25
+
26
+
27
+ /**
28
+ * set_notify_destruct() - 设置对象在被销毁时通知
29
+ * @param flag 如果 flag 设置为 1,则对象将在被销毁时
30
+ * 接收对函数 on_destruct() 的调用。如果 flag 设置为 0,
31
+ * 对象将不会收到此通知。
32
+ * @details
33
+ * 切换对象中的一个标志,以决定它是否会在被销毁时
34
+ * 接到通知。如果 flag 设置为 1,对象将在被销毁时
35
+ * 接收对函数 on_destruct() 的调用。如果 flag 设置为 0,
36
+ * 对象将不会收到此通知。
37
+ * 默认情况下,对象不会收到此通知。要接收对
38
+ * on_destruct() 的调用,对象必须在其生命周期内
39
+ * 的某个时刻调用 set_notify_destruct(1)。
40
+ * set_notify_destruct() efun 只能从希望接收
41
+ * 通知的对象内部调用。
42
+ */
43
+ void set_notify_destruct(int flag);