I built a "Hello World" program as follows,
type h.scm
(display "Hello ")
type w.scm
(display "World")
Hello World
This way, the size of the "w.exe" is 4.61MB.
In Gambit-C manual documents 3. The Gambit Scheme compiler 3.4 Link files ... A "Hello World" program built this way can be as small as 5 Kbytes. ...
Could you please teach me how to built program as small as 5 Kbytes one.
Thanks in advance.
Afficher les réponses par date
Thank you very much for replying.
I downloaded the "gambc-v4_7_3.gz", then
$ ./configure --enable-single-host --enable-shared $ make
I could get a "libgambc.dll" now.
type h.scm
(display "Hello ")
type w.scm
(display "World")
Hello World
This time the size of the "w.exe" is 136KB. It's very small.
Thank you very much again for your help.
-----Original Message----- From: Marc Feeley Sent: Monday, January 19, 2015 1:51 PM To: Ryuho Yokoyama Cc: gambit-list@iro.umontreal.ca Subject: Re: [gambit-list] How can built a small as 5 Kbytes "Hello World" program ?
You need to configure Gambit using --enable-shared, i.e.
./configure --enable-single-host --enable-shared make
This will build a DLL for the Gambit runtime library, so that the .exe doesn窶冲 contain the runtime library.
Marc
On Mon, 19 Jan 2015 15:28:19 +0900, Ryuho Yokoyama wrote:
How can this possibly be considered "small" for such a trivial task, let along *very* small?
That's three times the entire RAM of the first machine I ran a HelloWorld program on!
I really wonder what is filling up all those K!
-- hendrik
On 01/19/2015 05:04 PM, Hendrik Boom wrote:
On Ubuntu 14.10, with all updates:
firefly:~/programs/gambit/norvig-spell/gambit> cat hello.scm (display "Hello World!\n") firefly:~/programs/gambit/norvig-spell/gambit> gsc -exe hello firefly:~/programs/gambit/norvig-spell/gambit> ll hello -rwxrwxr-x 1 lucier lucier 10536 Jan 19 21:44 hello* firefly:~/programs/gambit/norvig-spell/gambit> ./hello Hello World! firefly:~/programs/gambit/norvig-spell/gambit> gsc -v \v4.7.3 20141017031152 x86_64-unknown-linux-gnu "./configure '--enable-single-host' '--enable-shared' '--enable-multiple-versions' '--enable-char-size=1'"
Brad
On 01/19/2015 09:45 PM, Bradley Lucier wrote:
I forgot:
firefly:~/programs/gambit/norvig-spell/gambit> strip hello firefly:~/programs/gambit/norvig-spell/gambit> ll hello -rwxrwxr-x 1 lucier lucier 7352 Jan 19 22:18 hello* firefly:~/programs/gambit/norvig-spell/gambit> ./hello Hello World!
Brad
On Mon, Jan 19, 2015 at 09:45:16PM -0500, Bradley Lucier wrote:
That's much smaller than the 136KB mentioned in the post I was replying to.
" This time the size of the "w.exe" is 136KB. It's very small.
Good job.
Now I really wonder what was going on in the 136KB, or whether 136KB was a typo.
-- hendrik
It is probably the ws2_32 library that is statically linked. But frankly on modern machines the difference in space between 5 MB (static link) and 5 KB (shared libs) doesn’t really matter very much. I almost always favour a static link because it avoids the headache of setting up the shared lib path, version compatibility, etc. Moreover, it is probably marginally faster to load the executable code from a single file.
Marc