Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #54753 > unrolled thread

ANN: iForth64

Started bymhx@iae.nl
First post2017-02-09 10:56 -0800
Last post2017-02-10 11:24 -0800
Articles 13 — 6 participants

Back to article view | Back to comp.lang.forth


Contents

  ANN: iForth64 mhx@iae.nl - 2017-02-09 10:56 -0800
    Re: ANN: iForth64 mentificium@gmail.com - 2017-02-09 13:00 -0800
    Re: ANN: iForth64 Julian Fondren <julian.fondren@gmail.com> - 2017-02-09 21:04 -0800
      Re: ANN: iForth64 mhx@iae.nl - 2017-02-10 11:35 -0800
        Re: ANN: iForth64 rickman <gnuarm@gmail.com> - 2017-02-10 22:19 -0500
          Re: ANN: iForth64 Marc Olschok <nobody@nowhere.invalid> - 2017-02-18 02:19 +0000
        Re: ANN: iForth64 Julian Fondren <julian.fondren@gmail.com> - 2017-02-14 22:44 -0800
          Re: ANN: iForth64 Julian Fondren <julian.fondren@gmail.com> - 2017-02-15 21:55 -0800
            Re: ANN: iForth64 albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-02-16 11:43 +0100
              Re: ANN: iForth64 Julian Fondren <julian.fondren@gmail.com> - 2017-02-16 19:38 -0800
                Re: ANN: iForth64 albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-02-17 11:23 +0100
    Re: ANN: iForth64 albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-02-10 17:39 +0100
      Re: ANN: iForth64 mhx@iae.nl - 2017-02-10 11:24 -0800

#54753 — ANN: iForth64

Frommhx@iae.nl
Date2017-02-09 10:56 -0800
SubjectANN: iForth64
Message-ID<c5746ecb-8622-4685-ad26-afc1aa76b318@googlegroups.com>
When Kagi went out of business some months ago, iForth
lost its distribution service.

After weeks of continuous development, mostly spend
with throwing Web code away, this unbearable situation
is finally rectified.
We are proud to present our absolutely minimal embedded
two line Web Shop at <http://home.iae.nl/users/mhx/i4faq.html>.
We even found room to squeeze in a PayPal button for
online ordering.

Beginning users of Forth are kindly suggested to look
into one the many free Forths first, as iForth64 might 
come as a bit of a shock, and we don't want anybody
to miss that experience.

-marcel

[toc] | [next] | [standalone]


#54756

Frommentificium@gmail.com
Date2017-02-09 13:00 -0800
Message-ID<bca0e05b-67a5-497a-aad2-1a6bb31c6ac7@googlegroups.com>
In reply to#54753
On Thursday, February 9, 2017 at 10:56:32 AM UTC-8, m...@iae.nl wrote:
> When Kagi went out of business some months ago, iForth
> lost its distribution service.
> 
> After weeks of continuous development, mostly spend
> with throwing Web code away, this unbearable situation
> is finally rectified.
> We are proud to present our absolutely minimal embedded
> two line Web Shop at <http://home.iae.nl/users/mhx/i4faq.html>.
> We even found room to squeeze in a PayPal button for
> online ordering.
> 
> Beginning users of Forth are kindly suggested to look
> into one the many free Forths first, as iForth64 might 
> come as a bit of a shock, and we don't want anybody
> to miss that experience.
> 
> -marcel

I bought iForth through Kagi several years ago. 

Congratulations on the new way of obtaining iForth. 

Arthur
-- 
http://www.advogato.org/person/mentifex 
http://independent.academia.edu/mentifex 
http://www.nlg-wiki.org/systems/Mind.Forth 
http://dl.acm.org/citation.cfm?doid=307824.307853 

[toc] | [prev] | [next] | [standalone]


