Greetings, I seem to remember a )SIZE command from way back. I queried Claude and found the following:
*Me: * Is the )SIZE command part of the IBM APL standard? *Claude:* Good question — worth distinguishing a couple of things here. *)SIZE is not part of a formal international standard.* The formal APL language standards (ISO/IEC 8485 for APL, and later ISO/IEC 13751 for "Extended APL"/APL2-style features) define the *language* — syntax, primitive functions, operators, array semantics, etc. They generally do *not* standardize system commands (the )-prefixed commands), because those are considered part of the *interactive session/workspace management* layer, which is implementation-specific. *)SIZE is, however, a long-standing IBM convention.* It originated in IBM's APL implementations — APL\360, APLSV, and later APL2 — as part of their documented system command set, and it's specified in IBM's own APL2 Language Reference and Programming Guide manuals. Because IBM's APL products were so influential, many other vendors (Dyalog, GNU APL, APLX, etc.) adopted )SIZE or a close variant as a convention for compatibility and familiarity, even though they aren't obligated to by any standard. So the accurate way to put it: )SIZE is a de facto standard inherited from IBM's APL lineage, not a de jure one — it's part of IBM's documented practice, but not part of the ISO APL language standard. ---------------- *Me: * Can you set the size of a workspace? *Claude:* Yes — )SIZE can be used both to query and to set the workspace size limit, depending on the implementation. *To query:* typing )SIZE alone reports the current active workspace size (and often the maximum available). *To set:* you follow it with a number, e.g.: )SIZE 4000 This requests a workspace size limit of 4000 (units vary by implementation — often bytes, or sometimes a system-defined unit). A few practical notes: - *You can usually only shrink or grow within bounds.* Most implementations let you *reduce* the size freely, but *increasing* it is capped by system-imposed limits (total memory available, licensing limits, or an administrator-configured maximum). If you ask for more than the system allows, it typically just sets it to the maximum permitted rather than erroring out. - *Timing matters.* In many implementations, )SIZE only takes effect for variables/objects created *after* the command — it doesn't retroactively shrink space already occupied by existing data, and if your existing workspace content already exceeds the new requested size, the request may be rejected or clamped. - *Some implementations tie )SIZE to sign-on time only.* In older mainframe-style APL systems (e.g., timesharing APL\360/APLSV), workspace size was sometimes fixable only during login/sign-on, not mid-session. Modern implementations like Dyalog APL and GNU APL are generally more flexible and let you resize mid-session, memory permitting. If you tell me which specific APL system you're working in (Dyalog, GNU APL, APL2, etc.), I can give you the precise syntax and behavior for that one, since the exact units and constraints do vary. ------------------------------------------------------- I am trying to think if )SIZE makes any sense in today's environment. I think the following would be worth knowing: 1. How much memory the system is currently using. This would redilly point out when you are taking up a lot more memory then you expect. 2. How much memory is available before going into virtual memory. 3. Being able to set a max memory usage can be helpful in a multi-processing system. Just some thoughts. Blake
