Commit d707a0d
committed
Address PR #461 review comments (31 fixes across 18 files)
Triage and fixes for all 47 unique review comments from PRs #460/#461
(MetalRT backend + iOS demo polish). Full per-comment status in
comments/PR_461_comments.md. Summary of fixes applied:
Build / packaging
- Package.swift: gate RABackendMetalRTBinary (zero-checksum) behind
metalrtRemoteBinaryAvailable flag; no broken remote target in default
SPM resolution.
- build-ios.sh: SC2155-safe local TMPSTRIP with fail-fast on mktemp.
MetalRT C++ backend
- rac_llm_metalrt.cpp: stream cancellation now honored (client_cancelled
flag), terminal callback guarded, RAC_ERROR_STREAM_CANCELLED returned
on cancel.
- rac_vlm_metalrt.cpp: default-init struct fields, reject null/empty
model_path, validate RGB dims before int cast + w*h*4 allocation
(both non-streaming and streaming paths), strdup null-check + OOM.
- rac_stt_metalrt.cpp + rac_tts_metalrt.cpp: default-init loaded=false,
strdup null-check + OOM.
- rac_backend_metalrt_register.cpp: VLM unregister now uses
RAC_CAPABILITY_VISION_LANGUAGE (was TEXT_GENERATION).
Core commons
- lifecycle_manager.cpp: set state to IDLE after auto-unload.
- vlm_component.cpp: stat/S_ISDIR guard before convention-based load.
Swift SDK
- CppBridge.swift: shutdown() synchronously waits for all 6 actor
destroys via Task.detached + DispatchSemaphore, preventing
use-after-free on shutdown race.
- RunAnywhere+TextGeneration.swift: thinkingTokens/responseTokens
apportioned by char ratio (preserves total); inputTokens falls back
to promptLength/4 when C++ doesn't report prompt tokens.
- RunAnywhere+VoiceSession.swift: turnCompleted gated on turnSucceeded
flag; error path no longer emits success.
- MetalRTRuntime/MetalRT.swift: capabilities set now includes .vlm.
- MetalRTRuntime/include/rac_types.h: RAC_STRING_VIEW now evaluates
arg exactly once (inline function), includes string.h.
Example app
- LLMBenchmarkProvider: memBefore captured after unload; decode tok/s
uses max(tokensUsed - 1, 0).
- VLMBenchmarkProvider: memBefore after cleanup sequence; loadVLMModel
moved inside do/catch so failures hit cleanup path.
- RunAnywhereAIApp: MetalRT registration log reworded.
- ToolSettingsView: NSExpression (crash-prone) replaced with
SafeMathEvaluator recursive-descent parser; removed tool-input leak
in debug print.
Branch was first merged with latest origin/main (3 conflicts resolved:
accepted upstream deletion of ArchiveUtility.swift — now tracked for
C++ re-port; kept PR's UTF-8 boundary walk-back in llamacpp_backend
with main's naming; kept both independent additions in llm_component).
Deferred to follow-up issues: MetalRT build distribution unification,
Swift-to-C++ archive streaming re-port.1 parent 34adbed commit d707a0d
18 files changed
Lines changed: 364 additions & 96 deletions
File tree
- examples/ios/RunAnywhereAI/RunAnywhereAI
- App
- Features
- Benchmarks/Services
- Settings
- sdk
- runanywhere-commons
- scripts
- src
- backends/metalrt
- core/capabilities
- features/vlm
- runanywhere-swift/Sources
- MetalRTRuntime
- include
- RunAnywhere
- Foundation/Bridge
- Public/Extensions
- LLM
- VoiceAgent
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
46 | 55 | | |
47 | 56 | | |
48 | 57 | | |
| |||
82 | 91 | | |
83 | 92 | | |
84 | 93 | | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
| 94 | + | |
93 | 95 | | |
94 | 96 | | |
95 | 97 | | |
| |||
205 | 207 | | |
206 | 208 | | |
207 | 209 | | |
208 | | - | |
| 210 | + | |
209 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
210 | 260 | | |
211 | 261 | | |
212 | 262 | | |
213 | 263 | | |
214 | 264 | | |
215 | 265 | | |
216 | | - | |
217 | | - | |
218 | 266 | | |
219 | | - | |
220 | 267 | | |
221 | 268 | | |
222 | 269 | | |
| |||
237 | 284 | | |
238 | 285 | | |
239 | 286 | | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
| 287 | + | |
| 288 | + | |
268 | 289 | | |
269 | 290 | | |
270 | 291 | | |
| |||
336 | 357 | | |
337 | 358 | | |
338 | 359 | | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | 360 | | |
345 | 361 | | |
346 | 362 | | |
| |||
353 | 369 | | |
354 | 370 | | |
355 | 371 | | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
356 | 385 | | |
357 | 386 | | |
358 | 387 | | |
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
491 | 491 | | |
492 | 492 | | |
493 | 493 | | |
494 | | - | |
| 494 | + | |
495 | 495 | | |
496 | 496 | | |
497 | 497 | | |
| |||
Lines changed: 5 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
32 | 30 | | |
33 | 31 | | |
34 | 32 | | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
70 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
33 | 31 | | |
34 | 32 | | |
35 | 33 | | |
36 | 34 | | |
37 | 35 | | |
38 | 36 | | |
39 | 37 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 38 | + | |
44 | 39 | | |
45 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
Lines changed: 130 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
104 | 103 | | |
105 | 104 | | |
106 | 105 | | |
| |||
109 | 108 | | |
110 | 109 | | |
111 | 110 | | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
116 | 115 | | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
| 116 | + | |
126 | 117 | | |
127 | 118 | | |
128 | 119 | | |
| |||
416 | 407 | | |
417 | 408 | | |
418 | 409 | | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
419 | 535 | | |
420 | 536 | | |
421 | 537 | | |
| |||
0 commit comments