Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

TAWK 5.0

205 views
Skip to first unread message

tal...@pi.be

unread,
Dec 24, 2005, 10:24:35 AM12/24/05
to
Dear,

I have been using TAWK frequently, it is an absolutely great compiler
which allowed me to create powerful and efficient programs within a
limited amount of time. I am working with version 4.1a (in DOS), but I
never had the opportunity to work with version 5, as Thompson stopped
selling it. I created a program which in itself works fine in 4.1a, but
it needs a lot of memory and processing power. I applied compressing
techniques to minimize the amount of memory needed. I wondered whether
there is a big difference in memory management and speed between
version 4 and 5. If so, I would like to know how I could get my hands
on version 5. As an alternative, I could port the program to Java,
which may make the program faster than TAWK, but that would need a lot
of time and I would like to continue easily updating my program, which
is one of those great features of TAWK.
Any suggestions ?

Kind regards,
Tom Vanallemeersch

Anton Treuenfels

unread,
Dec 27, 2005, 9:48:26 PM12/27/05
to

<tal...@pi.be> wrote in message
news:1135437875.4...@z14g2000cwz.googlegroups.com...

> there is a big difference in memory management and speed between
> version 4 and 5

Yes. The DOS version of TAWK 4 was built with a 16-bit DOS extender, 5 with
a 32-bit DOS extender.

A program like this (which does nothing useful but test for limits):

BEGIN {

local i
local test

for ( i = 1; i < 1000000; i++ ) {
test[ "NDX1" ] = ".T."
test[ "NDX2" ] = ".F."
if ( !(i/1000) )
print i
}
}

