Is it really the reading file taking so much time or using $piece on the line and setting it to global too?

There are various things here that may slow you, even $increment (best to be replaced by i+1)

You can also split the reading file and set it to global by two parts, and use $sortbegin 

Try to run your code with %SYS.MONLBL started, it will help you understand where it spends more time.

Sorry, but it is the most horrible way to do it.

too old-school, the code has been outdated for many years. Dots syntax in 2023, seriously?

Projections are definitely not a way to solve it and did not get why they were even considered here

The best way to go is using %Studio.SourceControl, there are a lot of examples, and even some are out of the box already.

And most modern way now is to switch from Studio to VSCode, and to local-side development. So, all your classes will always be as files and can be synced to the git repository.

I’m not a fun of using LOAD DATA, it’s not complete, there are some things required to be kept in mind.

now I would recommend to look at dbt tool, which has support for IRIS, and may probably support older versions too, and it works with CSV quite easy, and can create table for you as well. Have a look, and let me know if you have any issues with it. I can fix bugs in IRIS support, if you find any. For IRIS you would need use dbt-iris package 

Not sure why you think, that the IP is wrong. And probably it's the Windows thing and WSL

But, I use this way a lot of time, when I need to access from some docker container, some another service running locally, or another docker container not connected to the same network, and it works fine. This address is supposed to be used only from the container, it should not show the real IP address of the host. If you wish to show some URL, which will be available outside of the container, obviously it will not help.

Your issue with screen formatting is very interesting, it deserves a separate topic. I have not seen any issues yet with it. While I’d like to find a way to improve a standard IRIS terminal, like irissqlcli, I’d like to see the most challenging parts like this.

webTerminal obviously not a right tool for it. As a replacement for it, you can try to use ttyd, I use it for irissqlcli-web