Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
freem freem
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 19
    • Issues 19
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • John P. Willis
  • freemfreem
  • Wiki
  • [Historic] Compiling with LCC on Windows NT

Last edited by John P. Willis Mar 02, 2020
Page history

[Historic] Compiling with LCC on Windows NT

Sam managed to compile FreeM-0.3.0 on Win NT using the LCC-WIN32 compiler. But Sam hacked it somewhat (#ifdef LCC_WIN32 and #endif and some small code changes as well).

Sam encountered the following MAJOR problems in the port:

  1. The total lack of termios support on the Win32 platform.

Sam simply made all of that conditional on LCC_WIN32. It affects all terminal IO and such matters.

  1. The poor support for signals (probably in the LCC compiler's library... but could be intrinsic)

Again, using the OLDUNIX support it worked. Sort of. And Sam did change a lot of signal to the 'generic' SIGBRK.

  1. The lack of forking.

Since the library on the Win32 lacks a fork() call it was simply disallowed. The other calls as well were changed to never fork, or never expect signals from other jobs. Not nice.

  1. All direct calls to Unix / Linux routines had to be changed.

And it compiled. And started. And all normal M code works! BUT all escape sequences show up (as [ABC and what have you).

SO, I propose some changes to the guidelines for the final version PROVIDED PORTABILITY is an issue:

  1. NO RELIANCE on any particalur terminal should be made (possible UNLESS explicitly called for in an OPEN statement). In other words, the system should NEVER on its own output escape sequences or try to use colours; all the fancy terminal handling in service.c should be deleted or moved to an OPEN statement or something.
Clone repository
  • Build Instructions
  • Coding Standards
  • Conditions for Public Release
  • FreeM Commands
  • FreeM Intrinsic Functions
  • FreeM Intrinsic Special Variables
  • FreeM Invocation
  • Implementation Limits
  • Namespace Management
  • The FreeM REPL
  • User Defined Z Functions
  • VIEW Commands and Functions
  • [Historic] C2M Specification
  • [Historic] Change Log
  • [Historic] Compiling with LCC on Windows NT
View All Pages