fails with an internal TAWK error in V4 somewhere between i=32000 and
i=33000 (perhaps 32768? - I didn't check in more detail). I don't know how
high V5 is willing to go with this test program, as I got bored waiting for
a failure.

Which doesn't mean the limit of a V4 array is 32000+. Using a different
allocation scheme a test program similar to the one above ran until a
"memory full" error. Not sure why it said that, as I expected paging to
occur (and maybe it did, to the small RAM drive the test was running out
of).

I can't tell you how to acquire a copy of V5, though.

Anton Treuenfels


allanricha

unread,
Dec 29, 2005, 3:07:05 PM12/29/05
to
Does anyone have a copy of TAWK 5.0?

Can you buy a copy somewhere?

Allan
"Anton Treuenfels" <atreu...@earthlink.net> wrote in message
news:_1nsf.1230$M%4....@newsread3.news.atl.earthlink.net...

allanricha

unread,
Dec 29, 2005, 3:07:05 PM12/29/05
to
Does anyone have a copy of TAWK 5.0?

Can you buy a copy somewhere?

Allan
"Anton Treuenfels" <atreu...@earthlink.net> wrote in message
news:_1nsf.1230$M%4....@newsread3.news.atl.earthlink.net...
>

allanricha

unread,
Dec 29, 2005, 3:07:05 PM12/29/05
to
Does anyone have a copy of TAWK 5.0?

Can you buy a copy somewhere?

Allan
"Anton Treuenfels" <atreu...@earthlink.net> wrote in message
news:_1nsf.1230$M%4....@newsread3.news.atl.earthlink.net...
>

trexx

unread,
Jan 9, 2006, 11:04:43 AM1/9/06
to

"Anton Treuenfels" <atreu...@earthlink.net> wrote in message
news:_1nsf.1230$M%4....@newsread3.news.atl.earthlink.net...
>
Tom and Anton
Tawk V5c for Windows uses the disk for really large arrays, hence the limit
appears to be more of patience then hard wired size limits. Big arrays
causes drive thrashing and things really slow down. I modified Anton's
program to show how writing to an array slows down as over 5 million
elements
are stored...
I would love to have other Tawk users to chat but sharing or selling the
software appears to be a problem. I just visited the Thompson Automation
Web page which mentions that Tawk is no longer sold but it appears to me
that they still are protecting their commercial rights for this software.
It would be nice if Thompson Automation could make a clear descision on this
issue ...

Regards
Rex

BEGIN {

local i
local test
starting_time = time()
for ( i = 1; i < 100000000; i++ ) {
test[ i ] = "time in seconds " time()-starting_time
if ( !(i%100000) ) {print "test["i"]="test[i] }
}
}
c:\u\awk>awkw -f test.awk
test[100000]=time in seconds 1
test[200000]=time in seconds 2
test[300000]=time in seconds 3
test[400000]=time in seconds 4
test[500000]=time in seconds 5
test[600000]=time in seconds 6
...
test[5100000]=time in seconds 421
test[5200000]=time in seconds 436
test[5300000]=time in seconds 449
test[5400000]=time in seconds 463
test[5500000]=time in seconds 479
test[5600000]=time in seconds 488
test[5700000]=time in seconds 541
test[5800000]=time in seconds 597
awk: program aborted by SIGINT signal
c:\u\awk>


Kenny McCormack

unread,
Jan 9, 2006, 11:11:31 AM1/9/06
to
In article <9pGdnZRlJL6...@comcast.com>, trexx <f...@foo.com> wrote:
...
>I would love to have other Tawk users to chat but sharing or selling the
>software appears to be a problem. I just visited the Thompson Automation
>Web page which mentions that Tawk is no longer sold but it appears to me
>that they still are protecting their commercial rights for this software.
>It would be nice if Thompson Automation could make a clear descision on this
>issue ...

As most ppl on this ng know, I use TAWK daily (under both Windows and
Unix) and I am always glad to discuss it here.

You are right that the status of the software is in limbo at the
moment. Selling an existing copy is probably legal and you might even
find a copy at a flea market or similar, but, of course, making copies
is not. The first step to rectifying this situation would be to find
Mr. Thompson and get him to discuss it. He has posted to this ng in the
(distant) past, but as far as anyone can tell at the moment, he is lost
somewhere in the wilds of Thailand.

trexx

unread,
Jan 9, 2006, 3:18:44 PM1/9/06
to

"Kenny McCormack" <gaz...@yin.interaccess.com> wrote in message
news:dpu1ub$prm$1...@yin.interaccess.com...
Yep...I saw some really neat travel pics of Thailand on his web page awhile
back. It appears that he's moved on to live in the real world. A lesson
for us all!
Regards
Rex


Anton Treuenfels

unread,
Jan 9, 2006, 9:35:41 PM1/9/06
to

"trexx" <f...@foo.com> wrote in message
news:9pGdnZRlJL6...@comcast.com...

>
> "Anton Treuenfels" <atreu...@earthlink.net> wrote in message
> > BEGIN {
> >
> > local i
> > local test
> >
> > for ( i = 1; i < 1000000; i++ ) {
> > test[ "NDX1" ] = ".T."
> > test[ "NDX2" ] = ".F."
> > if ( !(i/1000) )
> > print i
> > }
> > }
> >

hmm, ya know, looking at this again makes me think I should have put it like
this:

BEGIN {

local i
local test

for ( i = 1; i < 1000000; i++ ) {

test[ i ][ "NDX1" ] = ".T."
test[ i ][ "NDX2" ] = ".F."


if ( !(i/1000) )
print i
}
}

Forces creation of a somewhat larger array, methinks!

The original point still holds. What I was testing for specifically here was
making all the array elements point to the same constant literal strings,
and this fails relatively quickly in TAWK V4.

But because elements of TAWK arrays can be other arrays, it is possible to
allocate like this:

local function makeone() {

local temp

temp[ "NDX1" ] = ".T."
temp[ "NDX2" ] = ".F."

return( temp )
}

BEGIN {

local i
local test

for ( i = 1; i <= 10^7; i++ ) {
test[ i ] = makeone()
if ( !(i/10000) )
print i
}
}

This runs until "memory full" in TAWK V4. And I suspect either version runs
as long as anyone cares to watch in V5.

Yes :)


> I would love to have other Tawk users to chat

Fine with me. It'd be nice to ask questions about things that aren't in the
manuals.

F'rinstance:

local function ret_array(this) {

this[ "ANY_OLD_INDEX" ] = ".T."
}

local function ret_string(this) {

this = ".T."
}

BEGIN {

local temp1, temp2

ret_array( temp1 )
ret_str( temp2 )
}

Now, "ret_array()" works but "ret_str()" doesn't. Since there is no
initialization of "temp1" or "temp2", I assume they have type
"unintialized". So why am I allowed to implicitly change the type of "temp1"
to "array" within a called function but not that of "temp2" to "string"?

In practice I use functions similar to "ret_array()" quite a bit, returning
actual results in the passed variable and a success or failure boolean value
as the function return value, which I can directly test in a conditional
expression.
Sometimes I'd like to do something similar with a scalar variable, but
because I can't I have to use special values assigned to the returned scalar
to indicate failure (or use a global error variable, I suppose).

Just asking :)

Anton Treuenfels

Kenny McCormack