#54765

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-02-09 21:04 -0800
Message-ID<7e64777c-7f13-467c-8f41-f16580b336bc@googlegroups.com>
In reply to#54753
On Thursday, February 9, 2017 at 12:56:32 PM UTC-6, m...@iae.nl wrote:
> 
> Beginning users of Forth are kindly suggested to look
> into one the many free Forths first, as iForth64 might 
> come as a bit of a shock, and we don't want anybody
> to miss that experience.
> 

I found it a shock and wrote a bit to help unix people:

https://groups.google.com/d/msg/comp.lang.forth/ovFEONJqmGc/JAe8WTVPAgAJ

I've also found it productive to email the devs.

iForth costs $100 once. If you spend a single 20-minute meeting with
more than two people discussing whether the GPL is a problem or not
for your project, then you've already spent more money than
that. iForth is completely unencumbered: it's OK if your app has a
Forth prompt; it's OK if when someone downloads your app they're also
downloading iForth, to run it.

For beginning users of Forth, I wonder if there's much variation
beyond how nicely different Forths react to certain errors. There's a
range of (crash .. silently return to prompt .. complain that
something is wrong somewhere .. say hey this pinpoint part of your
program is probably misguided in this exact way) responses.

It's more at the 'cookbook' level -- the level at which you would want
to buy an O'Reilly "Forth Cookbook" and use it as a guide to make a
specific program -- that there's divergence. I want to do X. How do I
do X?  Send email, parse JSON, write to a log file, accept a TCP
connection, process commandline arguments, add a bunch of triangles to
an OpenGL display.

At this level, knowing one Forth makes it *more annoying* to use
another Forth, because your prior cookbook knowledge rarely
translates. On the contrary you are burdened with "how do I do <this
exact thing from the other Forth>" goals that are a few levels removed
from the original cookbook desires.

[toc] | [prev] | [next] | [standalone]


#54782

Frommhx@iae.nl
Date2017-02-10 11:35 -0800
Message-ID<78e73bac-09ea-4d06-bfe0-1ae024d8e5af@googlegroups.com>
In reply to#54765
On Friday, February 10, 2017 at 6:04:12 AM UTC+1, Julian Fondren wrote:
[..]
> It's more at the 'cookbook' level -- the level at which 
> you would want to buy an O'Reilly "Forth Cookbook" and 
> use it as a guide to make a specific program -- that 
> there's divergence.

I would certainly buy a book that explained (such) 
things the Forth way. No larks tongues in aspic, just 
meat and potatoes.

-marcel

[toc] | [prev] | [next] | [standalone]


#54787

Fromrickman <gnuarm@gmail.com>
Date2017-02-10 22:19 -0500
Message-ID<o7lvnq$fla$1@dont-email.me>
In reply to#54782
On 2/10/2017 2:35 PM, mhx@iae.nl wrote:
> On Friday, February 10, 2017 at 6:04:12 AM UTC+1, Julian Fondren wrote:
> [..]
>> It's more at the 'cookbook' level -- the level at which
>> you would want to buy an O'Reilly "Forth Cookbook" and
>> use it as a guide to make a specific program -- that
>> there's divergence.
>
> I would certainly buy a book that explained (such)
> things the Forth way. No larks tongues in aspic, just
> meat and potatoes.

Do people really cut the tongues from larks to make food?  That's just 
cruel!

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#54954

FromMarc Olschok <nobody@nowhere.invalid>
Date2017-02-18 02:19 +0000
Message-ID<o88b06$37e$1@news.albasani.net>
In reply to#54787
rickman <gnuarm@gmail.com> wrote:
> On 2/10/2017 2:35 PM, mhx@iae.nl wrote:
> > On Friday, February 10, 2017 at 6:04:12 AM UTC+1, Julian Fondren wrote:
> > [..]
> >> It's more at the 'cookbook' level -- the level at which
> >> you would want to buy an O'Reilly "Forth Cookbook" and
> >> use it as a guide to make a specific program -- that
> >> there's divergence.
> >
> > I would certainly buy a book that explained (such)
> > things the Forth way. No larks tongues in aspic, just
> > meat and potatoes.
> 
> Do people really cut the tongues from larks to make food?  That's just 
> cruel!
> 

