Skip to Main Content
HCL Domino Ideas Portal

Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.

For more information and upcoming events around #dominoforever, please visit our Destination Domino Page

Status Needs Clarification
Workspace Domino Designer
Categories LotusScript
Created by Guest
Created on Dec 26, 2022

Increase the recursive calls stack size limit on 64-bit systems

The current limit of recursive calls (recursion level for a given LotussScript function) in 32-bit/64-bit system is 32Kbyte stack size:


https://help.hcltechsw.com/dom_designer/12.0.2/basic/LSAZ_LIMITS_ON_COMPILER_AND_COMPILED_PROGRAM_STRUCTURE.html#:~:text=a%20given%20function)-,32Kbyte%20stack%20size,-Storage%20size%20of


Need to expand this current stack size limit in 64-bit systems, because indeed, 64-bit system can handle more data than the 32-bit system.

  • Attach files
  • Guest
    Reply
    |
    Mar 30, 2023

    Hello Thomas,

    Please see the sample code below:


    Option Public

    Option Declare

    Sub Initialize

    Dim session As New NotesSession

    Dim db As NotesDatabase

    On Error GoTo catch

    try:

    Set db = session.CurrentDatabase

    Dim doc As NotesDocument

    Set doc = db.Createdocument()

    Call CheckStackSpace(doc, 1)

    catch:

    MsgBox "Error in check stack space: " & Error

    Exit Sub

    End Sub

    Sub CheckStackSpace(doc As NotesDocument, counter As Integer)

    Dim strCounter As String

    On Error GoTo catch

    try:

    strCounter = "Count: " & counter

    Print strCounter

    Call CheckStackSpace(doc, counter + 1)

    Exit Sub

    catch:

    Dim session As New NotesSession

    'Get full version

    Dim platform, notesVersion, fullVersion As String

    notesVersion = Split(session.NotesVersion, "|")

    platform = Split(session.Platform, "/")

    fullVersion = notesVersion(0) + " " + platform(1) + "bit"

    Call doc.ReplaceItemValue("NotesVersion", fullVersion)

    Call doc.ReplaceItemValue("RecursiveCallsCount", CStr(counter))

    Call doc.ReplaceItemValue("Error", "Error: " + Error)

    Call doc.Save(True, True)

    Exit Sub

    End Sub



    Please see attached file for the result. Thank you.


  • Admin
    Thomas Hampel
    Reply
    |
    Mar 24, 2023

    Can you please provide an example (e.g. LotusScript code) showing how you are running into this limit?