• 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  
[r6344] by david_costanzo

Refactoring: Slightly simplify the logic for handling the return value of a macro.

This moves:
if (unev == Unbound)
{
assign(unev, NIL);
}

To the branch where this change matters.

It also precomputes its effect instead of assigning env twice.

Note that I haven't confirmed that unev can be Unbound.

2026-07-06 02:49:36 Tree
[r6343] by david_costanzo

Fix Bug #609; Procedures are now re-treeified if they are:
- redefined with DEFINE
- redefined with TO
- erased with ERASE
- overwritten with COPYDEF

The problem is that these workspace procedures all untreeified the previous procedure.
This was historically needed because the tree had a circular reference and changing
the case object's procnode while it still had a tree would leak the tree. However,
the evalulator can't handle when a running procedure is untreeified and the generation
changes, as this sets the tree of bodylist to NIL, and the evaluator can't re-treeify NIL.

A recent change reworked the structure of a tree to no longer creates circular references.
Therefore, explicit untreeifying is no longer needed, so that logic could all be removed.

This is a rare fix where the fix is entirely done by removing code.

2026-07-06 02:07:34 Tree
[r6342] by david_costanzo

Add a comment that eval.lgo also tests the treeification process in paren.cpp.

2026-07-05 03:48:50 Tree
[r6341] by david_costanzo

Fix a comment

2026-07-05 02:04:21 Tree
[r6340] by david_costanzo

Fix a typo in a comment

2026-07-05 01:51:57 Tree
[r6339] by david_costanzo

Add LOADTEST.REDEFINEWHILETREEIFYING, a regression test for bug #249.

Bug #249 is a memory leak when treeiying a procedure (which happens when it's first run) causes a file to load that redefines that procedure.

This is similar to EVALTEST.SILENTLOADFROMTREEIFY, except that this test is designed only to test the memory leak.

2026-07-05 01:26:31 Tree
[r6338] by david_costanzo

Add assert(!is_freed(nd)) to nodetype().
This required making is_freed return false when given NIL.
This was done to make freed memory use bugs easier to find.

2026-07-04 21:05:47 Tree
[r6337] by david_costanzo

Fix a memory leak in LPUT when it had bad input and the :erract handler returned a newly allocated list.
The leak was introduced in recent refactoring when llput was made to use validate_list_argument().
The problem is that the list NODE* that should have been gcref'd was also used to walk the list,
so NIL ended up being gcref'd instead.

2026-07-04 20:43:30 Tree
[r6336] by david_costanzo

Refactoring: inline untreeify()
After recent changes, it was only called from untreeify_body() and that function only called untreeify().
Therefore, the existence of both functions wasn't justified.
I retained the function with the stronger name.

2026-07-04 20:13:07 Tree
[r6335] by david_costanzo

Cleanup: Remove unused function untreeify_line.
This because unneeded when treeifying a proc's bodylist stopped changing each body line into a TREE.

2026-07-04 20:04:41 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

Cerberus Logo