Most likely people used to kill the larks before cutting out their
tongues, because it is too difficult to do this while the animal is
still alive. The same with cows.

On the other hand it is more profitable to keep the larks alive in
large lark farms, where they vomit regularly; the vomit can then
go into the production of Belgian chocolates.

-- 
Marc

[toc] | [prev] | [next] | [standalone]


#54858

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-02-14 22:44 -0800
Message-ID<e39165b2-8019-48ab-bfea-957ae116e598@googlegroups.com>
In reply to#54782
On Friday, February 10, 2017 at 1:35:33 PM UTC-6, m...@iae.nl wrote:
> On Friday, February 10, 2017 at 6:04:12 AM UTC+1, Julian Fondren wrote:
> [..]
> > It's more at the 'cookbook' level -- the level at which 
> > you would want to buy an O'Reilly "Forth Cookbook" and 
> > use it as a guide to make a specific program -- that 
> > there's divergence.
> 
> I would certainly buy a book that explained (such) 
> things the Forth way. No larks tongues in aspic, just 
> meat and potatoes.
> 
> -marcel

After writing a bit, I think the more appropriate O'Reilly series to
go with is the "Hacks" one. "iForth Hacks" would draw out what you can
do with iForth specifically:

  Hack #33. Extend the C server with the primitives you need.
  You can SYSCALL them.

  Hack #97. Speed up unknown-length reads from sockets.
  Our app was speedy with a fixed-length packet protocol, but it
  slowed way down when asked simply to echo any bytes back. We'll need
  to take a closer look at these networking words.

  Hack #12. Automatically show the contents of the stack.
  Without it getting in the way.

And so on. A separate "Forth Cookbook" would focus more on doing
things with libraries, exploring OO systems, more Rosetta Code tasks,
etc.

[toc] | [prev] | [next] | [standalone]


#54876

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-02-15 21:55 -0800
Message-ID<018dc9df-1e01-436f-8578-437992a95e86@googlegroups.com>
In reply to#54858
On Wednesday, February 15, 2017 at 12:44:24 AM UTC-6, Julian Fondren wrote:
> 
> After writing a bit, I think the more appropriate O'Reilly series to
> go with is the "Hacks" one. "iForth Hacks" would draw out what you can
> do with iForth specifically:
> 
>   Hack #33. Extend the C server with the primitives you need.
>   You can SYSCALL them.
> 
>   Hack #97. Speed up unknown-length reads from sockets.
>   Our app was speedy with a fixed-length packet protocol, but it
>   slowed way down when asked simply to echo any bytes back. We'll need
>   to take a closer look at these networking words.
> 
>   Hack #12. Automatically show the contents of the stack.
>   Without it getting in the way.
> 
> And so on.

pour l'example:

Hack #5: Cut the fat from your installation

The latest (2014) release of iForth, when uncompressed, takes up 757MB
of diskspace.  This is nothing for your laptop probably, but it's a
modest amount of diskspace when it comes to tiny VPS servers or
regular backups over metered bandwidth.  If you're powering a website
with iForth for example, you might get offered some very nice backup
options that at their cheapest only back up a few gigabytes.  It'd be
one thing to spend so much space on iForth if you need all of its
files -- but you probably don't.

*** Largest directories

- 278M    examples
  - 48M     examples/orkest
  - 36M     examples/UM
  - 28M     examples/benchmar
  - 20M     examples/StartingForth
  - 14M     examples/statevars
  - 11M     examples/SDL
  - 11M     examples/brew
- 192M    iflinux
  - 65M     iflinux/linux-bin64
  - 65M     iflinux/darwin-bin64
  - 61M     iflinux/iserver
- 118M    ifwinnt64
  - 115M    ifwinnt64/bin
- 80M     generaldocs
- 45M     ifwinnt
  - 41M     ifwinnt/bin
- 28M     include

*** Cutting the fat, from 757M to 122M (or 58M!)

