I’ve an Applescript script that I run as a batch towards a photograph modifying app (Seize One). It’s auto-generated by one other app and creates sensible collections out of a database of key phrases. It’s fairly lengthy and over time turns into longer and longer as a result of extra key phrases are added now and again. In the meanwhile it is about 50k traces and 5MB lengthy. It is fairly sluggish to run (a number of hours), however that is one other matter (in any case I run it in a single day just a few instances per 12 months). I have been working it with out issues since a few years.
The script is mainly an unrolled loop of about 3.600 iterations, each does mainly the identical issues over totally different information. It has grown fairly a bit just lately as a result of I added just a few traces to compute estimated completion time. Now it appears it by no means completes, as a result of at a sure level (roughly 2/3 of the script, not all the time on the similar level) just a few unusual error messages are printed on the console (an excerpt right here):
Catalog 2024-11-23T00:57:01.192162Capture One bought an error: Can’t make doc into kind integer.4-1700
make
group, Seize One bought an error: Can’t make progress whole models into kind textual content., identify, -1700
Catalog 2024-11-23T00:57:01.192162
«class prdt», Seize One bought an error: Can’t make make into kind textual content., sort, -1700
group
and shortly after a segmentation fault happens. I imagine there’s some type of reminiscence corruption, so the console output is meaningless. Inspecting the block of code the place the script crashes exhibits no points, and if I run the identical script once more the crash would possibly occur a bit earlier or later, so I the code just isn’t related.
The script is run by command line with osascript
.
Is there any limitation to the lenght of an Applescript? Concepts? Workarounds? I anticipate that splitting the script or resuming from the purpose it stopped just isn’t a straightforward choice for me, for quite a lot of causes associated to Seize One APIs.
Thanks.
PS I’ve mentioned I do not suppose code is related, anyway that is an iteration:
attempt
set progress textual content to "Importing: Workflow/workflow:revealed/workflow:revealed#twitter-weekly"
inform _workflow_published to make assortment with properties {sort:sensible album, identify:"workflow:revealed#twitter-weekly", guidelines:"IB_S_CONTENT_KEYWORDS 6 workflow:revealed#twitter-weekly "}
set progress accomplished models to 3670
set ___elapsedtime to (present date) - ___basetime
set ___ct to ___elapsedtime * 0.000272
set ___completionTime to "" & (___ct div 60) & " minutes to finish"
set ___eta to time string of ((present date) + ___ct)
set progress further textual content to "3670 / 3671 — 99% " & ___completionTime & " " & ___eta & ""
on error errorMessage quantity errorNumber
log "errorMessage: " & errorMessage & ", errorNumber: " & errorNumber
log ">>>> key phrase: Workflow/workflow:revealed/workflow:revealed#twitter-weekly"
finish attempt