Discussion:
tclexecomp won't print anything
(too old to reply)
Luc
2024-12-17 04:43:22 UTC
Permalink
I wrapped an entire Tk application with tclexecomp.

It works. Everything works.

Then I have some idea and decide to test something. The story gets
long, but we can shorten it.

Instead of a full-fledged application, only this script is packed:

$ cat p1.tcl
puts "hello"
exit

Yes, that's it.

So I pack it and run it and nothing prints. Why?

(In the slightly longer version of this story, I am trying to puts
the output of [pwd], [glob *], [parray env] and source another .tcl
file.)
--
Luc
Rich
2024-12-17 05:08:06 UTC
Permalink
Post by Luc
I wrapped an entire Tk application with tclexecomp.
It works. Everything works.
Then I have some idea and decide to test something. The story gets
long, but we can shorten it.
$ cat p1.tcl
puts "hello"
exit
Yes, that's it.
So I pack it and run it and nothing prints. Why?
(In the slightly longer version of this story, I am trying to puts
the output of [pwd], [glob *], [parray env] and source another .tcl
file.)
You left out a bit of critical info: Linux or Windows as OS?

Under Linux, provided you are running that from within a terminal
session (not 'launching' it by clicking an icon as in the usual
windows way) you should see 'hello' output on the terminal.

In windows, it depends upon what executable you use to launch it, not
every windows executable gets a terminal (and if it does not get a
terminal it has no stdout, so "puts" just disappear).
Luc
2024-12-17 17:24:09 UTC
Permalink
Post by Rich
Post by Luc
I wrapped an entire Tk application with tclexecomp.
It works. Everything works.
Then I have some idea and decide to test something. The story gets
long, but we can shorten it.
$ cat p1.tcl
puts "hello"
exit
Yes, that's it.
So I pack it and run it and nothing prints. Why?
(In the slightly longer version of this story, I am trying to puts
the output of [pwd], [glob *], [parray env] and source another .tcl
file.)
You left out a bit of critical info: Linux or Windows as OS?
Under Linux, provided you are running that from within a terminal
session (not 'launching' it by clicking an icon as in the usual
windows way) you should see 'hello' output on the terminal.
In windows, it depends upon what executable you use to launch it, not
every windows executable gets a terminal (and if it does not get a
terminal it has no stdout, so "puts" just disappear).
**************************

It's Linux. I run it as ./p1 in a terminal session.
--
Luc
Michael Niehren
2024-12-17 07:51:42 UTC
Permalink
tclexecomp always starts tk (aka wish) if possible. If you start it on an
headless linux server, it only starts an tclsh.
So your "puts" will be on the TK-Console, which is on default not visible.
Put an "console show" in the first line of your script and you will see your
"puts" as an output in the console window.

best regards
Michael
Post by Luc
I wrapped an entire Tk application with tclexecomp.
It works. Everything works.
Then I have some idea and decide to test something. The story gets
long, but we can shorten it.
$ cat p1.tcl
puts "hello"
exit
Yes, that's it.
So I pack it and run it and nothing prints. Why?
(In the slightly longer version of this story, I am trying to puts
the output of [pwd], [glob *], [parray env] and source another .tcl
file.)
Luc
2024-12-17 17:27:33 UTC
Permalink
Post by Michael Niehren
tclexecomp always starts tk (aka wish) if possible. If you start it on an
headless linux server, it only starts an tclsh.
So your "puts" will be on the TK-Console, which is on default not visible.
Put an "console show" in the first line of your script and you will see
your "puts" as an output in the console window.
best regards
Michael
**************************

I still don't understand.

If I run it as a script,

$ wish ./p1.tcl

there is output.

But if I run the executable on a terminal,

$ ./p1

then there is no output.

Like I said, I have packed a pretty much complete application with
tclexecomp and it can output if I want it to.

But an extremely simple script can't output.

I still don't understand why.
--
Luc
Loading...