In your log I see

 03/09/24-21:16:24:072 (430) 3 [Generic.Event] Process 430 (JobType=WRTDMN,Dumpstyle=0,Directory='/usr/iriss
ys/mgr/') caught signal 4.

caught signal 4. Googled, what this signal mean

4SIGILL Illegal instruction. The program contained some machine code the CPU can't understand.

i5-3470  quite an old CPU, from 2012, looks like it's not supported already

This command will only create file CACHE.DAT on Caché, or IRIS.DAT for IRIS, and to be able to see it in portal, you have to create Config.Database as well

But, I would recommend using %Installer Manifest, it's available for many years, and in Caché as well

The simplest installer would look like this

XData setup
{
<Manifest>
  <Default Name="Namespace" Value="IRISAPP"/>
  <Default Name="database" Value="irisapp"/>
  
  <Namespace Name="${Namespace}" Code="${Namespace}" Data="${Namespace}" Create="yes" Ensemble="no">

    <Configuration>
      <Database Name="${Namespace}" Dir="${mgrdir}${database}/data" Create="yes" Resource="%DB_${Namespace}"/>
    </Configuration>
  </Namespace>
</Manifest>
}

You can find more examples on GitHub

Well, the example you used uses ClassMethod, which is like an any static method in other languages, and can be called directly with no issues. So, this definitely will work

ClassMethod AnotherMethod()
{
  do ##class(MyClass).Foo()
}

If you would want to do the same, but using instance methods, it can be done as well

Assuming the super class, like this

Class dc.MyClass Extends %RegisteredObject
{

Property Value As %String;

Method Foo()
{
  Write !,"MyClass:Foo - ", ..Value
}

}

and child class

Class dc.SubClass Extends MyClass
{

Method Foo()
{
  Write !,"SubClass:Foo - ", ..Value
}

ClassMethod AnotherClassMethod()
{
  set obj = ..%New()
  set obj.Value = "demo"

  Do obj.Foo()
  
  Write !,"-----"
  Do ##class(dc.MyClass)obj.Foo()

  Write !,"-----"
  Do obj.AnotherMethod()
}

Method AnotherMethod()
{
  Do ##class(dc.MyClass)$this.Foo()
}

}

The output will be this

USER>do ##class(dc.SubClass).AnotherClassMethod() 
SubClass:Foo - demo
-----
MyClass:Foo - demo
-----
MyClass:Foo - demo

And as you can see, the last two calls are working from a super class, and it keeps access to the object

Check this template https://github.com/intersystems-community/iris-fhir-template/blob/master...

// Configure FHIR Service instance to accept unauthenticated requests
 set strategy = ##class(HS.FHIRServer.API.InteractionsStrategy).GetStrategyForEndpoint(appKey)
 set config = strategy.GetServiceConfigData()
 set config.DebugMode = 4
 do strategy.SaveServiceConfigData(config)

you can use $zstrip, where action *P, * is for any place, and P any punctuation

for example

USER>write $zstrip("before!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?after", "*P")
beforeafter

And if you just want to check if the string contains any punctuations, you can compare if the original string does not equal the same after $zstrip.

if you wish to use regexp, you can use $match

USER>write $match(".!@", "^[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]*$")
1