The 'examples' directory of course is for educational material - good
to have around, but not necessary.  Note though that some of it can be
reused - used files, you may want to copy to includes/ instead.
Cutting it brings the installation from 757M down to 480M.

Out of the iflinux/linux-bin64, iflinux/darwin-bin64, ifwinnt64, and
ifwinnt directories you of course only need the one you're actually
using.  Cutting all of these but linux-bin64 brings the installation
down to 253M.

generaldocs purely contains documentation -- it's quite the library,
with optimization, architecture, Forth, and other references and
documents.  You definitely don't need it on a server though, and
removing it shrinks the installation to 174M.

This leaves your largest directory by far as iflinux at 128M.  Most of
this diskspace comes from two locations:

- 65M   iflinux/linux-bin64/iforth.img
- 52M   iflinux/iserver/MPC/

The first is the definitely required system image for iForth, but it
compresses very nicely to 192K.  You can temporarily compress it for
file transfers, or just rely on auto-compression by rsync or such, but
you can also permanently compress it, and still use it as an image,
with [Hack #XX: Compress your iforth.img].

The second is unnecessary if you don't need to recompile or use these
libraries with this installation.  Although this is a subdirectory of
'iserver', where the C server is built, these libraries are intended
to be loaded at runtime with libdl, and the C server doesn't need to
know about them or be linked with them, even dynamically.  You can
find code using these libraries under examples/gmpfr

Removing iflinux/iserver/MPC brings the installation down to 122M.
When iforth.img is compressed, iForth's installation requires a mere
58 megabytes, less than 8% of the original size.

*** Largest directories (take 2)

The larger survivors are still pretty tiny:

- 28M     include
  - 7.5M    include/PLRM.pdf
  - 5.6M    include/gui
  - 3.8M    include/ffl
  - 2.4M    include/fjack
  - 1.4M    include/radio
  - 904K    include/sdllib.bmp
  - 452K    include/micross.ttf
  - 420K    include/latexstr.bmp
  - 352K    include/fonts
- 12M     iflinux
- 9.0M    dataf
- 6.7M    iforth
- 2.3M    iForthGlossary_A4_vsn41.pdf
- 360K    iForthGlossary_A4_vsn41.docx
- 332K    install-Linux
- 192K    BUGS
- 60K     c(-rationale.pdf

Although 'include' is relatively vital, you probably don't need all of
those larger files.  PLRM.pdf is a PostScript reference.  ffl is the
Forth Foundation Library.

dataf contains iForth documentation and resource files, and probably
shouldn't be deleted if you retain the 'include' directory, which
references them.

The 'iforth' directory is actually iForth for DOS, analogous to
iflinux and ifwinnt64 and such.  With this directory removed, our
shrunken iForth installation is only 122M / 52M.

The absolute minimum size required for iForth is less than a megabyte:
the C server hacked to load a compressed iforth.img. If you get to the
point of wanting to prune the installation below 122/52M, it's
probably best to target this minimal install, perhaps using an image
that includes your application.

[toc] | [prev] | [next] | [standalone]


#54879

Fromalbert@cherry.spenarnc.xs4all.nl (Albert van der Horst)
Date2017-02-16 11:43 +0100
Message-ID<o83vo2$vp$1@cherry.spenarnc.xs4all.nl>
In reply to#54876
In article <018dc9df-1e01-436f-8578-437992a95e86@googlegroups.com>,
Julian Fondren  <julian.fondren@gmail.com> wrote:
>On Wednesday, February 15, 2017 at 12:44:24 AM UTC-6, Julian Fondren wrote:
>>
>> After writing a bit, I think the more appropriate O'Reilly series to
>> go with is the "Hacks" one. "iForth Hacks" would draw out what you can
>> do with iForth specifically:
>>
>>   Hack #33. Extend the C server with the primitives you need.
>>   You can SYSCALL them.
>>
>>   Hack #97. Speed up unknown-length reads from sockets.
>>   Our app was speedy with a fixed-length packet protocol, but it
>>   slowed way down when asked simply to echo any bytes back. We'll need
>>   to take a closer look at these networking words.
>>
>>   Hack #12. Automatically show the contents of the stack.
>>   Without it getting in the way.
>>
>> And so on.
>
>pour l'example:
>
>Hack #5: Cut the fat from your installation
>
>The latest (2014) release of iForth, when uncompressed, takes up 757MB
>of diskspace.  This is nothing for your laptop probably, but it's a
<SNIP>
>The absolute minimum size required for iForth is less than a megabyte:
>the C server hacked to load a compressed iforth.img. If you get to the
>point of wanting to prune the installation below 122/52M, it's
>probably best to target this minimal install, perhaps using an image
>that includes your application.

Or you can start at the other side, add only what you need,
Read doc's from a server.
lina64 : 55 Kbyte
forth.lab : 313 kbyte
(includes utilities, compilation, scripting, assembler, and now
floating point.)
No configuration files, no environment variables, no directory layout
restrictions.

Groetjes Albert
-- 
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

[toc] | [prev] | [next] | [standalone]


#54907

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-02-16 19:38 -0800
Message-ID<ae62e9bc-3bdb-4ff0-ac34-5ec9c1f4611b@googlegroups.com>
In reply to#54879
On Thursday, February 16, 2017 at 4:43:14 AM UTC-6, Albert van der Horst wrote:
> 
> Or you can start at the other side, add only what you need,

  Hack #1: Some kind of problem with your Forth system?

  Try not using it.

  (the end)

I don't think I'd sell many books.


> Read doc's from a server.
> lina64 : 55 Kbyte
> forth.lab : 313 kbyte
> (includes utilities, compilation, scripting, assembler, and now
> floating point.)

> No configuration files, no environment variables, no directory layout
> restrictions.

lina64 needs to know where forth.lab is. This is usually hard-coded,
less of a hassle with a self-replicating system, but still something
that you have to think about and manage. I have, yes, run commands,
gotten errors, and then said "woops--I need to grab a forth.lab too."

If you pretend that a minor hassle is no hassle then you'll probably
end up with an undocumented hassle that is major to the uninitiated.

And lina of course also has matters that could be written usefully
about or else 'solved' by one's giving up and using another Forth.

  - You don't like typing 1 LOAD "CASE-INSENSITIVE" WANTED
    CASE-INSENSITIVE every single time you start lina?

  - You have a MOVE heavy loop that you notice is 60+ times slower
    under lina than under gforth?

  - You have an existing OO-heavy Forth application?

  - lina absolutely insists on producing *some* output instead of *no*
    output when a word is redefined?

  - Are you concerned that the code you're writing with lina might not
    run on another system without unusual efforts?

This isn't advanced stuff. The iForth 'hack' above didn't even involve
programming. O'Reilly-type books are good for turning people from
know-nothings into beginners and then from beginners to intermediate
users.

[toc] | [prev] | [next] | [standalone]


#54926

Fromalbert@cherry.spenarnc.xs4all.nl (Albert van der Horst)
Date2017-02-17 11:23 +0100
Message-ID<o86ivv$9gt$1@cherry.spenarnc.xs4all.nl>
In reply to#54907
In article <ae62e9bc-3bdb-4ff0-ac34-5ec9c1f4611b@googlegroups.com>,
Julian Fondren  <julian.fondren@gmail.com> wrote:
>On Thursday, February 16, 2017 at 4:43:14 AM UTC-6, Albert van der Horst wrote:
>>
>> Or you can start at the other side, add only what you need,
>
>  Hack #1: Some kind of problem with your Forth system?
>
>  Try not using it.
>
>  (the end)
>
>I don't think I'd sell many books.
>
>
>> Read doc's from a server.
>> lina64 : 55 Kbyte
>> forth.lab : 313 kbyte
>> (includes utilities, compilation, scripting, assembler, and now
>> floating point.)
>
>> No configuration files, no environment variables, no directory layout
>> restrictions.
>
>lina64 needs to know where forth.lab is. This is usually hard-coded,
>less of a hassle with a self-replicating system, but still something
>that you have to think about and manage. I have, yes, run commands,
>gotten errors, and then said "woops--I need to grab a forth.lab too."

Normally a program need to be installed. If you install lina this
problem doesn't exist. iforth doesn't even run if it is not installed.
If you want to use a particular forth.lab you can use
     lina -l <absolute-path>   Other options
Few Forth's have such an easy way to use several installations
on the same system.

>
>If you pretend that a minor hassle is no hassle then you'll probably
>end up with an undocumented hassle that is major to the uninitiated.
>
>And lina of course also has matters that could be written usefully
>about or else 'solved' by one's giving up and using another Forth.
>
>  - You don't like typing 1 LOAD "CASE-INSENSITIVE" WANTED
>    CASE-INSENSITIVE every single time you start lina?

That is on line 12 or so of the tutorial,
   for development always start with
      lina -e
>
>  - You have a MOVE heavy loop that you notice is 60+ times slower
>    under lina than under gforth?
>
>  - You have an existing OO-heavy Forth application?
>
>  - lina absolutely insists on producing *some* output instead of *no*
>    output when a word is redefined?

That is a feature. Note that this output is on the error channel.
Redefiniting is a single most important source of problems.

>
>  - Are you concerned that the code you're writing with lina might not
>    run on another system without unusual efforts?

Yes. However, mostly it is the code on the fat system that has trouble
running on lina.

>
>This isn't advanced stuff. The iForth 'hack' above didn't even involve
>programming. O'Reilly-type books are good for turning people from
>know-nothings into beginners and then from beginners to intermediate
>users.

I admit that iForth may be better for some things.

Groetjes Albert
-- 
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

[toc] | [prev] | [next] | [standalone]


#54770

Fromalbert@cherry.spenarnc.xs4all.nl (Albert van der Horst)
Date2017-02-10 17:39 +0100
Message-ID<o7kqco$erq$1@cherry.spenarnc.xs4all.nl>
In reply to#54753
In article <c5746ecb-8622-4685-ad26-afc1aa76b318@googlegroups.com>,
 <mhx@iae.nl> wrote:
>When Kagi went out of business some months ago, iForth
>lost its distribution service.
>
>After weeks of continuous development, mostly spend
>with throwing Web code away, this unbearable situation
>is finally rectified.
>We are proud to present our absolutely minimal embedded
>two line Web Shop at <http://home.iae.nl/users/mhx/i4faq.html>.
>We even found room to squeeze in a PayPal button for
>online ordering.

Under the header
    <red>NEW</RED>How to order iforth
I found a line:
    Please order at Kagi <A>by clicking here</A>
which led to a 404 error.

Puzzled.

<SNIP>
>
>-marcel
>
-- 
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

[toc] | [prev] | [next] | [standalone]


#54780

Frommhx@iae.nl
Date2017-02-10 11:24 -0800
Message-ID<c8fce436-45df-4acd-b335-39815b88a589@googlegroups.com>
In reply to#54770
On Friday, February 10, 2017 at 5:40:02 PM UTC+1, Albert van der Horst wrote:
> In article <c5746ecb-8622-4685-ad26-afc1aa76b318@googlegroups.com>,
>  <mhx@iae.nl> wrote:
> >When Kagi went out of business some months ago, iForth
> >lost its distribution service.
> >
> >After weeks of continuous development, mostly spend
> >with throwing Web code away, this unbearable situation
> >is finally rectified.
> >We are proud to present our absolutely minimal embedded
> >two line Web Shop at <http://home.iae.nl/users/mhx/i4faq.html>.
> >We even found room to squeeze in a PayPal button for
> >online ordering.
> 
> Under the header
>     <red>NEW</RED>How to order iforth
> I found a line:
>     Please order at Kagi <A>by clicking here</A>
> which led to a 404 error.
> 
> Puzzled.

The page is supposed to be anti-chronologically sorted.
It's now less logical. Please try again.

-marcel

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.forth


csiph-web