• 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
  • Code
FMSLogo

FMSLogo Code

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 ▾ ▴
 
  • Browse Commits
  • Browse Files

Code Commit Log


Commit Date  
[r6136] by david_costanzo

Fix Bug #600; A procedure which runs a tail-called APPLY no longer leaks its parameters into the caller's scope.

The fix was to split llocal() into two procedures, one that creates a variable scope and one that doesn't.
LOCAL uses the one that creates a new variable scope (no change).
evaluator() uses the one that doesn't (the fix).

This change diverges from UCBLogo's implementation, which also doesn't have this bug.
Therefore, there's at least one other way fix it. I'm not confident that I picked the right fix.

2026-04-02 03:33:19 Tree
[r6135] by david_costanzo

Add a bad input test to APPLY that crashes UCBLogo but not FMSLogo.
This is important, in case I cherry-pick changes from UCBLogo to fix problems in FMSLogo.

2026-04-02 03:03:08 Tree
[r6134] by david_costanzo

Rewrite some tests which log very long lines to instead log short lines.
This addresses a problem when using a side-by-side differ to compare the test log to the baseline test log.
Notably, meld has a limit of 8K characters per line.

2026-04-01 02:10:50 Tree
[r6133] by david_costanzo

Use wxSingleInstanceChecker to detect if another instance of FMSLogo is running on startup.
This prevents multiple instances of FMSLogo from running on GNU/Linux unless to they were given a specific program to run.
The CreateMutex logic on Windows was preserved until it can be confirmed that wxSingleInstanceChecker can grab the exact same mutex.
Otherwise, FMSLogo 8.5.0 couldn't detect if FMSLogo 8.4.0, the installer, or the uninstaller is running, and vice versa.

2026-03-31 02:32:05 Tree
[r6132] by david_costanzo

Refactoring: Rename NODETYPES to NODETYPE.
When the type was an "unsigned short", a plural made sense because it was the set of all possible types.
As an enum, a singular makes more sense, because it's the type of the associated NODE.

2026-03-31 01:55:52 Tree
[r6131] by david_costanzo

Change NODETYPES from "unsigned short" to an enum.
This adds a little more type safety and makes debugging easier (the debugger shows the symbolic name, not the numeric value).
While this increased the size of the type from 2 to 4 in gcc, it didn't increase the size of the NODE.
If the new size of NODETYPES proves to be problematic, it can be changed to an "enum : unsigned short".

2026-03-31 01:41:14 Tree
[r6130] by david_costanzo

Fix Bug #598; QUEUE and DEQUEUE now behave correctly when the queue name is shadowed by one of their own local variables.
The fix is to rewrite these procedures as macros that get evaluated in the caller's context.
For performance, when the queue name doesn't clash with a local variable, the previous implementation is run.

2026-03-30 03:56:46 Tree
[r6129] by david_costanzo

Update the tests so that a full test pass can run on GNU/Linux.
In some cases, this meant finding ways to make tests run differently on Windows or GNU/Linux.
In most cases, this meant not running tests whose execution depends on Windows,
such as any test that uses UIAUTOMATIONLIB, which uses DLLCALL for win32 API.

2026-03-29 04:14:28 Tree
[r6128] by david_costanzo

Refactoring: Replace CURRENTWORKINGDIRECTORY with GETCURRENTDIRECTORY in dllcall.
This removes duplicated code.

2026-03-28 15:26:00 Tree
[r6127] by david_costanzo

Adjust some of the assert statements that I had added to the inline functions.
The getstr* functions now call is_word() which works for all string types.
Confusingly, is_string() is a special case of is_word().

Also treepair__tree is not always called on a tree.
This may be a bug, which I'll look into later.
For now, it's more important for fmslogo to run with asserts than to have this assert.

2026-03-27 02:24:48 Tree
Older >
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