• Free 64-bit Forth for MacOS

    From Doug Hoffman@21:1/5 to All on Wed Apr 13 11:15:22 2022
    It has come to my attention that a new release of iMops is available.
    This updated version runs on all Intel MacOS systems including the
    latest version (Monterey, or v12.3x).

    "As an offspring of PowerMops, iMops is an X86-64 native implementation
    of the Mops language for Mac OS X. It is also a subroutine threaded,
    optimizing Forth compiler and linked with Cocoa/Objective-C."

    https://sourceforge.net/projects/powermops/files/iMops/
    ( Download iMops223.zip release date = 2022-02-05 )
    - license is Public Domain
    - iMops development system = 952 Kb on disk
    - stand alone applications will be much smaller (not tested by me yet)
    - full source code is supplied, iMops is written in iMops and rebuilding
    the iMops system from scratch is quick and easy
    - while my name is listed at the top of the SourceForge page, I have not
    been involved with the Mops project since 2004
    - I believe Nao Sacrada is the primary developer of iMops, perhaps with
    some help from Mike Hore (not sure)
    - I notice that the cgrDemo works fine on MacOS High Sierra (v10.13) but
    does not work on the latest OS (Monterey). Not sure what is going on
    there.

    I haven't spent much time with the new iMops yet but what I have seen so
    far looks impressive. It is a full featured Forth, surely not fully
    ANS compliant but most Forthers will have little trouble adapting.

    iMops comes with its own object system that includes many useful
    classes, duck typing, multiple inheritance, garbage collection, and [parameter]-message-object syntax that works great IMO.

    One feature of iMops is its native integration to the MacOS including
    GUI calls. As a quick test of this I wrote code for a Rosetta Code
    exercise that creates a simple GUI window with a push button and
    display. The code for that follows. I should stress that while the GUI integration is nice, it is an excellent Forth even if the GUI is ignored.

    -Doug

    Ref: https://rosettacode.org/wiki/Simple_windowed_application

    \ iMops 2.23 code
    Window+ w
    View wview
    Button b
    100 30 100 20 setFrame: b
    " click me" setTitle: b

    TextView text
    200 30 200 10 setFrame: text

    0 value cnt
    :noname 1 ++> cnt
    0 #ofChars: text SetSelect: text
    " Number of clicks: " insert: text
    cnt deciNumstr insert: text ; setAction: b

    : go
    b addview: wview
    text addview: wview
    300 30 430 230 put: frameRect
    frameRect " Test" docWindow
    wview new: w show: w
    " There have been no clicks yet" insert: text ;

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to Doug Hoffman on Wed Apr 13 15:34:08 2022
    Doug Hoffman <dhoffman888@gmail.com> writes:
    It has come to my attention that a new release of iMops is available.
    This updated version runs on all Intel MacOS systems including the
    latest version (Monterey, or v12.3x).

    "As an offspring of PowerMops, iMops is an X86-64 native implementation
    of the Mops language for Mac OS X. It is also a subroutine threaded, >optimizing Forth compiler and linked with Cocoa/Objective-C."

    I see that iMops goes at least as far back as 2014. I missed it up to
    now.

    I also see that there is aMops (and I guess that this is for Aarch64;
    or maybe the "a" stands for Apple Silicon):

    https://sourceforge.net/projects/powermops/files/aMops-CG/

    - anton
    --
    M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
    comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
    New standard: http://www.forth200x.org/forth200x.html
    EuroForth 2021: https://euro.theforth.net/2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Doug Hoffman@21:1/5 to Anton Ertl on Wed Apr 13 13:53:14 2022
    On 4/13/22 11:34 AM, Anton Ertl wrote:
    Doug Hoffman <dhoffman888@gmail.com> writes:
    It has come to my attention that a new release of iMops is available.
    This updated version runs on all Intel MacOS systems including the
    latest version (Monterey, or v12.3x).

    "As an offspring of PowerMops, iMops is an X86-64 native implementation
    of the Mops language for Mac OS X. It is also a subroutine threaded,
    optimizing Forth compiler and linked with Cocoa/Objective-C."

    I see that iMops goes at least as far back as 2014. I missed it up to
    now.

    2014 sounds about right. I recall being disappointed in how long it took
    for iMops to appear. That is when I switched over to MacForthonVFX which
    ran very nicely on Intel Macs thanks to VFX. Problem now is MFonVFX has
    stopped working at some OS after High Sierra. Perhaps Ward McFarland is
    working on an update, I don't know. I really like MFonVFX and keep an
    older Macbook Pro around with the High Sierra OS so I can run it when
    needed. I currently run 64-bit VFX on my newer Mac with Monterey OS
    which all works very nicely.

    I also see that there is aMops (and I guess that this is for Aarch64;
    or maybe the "a" stands for Apple Silicon):

    Yes, something like that I guess. aMops has been a long time pet project
    for Mike Hore. I recall him talking about some of the ideas he had back
    in 2004 or thereabout. Mike has a degree in Computer Science and is
    pretty skilled at these things. Most of what he talked about I did not understand.

    I have no idea when aMops is expected to be released. It will be
    interesting to see what aMops can do. Mike is focused on high
    performance through optimization of the generated code. I don't know how
    much influence Mike has had on iMops other than creating PowerMops for
    the PPC as a general guideline of sorts.

    -Doug

    https://sourceforge.net/projects/powermops/files/aMops-CG/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to Doug Hoffman on Wed Apr 13 21:29:43 2022
    Doug Hoffman <dhoffman888@gmail.com> writes:
    On 4/13/22 11:34 AM, Anton Ertl wrote:
    I see that iMops goes at least as far back as 2014. I missed it up to
    now.

    2014 sounds about right. I recall being disappointed in how long it took
    for iMops to appear.

    Mike Hore had announced that he would not retarget Mops for Intel, so
    I am surprised that it appeared at all.

    When Apple announced the switch to ARM, I was wondering if he would
    resume Mops development. It seems he did.

    I have no idea when aMops is expected to be released.

    <https://www.powermops.org/news/> says:

    * 2022-02-21: aMops Code Generator 3.1
    ...
    * 2020-10-30: aMops Code Generator 1.0

    - anton
    --
    M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
    comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
    New standard: http://www.forth200x.org/forth200x.html
    EuroForth 2021: https://euro.theforth.net/2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Doug Hoffman@21:1/5 to Doug Hoffman on Tue Apr 19 08:03:07 2022
    On 4/13/22 11:15 AM, Doug Hoffman wrote:
    It has come to my attention that a new release of iMops is available.

    - full source code is supplied, iMops is written in iMops and rebuilding
      the iMops system from scratch is quick and easy

    The "Rebuild-iMops.rtf" instructions has a typo in Step 5:

    savedic should be save-dic

    -Doug

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Doug Hoffman@21:1/5 to Doug Hoffman on Sun Apr 24 05:22:04 2022
    On 4/13/22 11:15 AM, Doug Hoffman wrote:
    It has come to my attention that a new release of iMops is available.

    It is a full featured Forth, surely not fully
    ANS compliant ...

    Actually, "Core and Core EXT words in Forth200x draft are all defined.
    But there are some deviations."

    So I stand corrected there on my misleading comment.

    -Doug

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)