• Join/Login
  • Business Software
  • Open Source Software
  • For Vendors
  • Blog
  • About
  • More
    • Articles
    • Create
    • SourceForge Podcast
    • Site Documentation
    • Subscribe to our Newsletter
    • Support Request
SourceForge logo
For Vendors Help Create Join Login
SourceForge logo
Business Software
Open Source Software
SourceForge Podcast
Resources
  • Articles
  • Case Studies
  • Blog
Menu
  • Help
  • Create
  • Join
  • Login
  • Home
  • Browse
  • FMSLogo
  • Bugs
FMSLogo

STOP before an unknown procedure still throws "don't know how to" error

A Logo programming environment for Microsoft Windows

Brought to you by: david_costanzo
  • Summary
  • Files
  • Reviews
  • Support
  • Tickets ▾
    • Feature Requests
    • Bugs
    • Support Requests
  • Discussion
  • Code
Menu ▾ ▴
  • Create Ticket
  • View Stats

Group

  • v_6.06x
  • v_6.07.X
  • v_6.08.X
  • v_6.10.X
  • v_6.11.X
  • v_6.13.X
  • v_6.22.X
  • v_6.25.X
  • v_6.26.X
  • v_6.27.X
  • v_6.28.X
  • v_6.29.X

Searches

  • Changes
  • Closed Tickets
  • Open Tickets

Help

  • Formatting Help

#603 STOP before an unknown procedure still throws "don't know how to" error

v_6.06x
closed-fixed
nobody
None
5
2026-07-28
2026-03-29
David Costanzo
No

If you define a procedure that runs STOP before reaching a line of code that runs an unknown procedure, the error for the unknown procedure is still thrown. That error is thrown before any instruction line within the procedure executed.

Steps to Reproduce:

TO SHOWBUG
  PRINT [Before STOP]
  STOP
  PRINT [After STOP]
  UNKNOWN1 1
  (UNKNOWN2)
  (UNKNOWN3 1)
END

SHOWBUG

What happens:
FMSLogo throws an error like

I don't know how to UNKNOWN3 in showbug
[(UNKNOWN3 1)]

Expected Result:
The commander prints

Before STOP

Note that UNKNOWN1 1 and (UNKNOWN2) don't throw errors.

This bug is also reproducible in UCBLogo 6.2.5.

This error is only shown when the unknown procedure is run in parentheses and has arguments.

This feels like a bug in that it's surprising. From the Logo programmer's point of view, why should adding parens change the behavior and only then if there are arguments? And for an interpreted language, why does an error on a line that isn't run supersede running any lines?

I encountered this while trying to update the regression tests to be runnable on GNU/Linux. I wasn't able to exit early from the test procedure by adding this:

    IF NOT ISWINDOWS [ STOP ] ; This test only runs on Windows

Because a subsequent call to (DLLFREE "gdi32.dll) halted the tests with an error.

Discussion

  • David Costanzo

    David Costanzo - 2026-07-28
    • status: open --> closed-fixed
     
    If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
  • David Costanzo

    David Costanzo - 2026-07-28

    I have committed [r6379] to fix this. It will be available in FMSLogo 8.6.0.

    The fix works if the unknown procedure is on a different line from the STOP. A bug still exists if they are on the same line. That is tracked by Bug #625.

     

    Related

    Bugs: #625
    Commit: [r6379]

    If you would like to refer to this comment somewhere else in this project, copy and paste the following link:

Log in to post a comment.

SourceForge
  • Create a Project
  • Open Source Software
  • Business Software
  • Top Downloaded Projects
Company
  • About
  • Team
  • SourceForge Headquarters
    1320 Columbia Street Suite 310
    San Diego, CA 92101
    +1 (858) 422-6466
Resources
  • Support
  • Site Documentation
  • Site Status
  • SourceForge Reviews
SourceForge logo
© 2026 Slashdot Media. All Rights Reserved.
Terms Privacy Opt Out Advertise
mdb logo