unread,
Jan 9, 2006, 10:23:10 PM1/9/06
to
In article <14Fwf.7416$M%4.7...@newsread3.news.atl.earthlink.net>,
Anton Treuenfels <atreu...@earthlink.net> wrote:
...

>Now, "ret_array()" works but "ret_str()" doesn't. Since there is no
>initialization of "temp1" or "temp2", I assume they have type
>"unintialized". So why am I allowed to implicitly change the type of "temp1"
>to "array" within a called function but not that of "temp2" to "string"?
>
>In practice I use functions similar to "ret_array()" quite a bit, returning
>actual results in the passed variable and a success or failure boolean value
>as the function return value, which I can directly test in a conditional
>expression.
>Sometimes I'd like to do something similar with a scalar variable, but
>because I can't I have to use special values assigned to the returned scalar
>to indicate failure (or use a global error variable, I suppose).

Are you familiar with "ref" parameters?

tal...@pi.be

unread,
Jan 13, 2006, 5:20:43 PM1/13/06
to
Dear,

I sent an email to Pat Thompson a while ago through his website
address, and he actually answered me a week ago. He even provided me
with a copy of version 5. He seems to be back from Thailand (by the
way, if you have the opportunity to visit this country, go ahead, it's
a fascinating mix of great culture, food and nature !) I am very happy
to use version 5 now instead of 4, as it doubles the speed at which my
program runs !

Regards,
Tom


Kenny McCormack schreef:

Kenny McCormack

unread,
Jan 13, 2006, 9:40:40 PM1/13/06
to
In article <1137190843....@g49g2000cwa.googlegroups.com>,

<tal...@pi.be> wrote:
>Dear,
>
>I sent an email to Pat Thompson a while ago through his website
>address, and he actually answered me a week ago. He even provided me
>with a copy of version 5. He seems to be back from Thailand (by the
>way, if you have the opportunity to visit this country, go ahead, it's
>a fascinating mix of great culture, food and nature !) I am very happy
>to use version 5 now instead of 4, as it doubles the speed at which my
>program runs !
>
>Regards,
>Tom

Great news!!! We may get a Linux verison yet.

PaulCAnagnos

unread,
Feb 15, 2016, 5:58:31 AM2/15/16
to
I received the TAWK code base from Pat Thompson roughly four years ago. A friend an I have been enhancing it and are now up to version 6.6. If you were a Thompson customer before Pat closed up shop, I can send you a copy of v6.6. It runs only on Windows.

~~ Paul



Kenny McCormack

unread,
Feb 15, 2016, 7:21:52 AM2/15/16
to
In article <Rc6dnWJqqq3IMlzL...@giganews.com>,
How many times are you going to post this?

P.S. Why only Windows? And do you have any proof that this is genuine?

--
Shikata ga nai...

Kaz Kylheku

unread,
Feb 15, 2016, 9:34:36 AM2/15/16
to
E-mail is somewhat outdated for software distribution.

Please put it on your Gopher server, so people can find it via WAIS,
and just help themselves.

Kenny McCormack

unread,
Feb 15, 2016, 9:40:04 AM2/15/16
to
In article <201602150...@kylheku.com>,
Heh heh - nice references.

But seriously, the question is: How is he doing the verification?
I'm guessing that that is somehow connected in with his "email me and I'll
send it to you" mechanism.

--
Religion is what keeps the poor from murdering the rich.

- Napoleon Bonaparte -

Kenneth Martin

unread,
Oct 12, 2021, 6:13:04 AM10/12/21
to
I was a user of TAWK and would like to get the current version. Thanks.

Any hope in getting Thompson Toolkit source?

Jeff Paranich

unread,
Apr 28, 2022, 1:44:38 PM4/28/22
to
On Monday, 15 February 2016 at 03:58:31 UTC-7, PaulCAnagnos wrote:
> I received the TAWK code base from Pat Thompson roughly four years ago. A friend an I have been enhancing it and are now up to version 6.6. If you were a Thompson customer before Pat closed up shop, I can send you a copy of v6.6. It runs only on Windows.
>
> ~~ Paul

I know TAWK was a commercial product, many years ago. What's it going to take to get the source code public? It sounds like TAWK is at extreme risk of being lost forever as your post is now 6 years old without even a new closed-source release you've been working on. For all I know you (Paul), and Pat, are dead and the damage is done - TAWK is gone, never to be re-built or cross-compiled for Linux. Maybe at least consider selling the source for release, so that a group of individuals can group together and make this happen? It's not like keeping TAWK closed source is going to get an iota of financial gain in this day and age.

Kaz Kylheku

