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

Simplify release_all_objects() by removing unneeded logic that set object properties to NIL.
This makes the code easier to understand as each line now has purpose.

2026-07-10 21:24:59 Tree
[r6349] by david_costanzo

Add flonum_arg(), which is a replacement for float_arg() that:
1) Doesn't have the side effect of modifying its input list on error.
2) Accepts the argument, instead of the list containing the argument.

It also changes lform() to use the new function to provide that it's correct.

This is part of a larger effort to simplify by the code base by reducing the number of unneeded side effects.

2026-07-07 23:19:08 Tree
[r6348] by david_costanzo

Add more tests for FORM, including tests that use :erract to fix bad input.

2026-07-07 01:40:39 Tree
[r6347] by david_costanzo

Fix a comment

2026-07-06 04:20:40 Tree
[r6346] by david_costanzo

Add the results of some new test cases that were added to test/eval.lgo

2026-07-06 04:01:12 Tree
[r6345] by david_costanzo

Refactoring: Change ACTIVEAREATEST.PERSISTTEST to use RUNLOGOPROGRAM instead of duplicating its logic.
This makes the test a little shorter, and therefore more readable.

2026-07-06 03:35:38 Tree
[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
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