A guess from the hip:
- import of *.CSP is followed by compiling it to *.CLS, which is compiled to *.INT
- import of *.CLS doesn't necessarily trigger a compile
- Log in to post comments
A guess from the hip:
* It's just great to see this excellent example
* still in maintenance and updated
* It's my personal favourite
* working, refreshed and kept in shape over the years.
I wish I could see more of those packages in OEX
Muchas Gracias Salva ! 馃
This reminds me of the ages-old service rule
馃榿
I composed a small example as DV.MAC with 36 conditions. and -as expected- hit no limit.
DV ;
for i=1:1:50 {
set x=$r(40)
set col=$SELECT(
x=1:"col_1",
x=2:"col_2",
x=3:"col_3",
x=4:"col_4",
x=5:"col_5",
x=6:"col_6",
x=7:"col_7",
x=8:"col_8",
x=9:"col_9",
x=10:"col_10",
x=11:"col_11",
x=12:"col_12",
x=13:"col_13",
x=14:"col_14",
x=15:"col_15",
x=16:"col_16",
x=17:"col_17",
x=18:"col_18",
x=19:"col_19",
x=20:"col_20",
x=21:"col_21",
x=22:"col_22",
x=23:"col_23",
x=24:"col_24",
x=25:"col_25",
x=26:"col_26",
x=27:"col_27",
x=28:"col_28",
x=29:"col_29",
x=30:"col_30",
x=31:"col_31",
x=32:"col_32",
x=33:"col_33",
x=34:"col_34",
x=35:"col_35",
1:"more")
write i,?4,x,?10,col,!
}
result:
. . . . 23 32 col_32 24 39 more 25 39 more 26 31 col_31 27 10 col_10 28 36 more 29 24 col_24 30 21 col_21 31 2 col_2 . . . .
I met a similar issue.
A new IDEA might be to fix the interface for IDEAS 馃槈
While you are in terminal $IO="|TRM|:|10468" or similar
from Studio it is
It's one of the differences
I fully support your proposal.
I published >700 reviews for the actual 1156 visible packages.
And there are several challenges to be addressed with any new structure.
This isn't a solution, but a step in between to improve the actual situation
I wonder how many of the 1156 packages might move to the archive without maintenance
There is no voting on the numbers added
Chrome could be a beast on caching
For other cases, I had to clear its cache from settings several times
The latest AI stuff even modified my text during typing.
I had to fight to lock it in chains
Hi @Evgeny Shvarov
You inspired me to extend the standard Dockerfile sequence by this line
RUN --mount=type=bind,src=.,dst=. \
iris start IRIS && \
iris session IRIS < zpm.script && \
iris session IRIS < iris.script && \
iris stop IRIS quietlyand zpm.script is basically the version-independent one-liner sliced to readable pieces
zn "%SYS"
;; from onezpm
hang 3
write !,"from onezpm",!
set r=##class(%Net.HttpRequest).%New()
set r.Server="pm.community.intersystems.com"
set r.SSLConfiguration="ISC.FeatureTracker.SSL.Config"
do r.Get("/packages/zpm/latest/installer")
do $system.OBJ.LoadStream(r.HttpResponse.Data,"c")
ZPM "repo -r -n registry -url https://pm.community.intersystems.com/ -user """" -pass """""
zpm "enable -community"
hang 2
Write !,"ZPM ready",!
haltThis makes me independent from the limits of intersystemsdc/.....
and I can use images from
containers.intersystems.com/intersystems/****-community
with a minimal invasive approach without touching any other part of the repo
In most cases, I've seen working before
the real message was "community license expired."
You see it only in the builder log. OR
using docker compose --progress plain build from command line.
workaround:
use instead. intersystemsds/iris-community or intersystemsdc/irishealth-community
:latest is always the default
Yeah!
If there is a reference of how to add -ml- functionality to available intersystemsds/iris-community and intersystemsdc/irishealth-community
The other possibility could be to change to NON-intersystemsdc versions
and add the single-line installation for ZPM. Not my favorite.
That means that the -ml- versions are requested in Dockerfile or docker-compose.yml.
It is not immediately visible that ML is required and used.
For a few packages, it was pretty obvious that
it came in by cut&paste from previous packages..
technically correct but not really a practical solution
for 50+ affected packages in OEX
Thank you @Dmitry Maslennikov !
You confirmed my initial suspicion.
And the missing intersystemsdc version (including preinstalled ZPM)
affects a rather broad range of packages in OEX.
1) you miss a final condition in $SELECT(). It's the 1:
$SELECT(^GlFSL("Debug")>0:Entry^HS.Local.VA.Util.Log(%arr,,"D"),1:QUIT)
2) QUIT doesn't return a value but <UNDEFINED> error if you don't have
a SET QUIT="" somwhere before or use $GET()
this may fit
$SELECT(^GlFSL("Debug")>0:Entry^HS.Local.VA.Util.Log(%arr,,"D"),1:$GET(QUIT))
Command QUIT is just appropriate with $CASE(...)
https://docs.intersystems.com/iris20252/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fselect#RCOS_fselect_select_and_case
TestFor.inc
#define MyLoop(%count) set x="" for i=1:1:%count set x=$order(^%SYS("JOURNAL",x),-1) write x,! in Test class:
ClassMethod Mike()
{
$$$MyLoop(7) Write ?5,$get(@$ZR," *** "),!
} Resulting in
PURGED *** PREFIX MAXSIZE 1073741824 LIFESPAN *** LAST 1^C:\InterSystems\IRIS242\mgr\journal\20251029.003 EXPSIZE 0 CURRENT 1^C:\InterSystems\IRIS242\mgr\journal\20251029.003
Thanks for the correction.
I had something similar in mind, but didn't find the related doc!
So this means that the IF is not applicable in your context.
What commands are before the $$$TestIf(3) and after ?
I think of some WRITE $$$TestIf(3) .....
Or you may try to explicitly write the macro-generated code to see any hidden issue
I'm running a bit out of fantas,y what may go on
Strange. It should generate IF (3>0) {QUIT 5} and accept it.
Could you pls simplify the case for testing to
#define TestIf(%arr) if %arr>0 QUIT 5Not yet Halloween, but this looks spooky:
For me, all variants work:
My versions:
InterSystems Studio Client 2024.1.0 Build 262
Server IRIS for Windows (x86-64) 2024.3 (Build 217U)
Now it's clear instead of (%arr > 0) you simply should write (%arr>0)
The ObjectScript compiler is interpreting the blank after %arr as an argument terminator
Another challenge is to enable WebSocket protocol on your webserver
I just had the "pleasure" to do this for IIS 馃懞
It's not a default
(error on compiling within a class) like:
#define TestIf(%arr) if (%arr > 0) { QUIT 5 } ; no final dot.
#define is an element of ObjectScript
so it has to be embedded in a [Class]Method
and it is only available within that method
It can't be flying free inside a class definition.
If you need your $$$TestIf(...) in more than 1 method, you can deposit
it in some TestIf.INC and include it BEFORE the Class statement !!
Then it is visible to ALL methods.
Attention: You can INCLUDE just 1 single *.INC in a class definition.
If you need more than 1, you have to cascade it with #include in the first *.inc
Include TestIf
Class A.PERSON1 Extends %Library.Persistent
{
Parameter GlobalName = "^.........!" ;;
/// .......
ClassMethod michael(param) as %Integer
{
$$$TestIf(param)
.........
quit $$$OK
}
The AI example is misleading anyhow, as it just does a $O loop without any action to be done
*.inc is typically kind of text generation code during compilation.
What is your expectation for using the *.inc ?
%in and %gn are just text replacement parameters:
%gn is used as globalname, %in as first level subscript
If you just see pre you may have a problem with your &html< ........> sequence
that translates to write ........,! including all quoting requirements,
while <pre> any text </pre> is just straight HTML
and #(variable)# is a CSP instruction to display the actual content of a variable
and avoid any extra spaces
this may help to get the plain %request object:
k ^SPOOL s %io=$I O 2 u 2 ZW %request c 2 u %ioor whatever object you need to trace
YEAH, it's built for visual CSP pages
From Class Docs.:.png)
Somewhere in the CSP page. This is just ~20% of the content.png)
I can just confirm your experience. Must be a bug in irisession on WIN.
My workaround for termination:
HALT followed by blank
Then an empty line following.
Otherwise, the last character is repeated endlessly until all memory is consumed.
Neither mouse nor keyboard reacts. I had to reboot several times
There are geographies in this world where a Decimal-Comma is used instead of a Decimal-Point.
Never met a Decimal-Pipe 馃槈
Added IRIS instance name and server IP to result header