unread,
Apr 28, 2022, 4:14:15 PM4/28/22
to
On 2022-04-28, Jeff Paranich <jpar...@gmail.com> wrote:
^^^^^^^
> On Monday, 15 February 2016 at 03:58:31 UTC-7, PaulCAnagnos wrote:
^^^^^^^^^^^^^

Please avoid necroposting, without an amunt of justification
proportional to the "years old" parameter.


--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal

Kenny McCormack

unread,
Apr 28, 2022, 4:16:51 PM4/28/22
to
In article <2076db66-4ab7-425f...@googlegroups.com>,
+1 (!)

In particular, a Linux version should be the real target.
Note that there always was a Solaris version (in addition to all the
various DOS/Windows versions), so it is not like creating a Unix version
would be a "de novo" effort. In fact, although I don't know this for sure,
my reading of the tea leaves is that it was originally developed on Solaris
and then ported/deployed to DOS (etc).

There should be some way to make this happen.

It would be a good thing to have 2 (rather than just 1) good AWK
implementation available on Linux.

--
Donald Drumpf claims to be "the least racist person you'll ever meet".

This would be true if the only other person you've ever met was David Duke.

Kenny McCormack

unread,
Apr 28, 2022, 4:19:06 PM4/28/22
to
In article <202204281...@kylheku.com>,
Kaz Kylheku <480-99...@kylheku.com> wrote:
>On 2022-04-28, Jeff Paranich <jpar...@gmail.com> wrote:
> ^^^^^^^
>> On Monday, 15 February 2016 at 03:58:31 UTC-7, PaulCAnagnos wrote:
> ^^^^^^^^^^^^^
>
>Please avoid necroposting, without an amunt of justification
>proportional to the "years old" parameter.

Don't be silly. It does not become you.

--
In politics and in life, ignorance is not a virtue.
-- Barack Obama --

Ed Morton

unread,
Apr 28, 2022, 4:21:34 PM4/28/22
to
Not trying to be facetious, I just seriously want to know -

1) Why try to keep using tawk instead of just using gawk or switching to
some other tool that's currently still being actively developed,
supported, and documented?

2) If tawk has some features that gawk doesn't then why not put the
effort into contributing support of such features to gawk instead of
resurrecting tawk?

3) Given we already have BWK awk, "one true awk", oawk, nawk, BSD awk,
XPG awk, busybox awk, gawk, and maybe others I'm forgetting), is
whatever tawk brings to the table really worth it to have yet another
awk variant around to muddy the waters further on what an "awk" script is?

Regards,

Ed.

Kaz Kylheku

unread,
Apr 28, 2022, 4:52:45 PM4/28/22
to
On 2022-04-28, Kenny McCormack <gaz...@shell.xmission.com> wrote:
> In article <202204281...@kylheku.com>,
> Kaz Kylheku <480-99...@kylheku.com> wrote:
>>On 2022-04-28, Jeff Paranich <jpar...@gmail.com> wrote:
>> ^^^^^^^
>>> On Monday, 15 February 2016 at 03:58:31 UTC-7, PaulCAnagnos wrote:
>> ^^^^^^^^^^^^^
>>
>>Please avoid necroposting, without an amunt of justification
>>proportional to the "years old" parameter.
>
> Don't be silly. It does not become you.

Why would silly become me, when it can just wait for me to become it?

Jeff Paranich

unread,
Apr 28, 2022, 5:56:27 PM4/28/22
to
> 1) Why try to keep using tawk instead of just using gawk or switching to
> some other tool that's currently still being actively developed,
> supported, and documented?
>
> 2) If tawk has some features that gawk doesn't then why not put the
> effort into contributing support of such features to gawk instead of
> resurrecting tawk?
>
> 3) Given we already have BWK awk, "one true awk", oawk, nawk, BSD awk,
> XPG awk, busybox awk, gawk, and maybe others I'm forgetting), is
> whatever tawk brings to the table really worth it to have yet another
> awk variant around to muddy the waters further on what an "awk" script is?
>
> Regards,
>
> Ed.

Not unfounded comments - but also perhaps for all the same reasons these arguments can justify why TAWK should be open source now, in the name of preservation if nothing else. I agree, nobody is going to take the source and run with it as a million dollar business - it would probably not have a single pull request - but it's terrible to lose such a significant piece of work. There are so many competitors (as you point out), there's probably not a huge motivation to extend TAWK; but certainly I think there would be users who'd love the re-compile it with the latest GCC and compiler optimizations, taking advantage of much newer architecture, and use it for their personal use. Alas; few of us have time to contribute to filling any gaps in Gawk, that TAWK had.

