Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Oct 1998 23:59:13 +0100 (CET)
From:      Andrzej Bialecki <abial@nask.pl>
To:        Mike Smith <mike@smith.net.au>
Cc:        current@FreeBSD.ORG
Subject:   Re: New boot loader and alternate kernels 
Message-ID:  <Pine.BSF.4.02A.9810312350190.4240-100000@korin.warman.org.pl>
In-Reply-To: <199810302013.MAA01772@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 30 Oct 1998, Mike Smith wrote:

> > I think this is important opportunity - let's not miss it without good
> > reasons... As I said, there are people among us who can even write small
> > enough Forth kernel for our purposes.
> 
> I have no desire to miss it.  Give me a compact Forth interpreter that 
> links against libstand and you'll be seeing it everywhere Real Soon.

Here it is: it's called FICL (Forth Inspired Command Language), written in
ANSI C, designed to be embedded in other programs, implements ANS-Forth
CORE, CORE-EXT, TOOLS, SEARCH wordlists and its own OOP extensions. You
can find it on taygeta. It's freeware, and actively maintained.

Because of its purpose, it comes in a form of library. Here is its
contents:

abial# size libficl.a
   text	   data	    bss	    dec	    hex	filename
   2403	      0	      0	   2403	    963	dict.o (ex libficl.a)
    989	     20	      0	   1009	    3f1	ficl.o (ex libficl.a)
    892	      0	      0	    892	    37c	math64.o (ex libficl.a)
     63	   3130	      0	   3193	    c79	softcore.o (ex libficl.a)
    674	      0	      0	    674	    2a2	stack.o (ex libficl.a)
    253	      0	      0	    253	     fd	sysdep.o (ex libficl.a)
   2154	     44	      0	   2198	    896	vm.o (ex libficl.a)
  18222	     92	      0	  18314	   478a	words.o (ex libficl.a)

(this can be still reduced if we limit ourselves to CORE words - I think
1/3 of words.o would go away).

I haven't tried to link it against libstand, and you probably know better
than I what is and what is not possible with it, so below is list of
the symbols it needs from libc, when linking a simple test program:

abial# nm testmain|grep "U "|sort -u
         U ___runetype
         U ___tolower
         U __assert
         U atexit
         U exit
         U fputs
         U free
         U longjmp
         U malloc
         U puts
         U setjmp
         U sprintf
         U strcat
         U strcmp
         U strncpy
         U vsprintf

So, how about that?

 Andrzej Bialecki

--------------------   ++-------++  -------------------------------------
 <abial@nask.pl>       ||PicoBSD||   FreeBSD in your pocket? Go and see:
 Research & Academic   |+-------+|       "Small & Embedded FreeBSD"
 Network in Poland     | |TT~~~| |    http://www.freebsd.org/~picobsd/
--------------------   ~-+==---+-+  -------------------------------------


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.02A.9810312350190.4240-100000>