Regarding "raising from the dead" old threads. It's zero-cost to you; newsgroups are hanging by a thread - be gracious, there are still people posting at all.

Kaz Kylheku

unread,
Apr 28, 2022, 7:25:47 PM4/28/22
to
On 2022-04-28, Jeff Paranich <jpar...@gmail.com> wrote:
> Regarding "raising from the dead" old threads. It's zero-cost to you;
> newsgroups are hanging by a thread - be gracious, there are still
> people posting at all.

Someone replying to 8 year old posts probably deserves at least a
heads-up, though. Next time I will just do that without the
don't-do-that.

Ed Morton

unread,
Apr 28, 2022, 7:36:24 PM4/28/22
to
On 4/28/2022 4:56 PM, Jeff Paranich wrote:
>> 1) Why try to keep using tawk instead of just using gawk or switching to
>> some other tool that's currently still being actively developed,
>> supported, and documented?
>>
>> 2) If tawk has some features that gawk doesn't then why not put the
>> effort into contributing support of such features to gawk instead of
>> resurrecting tawk?
>>
>> 3) Given we already have BWK awk, "one true awk", oawk, nawk, BSD awk,
>> XPG awk, busybox awk, gawk, and maybe others I'm forgetting), is
>> whatever tawk brings to the table really worth it to have yet another
>> awk variant around to muddy the waters further on what an "awk" script is?
>>
>> Regards,
>>
>> Ed.
>
> Not unfounded comments - but also perhaps for all the same reasons these arguments can justify why TAWK should be open source now, in the name of preservation if nothing else. I agree, nobody is going to take the source and run with it as a million dollar business - it would probably not have a single pull request - but it's terrible to lose such a significant piece of work. There are so many competitors (as you point out), there's probably not a huge motivation to extend TAWK; but certainly I think there would be users who'd love the re-compile it with the latest GCC and compiler optimizations, taking advantage of much newer architecture, and use it for their personal use. Alas; few of us have time to contribute to filling any gaps in Gawk, that TAWK had.

I was really hoping you'd tell us what it is about tawk that you can't
do in gawk (or some other awk or using some other tool) that makes it
worth resurrecting tawk and adding yet another awk variant to the
already too-large pool of available awk variants. You said "I think
there would be users who'd love the re-compile it" - and I'm trying to
understand why when other supported tools already exist to do whatever
it is those people want to do. Resurrecting tawk because at one time it
was significant in some way doesn't seem like a good reason but that may
just be my opinion.

>
> Regarding "raising from the dead" old threads. It's zero-cost to you; newsgroups are hanging by a thread - be gracious, there are still people posting at all.

I didn't say anything about that, that was another poster.

Ed.

Mack The Knife

unread,
Apr 29, 2022, 4:23:58 AM4/29/22
to
In article <21502b9c-8539-4278...@googlegroups.com>,
Jeff Paranich <jpar...@gmail.com> wrote:
>Not unfounded comments - but also perhaps for all the same reasons these
>arguments can justify why TAWK should be open source now, in the name of
>preservation if nothing else.

This makes the most sense. It was an interesting and powerful program
at the time, and interesting code is usually worth reading to learn from.
(Even the gawk maintainer has revived old Unix code to make it more
easily available for reading and for playing with [see his github].)

It's unlikely that anyone would invest the effort to make tawk on
Linux production worthy, but stranger things have happened. Although,
without the source, we'll never know.

J Naman

unread,
Apr 29, 2022, 8:23:22 PM4/29/22
to
re: "tell us what it is about tawk that you can't do in gawk"
Not to beat a dead fish, but I always used TAWK to "compile" awk programs so end-users would not hack them. Obviously the "compiler" was a wrapper for the TAWK interpreter. I am NOT asking for the GNU volunteers to undertake that task. I just miss it ... There are a hundred things I can now do in gawk that I couldn't in tawk, circa 1999+.

Mack The Knife

unread,
May 1, 2022, 4:38:32 AM5/1/22
to
In article <4fa43971-8699-4df2...@googlegroups.com>,
J Naman <jna...@gmail.com> wrote:
>re: "tell us what it is about tawk that you can't do in gawk"
>Not to beat a dead fish, but I always used TAWK to "compile" awk programs
>so end-users would not hack them.

This likely would never happen in gawk anyway, as it goes against the
spirit of Free Software.

>I am NOT asking for the GNU volunteers to undertake that task.

So then all is good. :-)

There are other ways to accomplilsh that goal, anyway, they're just
not so straightforward.
0 new messages