Ruby on an embedded ARM processor

Hi all,

I’m doing embedded linux development, and while a lot of the code I write has
to be in C, I’d really like to be able to run my favourite language on the
device. So two questions:

  1. Has anybody ported Ruby to an ARM (or ideally Intel XScale) processor?

If so, I can run the cross-compiled version out of an NFS mounted share

  1. Is there a trimmed-down distribution that could fit in under 5MB?

If so, then I can actually distribute Ruby with the system and not just use it
for testing/debugging.

Thanks in advance,

Ben Giddings

I’m doing embedded linux development, and while a lot of the code I write has
to be in C, I’d really like to be able to run my favourite language on the
device. So two questions:

  1. Has anybody ported Ruby to an ARM (or ideally Intel XScale) processor?

Since you’re developing in C, presumably you have a cross-compiler? Why not
just try firing it up on the Ruby source.

If your run-time environment is reasonably POSIX-compliant, and your compile
environment has a POSIX shell (to run ./configure) and an ANSI compiler, you
may be in luck.

  1. Is there a trimmed-down distribution that could fit in under 5MB?

On my FreeBSD box, /usr/local/bin/ruby [version 1.6.8] is 1.4MB, and
/usr/local/lib/ruby/1.6 is 3.6MB [of which 2.1MB is libruby.a, which you can
drop if you don’t want to embed Ruby in other C apps]. So unless the ARM
machine-code is much more bloated than the i386, you should easily get a
full Ruby distribution in around 3MB.

Cheers,

Brian.

···

On Sat, Jul 12, 2003 at 09:53:27AM +0900, Ben Giddings wrote:

Since you’re developing in C, presumably you have a cross-compiler?
Why not
just try firing it up on the Ruby source.

I’ll try that, I just wanted to know if anybody had already shown that
cross-compiling to ARM would work. In my recent experience, cross
compiling can be dead easy, or a major headache, and I just wanted to
know which end of the spectrum Ruby was on.

If your run-time environment is reasonably POSIX-compliant, and your
compile
environment has a POSIX shell (to run ./configure) and an ANSI
compiler, you
may be in luck.

My cross-compile environment is i386 Linux, my runtime environment is
ARM-linux, so I should be ok there.

  1. Is there a trimmed-down distribution that could fit in under 5MB?

On my FreeBSD box, /usr/local/bin/ruby [version 1.6.8] is 1.4MB, and
/usr/local/lib/ruby/1.6 is 3.6MB [of which 2.1MB is libruby.a, which
you can
drop if you don’t want to embed Ruby in other C apps]. So unless the
ARM
machine-code is much more bloated than the i386, you should easily get
a
full Ruby distribution in around 3MB.

Ok, what does /usr/local/lib/ruby/1.6 contain? Does it contain network
classes? Aside from the core classes that’s the part I need. If it
does contain that, can I trim any of the other parts (Complex, OO
classes, etc) out?

Ben

···

On Saturday, July 12, 2003, at 04:51 AM, Brian Candler wrote:

On Sat, Jul 12, 2003 at 09:53:27AM +0900, Ben Giddings wrote:

Hmm, perhaps you might like to install Ruby on your Linux workstation so you
can play with it :slight_smile:

Below is what I have. You’ll note that most of it consists of libraries
written in Ruby, but the C compiled stuff is in
/usr/local/lib/ruby/1.6/i386-freebsd4.8 (including socket.so, which you were
asking about)

You could trim it at your own risk - i.e. you would have to be sure that you
did not remove any library which any other library depended on.

I’m not sure if Linux has a compressed filesystem, but that might be another
option (Ruby source, being plain text, should compress pretty well)

Regards,

Brian.

$ ls -lR /usr/local/lib/ruby/1.6/
total 566
-rw-r–r-- 1 root wheel 919 May 23 13:50 English.rb
-rw-r–r-- 1 root wheel 274 May 23 13:50 Env.rb
-rw-r–r-- 1 root wheel 472 May 23 13:50 base64.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 cgi
-rw-r–r-- 1 root wheel 6948 May 23 13:50 cgi-lib.rb
-rw-r–r-- 1 root wheel 53043 May 23 13:50 cgi.rb
-rw-r–r-- 1 root wheel 9029 May 23 13:50 complex.rb
-rw-r–r-- 1 root wheel 7883 May 23 13:50 date.rb
-rw-r–r-- 1 root wheel 128 May 23 13:50 date2.rb
-rw-r–r-- 1 root wheel 20624 May 23 13:50 debug.rb
-rw-r–r-- 1 root wheel 2396 May 23 13:50 delegate.rb
-rw-r–r-- 1 root wheel 4147 May 23 13:50 e2mmap.rb
-rw-r–r-- 1 root wheel 487 May 23 13:50 eregex.rb
-rw-r–r-- 1 root wheel 626 May 23 13:50 expect.rb
-rw-r–r-- 1 root wheel 178 May 23 13:50 final.rb
-rw-r–r-- 1 root wheel 5923 May 23 13:50 finalize.rb
-rw-r–r-- 1 root wheel 761 May 23 13:50 find.rb
-rw-r–r-- 1 root wheel 2170 May 23 13:50 forwardable.rb
-rw-r–r-- 1 root wheel 3291 May 23 13:50 ftools.rb
-rw-r–r-- 1 root wheel 301 May 23 13:50 ftplib.rb
-rw-r–r-- 1 root wheel 9948 May 23 13:50 getoptlong.rb
-rw-r–r-- 1 root wheel 2170 May 23 13:50 getopts.rb
drwxr-xr-x 3 root wheel 1024 May 23 13:50 i386-freebsd4.8
-rw-r–r-- 1 root wheel 481 May 23 13:50 importenv.rb
drwxr-xr-x 3 root wheel 512 May 23 13:50 irb
-rw-r–r-- 1 root wheel 6642 May 23 13:50 irb.rb
-rw-r–r-- 1 root wheel 4294 May 23 13:50 jcode.rb
-rw-r–r-- 1 root wheel 1146 May 23 13:50 kconv.rb
-rw-r–r-- 1 root wheel 723 May 23 13:50 mailread.rb
-rw-r–r-- 1 root wheel 5614 May 23 13:50 mathn.rb
-rw-r–r-- 1 root wheel 18637 May 23 13:50 matrix.rb
-rw-r–r-- 1 root wheel 265 May 23 13:50 md5.rb
-rw-r–r-- 1 root wheel 16352 May 23 13:50 mkmf.rb
-rw-r–r-- 1 root wheel 4801 May 23 13:50 monitor.rb
-rw-r–r-- 1 root wheel 1987 May 23 13:50 mutex_m.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 net
-rw-r–r-- 1 root wheel 1010 May 23 13:50 observer.rb
-rw-r–r-- 1 root wheel 1040 May 23 13:50 open3.rb
-rw-r–r-- 1 root wheel 955 May 23 13:50 ostruct.rb
-rw-r–r-- 1 root wheel 1468 May 23 13:50 parsearg.rb
-rw-r–r-- 1 root wheel 3373 May 23 13:50 parsedate.rb
-rw-r–r-- 1 root wheel 1413 May 23 13:50 ping.rb
-rw-r–r-- 1 root wheel 1443 May 23 13:50 profile.rb
-rw-r–r-- 1 root wheel 2709 May 23 13:50 pstore.rb
-rw-r–r-- 1 root wheel 6855 May 23 13:50 rational.rb
-rw-r–r-- 1 root wheel 587 May 23 13:50 readbytes.rb
-rw-r–r-- 1 root wheel 979 May 23 13:50 resolv-replace.rb
-rw-r–r-- 1 root wheel 41656 May 23 13:50 resolv.rb
-rw-r–r-- 1 root wheel 273 May 23 13:50 sha1.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 shell
-rw-r–r-- 1 root wheel 4768 May 23 13:50 shell.rb
-rw-r–r-- 1 root wheel 1137 May 23 13:50 shellwords.rb
-rw-r–r-- 1 root wheel 917 May 23 13:50 singleton.rb
-rw-r–r-- 1 root wheel 6318 May 23 13:50 sync.rb
-rw-r–r-- 1 root wheel 125 May 23 13:50 telnet.rb
-rw-r–r-- 1 root wheel 3895 May 23 13:50 tempfile.rb
-rw-r–r-- 1 root wheel 4412 May 23 13:50 thread.rb
-rw-r–r-- 1 root wheel 3241 May 23 13:50 thwait.rb
-rw-r–r-- 1 root wheel 23826 May 23 13:50 time.rb
-rw-r–r-- 1 root wheel 941 May 23 13:50 timeout.rb
-rw-r–r-- 1 root wheel 79343 May 23 13:50 tk.rb
-rw-r–r-- 1 root wheel 6502 May 23 13:50 tkafter.rb
-rw-r–r-- 1 root wheel 322 May 23 13:50 tkbgerror.rb
-rw-r–r-- 1 root wheel 18664 May 23 13:50 tkcanvas.rb
-rw-r–r-- 1 root wheel 677 May 23 13:50 tkclass.rb
-rw-r–r-- 1 root wheel 3129 May 23 13:50 tkdialog.rb
-rw-r–r-- 1 root wheel 4734 May 23 13:50 tkentry.rb
-rw-r–r-- 1 root wheel 25715 May 23 13:50 tkfont.rb
-rw-r–r-- 1 root wheel 3519 May 23 13:50 tkmenubar.rb
-rw-r–r-- 1 root wheel 527 May 23 13:50 tkmngfocus.rb
-rw-r–r-- 1 root wheel 984 May 23 13:50 tkpalette.rb
-rw-r–r-- 1 root wheel 807 May 23 13:50 tkscrollbox.rb
-rw-r–r-- 1 root wheel 22929 May 23 13:50 tktext.rb
-rw-r–r-- 1 root wheel 1819 May 23 13:50 tkvirtevent.rb
-rw-r–r-- 1 root wheel 2867 May 23 13:50 tracer.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 uri
-rw-r–r-- 1 root wheel 837 May 23 13:50 uri.rb
-rw-r–r-- 1 root wheel 1874 May 23 13:50 weakref.rb

/usr/local/lib/ruby/1.6/cgi:
total 4
-rw-r–r-- 1 root wheel 3610 May 23 13:50 session.rb

/usr/local/lib/ruby/1.6/i386-freebsd4.8:
total 2558
-rw-r–r-- 1 root wheel 2851 May 23 13:50 config.h
-r-xr-xr-x 1 root wheel 36579 May 23 13:50 curses.so
-r-xr-xr-x 1 root wheel 35443 May 23 13:50 dbm.so
-rw-r–r-- 1 root wheel 2161 May 23 13:50 defines.h
drwxr-xr-x 2 root wheel 512 May 23 13:50 digest
-r-xr-xr-x 1 root wheel 19608 May 23 13:50 digest.so
-rw-r–r-- 1 root wheel 788 May 23 13:50 dln.h
-rw-r–r-- 1 root wheel 1093 May 23 13:50 env.h
-r-xr-xr-x 1 root wheel 19335 May 23 13:50 etc.so
-r-xr-xr-x 1 root wheel 13429 May 23 13:50 fcntl.so
-rw-r–r-- 1 root wheel 14346 May 23 13:50 intern.h
-rw-r–r-- 1 root wheel 2113450 May 23 13:50 libruby.a
-r-xr-xr-x 1 root wheel 36716 May 23 13:50 nkf.so
-rw-r–r-- 1 root wheel 10597 May 23 13:50 node.h
-r-xr-xr-x 1 root wheel 31268 May 23 13:50 pty.so
-rw-r–r-- 1 root wheel 4140 May 23 13:50 rbconfig.rb
-rw-r–r-- 1 root wheel 981 May 23 13:50 re.h
-r-xr-xr-x 1 root wheel 29462 May 23 13:50 readline.so
-rw-r–r-- 1 root wheel 7908 May 23 13:50 regex.h
-rw-r–r-- 1 root wheel 16347 May 23 13:50 ruby.h
-rw-r–r-- 1 root wheel 1777 May 23 13:50 rubyio.h
-rw-r–r-- 1 root wheel 2446 May 23 13:50 rubysig.h
-r-xr-xr-x 1 root wheel 53569 May 23 13:50 sdbm.so
-r-xr-xr-x 1 root wheel 79859 May 23 13:50 socket.so
-rw-r–r-- 1 root wheel 1049 May 23 13:50 st.h
-r-xr-xr-x 1 root wheel 22734 May 23 13:50 syslog.so
-r-xr-xr-x 1 root wheel 10867 May 23 13:50 tkutil.so
-rw-r–r-- 1 root wheel 1472 May 23 13:50 util.h
-rw-r–r-- 1 root wheel 310 May 23 13:50 version.h

/usr/local/lib/ruby/1.6/i386-freebsd4.8/digest:
total 120
-r-xr-xr-x 1 root wheel 21483 May 23 13:50 md5.so
-r-xr-xr-x 1 root wheel 29711 May 23 13:50 rmd160.so
-r-xr-xr-x 1 root wheel 27770 May 23 13:50 sha1.so
-r-xr-xr-x 1 root wheel 40148 May 23 13:50 sha2.so

/usr/local/lib/ruby/1.6/irb:
total 88
-rw-r–r-- 1 root wheel 4241 May 23 13:50 completion.rb
-rw-r–r-- 1 root wheel 6374 May 23 13:50 context.rb
-rw-r–r-- 1 root wheel 3154 May 23 13:50 extend-command.rb
-rw-r–r-- 1 root wheel 1281 May 23 13:50 frame.rb
-rw-r–r-- 1 root wheel 559 May 23 13:50 help.rb
-rw-r–r-- 1 root wheel 5192 May 23 13:50 init.rb
-rw-r–r-- 1 root wheel 1797 May 23 13:50 input-method.rb
drwxr-xr-x 3 root wheel 512 May 23 13:50 lc
-rw-r–r-- 1 root wheel 2339 May 23 13:50 loader.rb
-rw-r–r-- 1 root wheel 3557 May 23 13:50 locale.rb
-rw-r–r-- 1 root wheel 4438 May 23 13:50 multi-irb.rb
-rw-r–r-- 1 root wheel 17836 May 23 13:50 ruby-lex.rb
-rw-r–r-- 1 root wheel 7528 May 23 13:50 ruby-token.rb
-rw-r–r-- 1 root wheel 5831 May 23 13:50 slex.rb
-rw-r–r-- 1 root wheel 280 May 23 13:50 version.rb
-rw-r–r-- 1 root wheel 2520 May 23 13:50 workspace.rb
-rw-r–r-- 1 root wheel 235 May 23 13:50 ws-for-case-2.rb
-rw-r–r-- 1 root wheel 1482 May 23 13:50 xmp.rb

/usr/local/lib/ruby/1.6/irb/lc:
total 6
-rw-r–r-- 1 root wheel 885 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1261 May 23 13:50 help-message
drwxr-xr-x 2 root wheel 512 May 23 13:50 ja

/usr/local/lib/ruby/1.6/irb/lc/ja:
total 4
-rw-r–r-- 1 root wheel 1026 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1592 May 23 13:50 help-message

/usr/local/lib/ruby/1.6/net:
total 162
-rw-r–r-- 1 root wheel 13968 May 23 13:50 ftp.rb
-rw-r–r-- 1 root wheel 32783 May 23 13:50 http.rb
-rw-r–r-- 1 root wheel 52629 May 23 13:50 imap.rb
-rw-r–r-- 1 root wheel 14189 May 23 13:50 pop.rb
-rw-r–r-- 1 root wheel 14653 May 23 13:50 protocol.rb
-rw-r–r-- 1 root wheel 11220 May 23 13:50 smtp.rb
-rw-r–r-- 1 root wheel 19823 May 23 13:50 telnet.rb

/usr/local/lib/ruby/1.6/shell:
total 36
-rw-r–r-- 1 root wheel 2496 May 23 13:50 builtin-command.rb
-rw-r–r-- 1 root wheel 14886 May 23 13:50 command-processor.rb
-rw-r–r-- 1 root wheel 616 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1736 May 23 13:50 filter.rb
-rw-r–r-- 1 root wheel 5152 May 23 13:50 process-controller.rb
-rw-r–r-- 1 root wheel 3406 May 23 13:50 system-command.rb
-rw-r–r-- 1 root wheel 291 May 23 13:50 version.rb

/usr/local/lib/ruby/1.6/uri:
total 54
-rw-r–r-- 1 root wheel 12931 May 23 13:50 common.rb
-rw-r–r-- 1 root wheel 2805 May 23 13:50 ftp.rb
-rw-r–r-- 1 root wheel 20792 May 23 13:50 generic.rb
-rw-r–r-- 1 root wheel 1200 May 23 13:50 http.rb
-rw-r–r-- 1 root wheel 377 May 23 13:50 https.rb
-rw-r–r-- 1 root wheel 3648 May 23 13:50 ldap.rb
-rw-r–r-- 1 root wheel 5143 May 23 13:50 mailto.rb

···

On Sun, Jul 13, 2003 at 06:18:24AM +0900, Ben Giddings wrote:

Ok, what does /usr/local/lib/ruby/1.6 contain?

I’m not sure if Linux has a compressed filesystem, but that might be another
option (Ruby source, being plain text, should compress pretty well)

From kernel-doc-2.4.18/filesystems/cramfs.txt:

Cramfs - cram a filesystem onto a small ROM

cramfs is designed to be simple and small, and to compress things well.

Guillaume.

···

On Sat, 2003-07-12 at 17:43, Brian Candler wrote:

Regards,

Brian.

$ ls -lR /usr/local/lib/ruby/1.6/
total 566
-rw-r–r-- 1 root wheel 919 May 23 13:50 English.rb
-rw-r–r-- 1 root wheel 274 May 23 13:50 Env.rb
-rw-r–r-- 1 root wheel 472 May 23 13:50 base64.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 cgi
-rw-r–r-- 1 root wheel 6948 May 23 13:50 cgi-lib.rb
-rw-r–r-- 1 root wheel 53043 May 23 13:50 cgi.rb
-rw-r–r-- 1 root wheel 9029 May 23 13:50 complex.rb
-rw-r–r-- 1 root wheel 7883 May 23 13:50 date.rb
-rw-r–r-- 1 root wheel 128 May 23 13:50 date2.rb
-rw-r–r-- 1 root wheel 20624 May 23 13:50 debug.rb
-rw-r–r-- 1 root wheel 2396 May 23 13:50 delegate.rb
-rw-r–r-- 1 root wheel 4147 May 23 13:50 e2mmap.rb
-rw-r–r-- 1 root wheel 487 May 23 13:50 eregex.rb
-rw-r–r-- 1 root wheel 626 May 23 13:50 expect.rb
-rw-r–r-- 1 root wheel 178 May 23 13:50 final.rb
-rw-r–r-- 1 root wheel 5923 May 23 13:50 finalize.rb
-rw-r–r-- 1 root wheel 761 May 23 13:50 find.rb
-rw-r–r-- 1 root wheel 2170 May 23 13:50 forwardable.rb
-rw-r–r-- 1 root wheel 3291 May 23 13:50 ftools.rb
-rw-r–r-- 1 root wheel 301 May 23 13:50 ftplib.rb
-rw-r–r-- 1 root wheel 9948 May 23 13:50 getoptlong.rb
-rw-r–r-- 1 root wheel 2170 May 23 13:50 getopts.rb
drwxr-xr-x 3 root wheel 1024 May 23 13:50 i386-freebsd4.8
-rw-r–r-- 1 root wheel 481 May 23 13:50 importenv.rb
drwxr-xr-x 3 root wheel 512 May 23 13:50 irb
-rw-r–r-- 1 root wheel 6642 May 23 13:50 irb.rb
-rw-r–r-- 1 root wheel 4294 May 23 13:50 jcode.rb
-rw-r–r-- 1 root wheel 1146 May 23 13:50 kconv.rb
-rw-r–r-- 1 root wheel 723 May 23 13:50 mailread.rb
-rw-r–r-- 1 root wheel 5614 May 23 13:50 mathn.rb
-rw-r–r-- 1 root wheel 18637 May 23 13:50 matrix.rb
-rw-r–r-- 1 root wheel 265 May 23 13:50 md5.rb
-rw-r–r-- 1 root wheel 16352 May 23 13:50 mkmf.rb
-rw-r–r-- 1 root wheel 4801 May 23 13:50 monitor.rb
-rw-r–r-- 1 root wheel 1987 May 23 13:50 mutex_m.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 net
-rw-r–r-- 1 root wheel 1010 May 23 13:50 observer.rb
-rw-r–r-- 1 root wheel 1040 May 23 13:50 open3.rb
-rw-r–r-- 1 root wheel 955 May 23 13:50 ostruct.rb
-rw-r–r-- 1 root wheel 1468 May 23 13:50 parsearg.rb
-rw-r–r-- 1 root wheel 3373 May 23 13:50 parsedate.rb
-rw-r–r-- 1 root wheel 1413 May 23 13:50 ping.rb
-rw-r–r-- 1 root wheel 1443 May 23 13:50 profile.rb
-rw-r–r-- 1 root wheel 2709 May 23 13:50 pstore.rb
-rw-r–r-- 1 root wheel 6855 May 23 13:50 rational.rb
-rw-r–r-- 1 root wheel 587 May 23 13:50 readbytes.rb
-rw-r–r-- 1 root wheel 979 May 23 13:50 resolv-replace.rb
-rw-r–r-- 1 root wheel 41656 May 23 13:50 resolv.rb
-rw-r–r-- 1 root wheel 273 May 23 13:50 sha1.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 shell
-rw-r–r-- 1 root wheel 4768 May 23 13:50 shell.rb
-rw-r–r-- 1 root wheel 1137 May 23 13:50 shellwords.rb
-rw-r–r-- 1 root wheel 917 May 23 13:50 singleton.rb
-rw-r–r-- 1 root wheel 6318 May 23 13:50 sync.rb
-rw-r–r-- 1 root wheel 125 May 23 13:50 telnet.rb
-rw-r–r-- 1 root wheel 3895 May 23 13:50 tempfile.rb
-rw-r–r-- 1 root wheel 4412 May 23 13:50 thread.rb
-rw-r–r-- 1 root wheel 3241 May 23 13:50 thwait.rb
-rw-r–r-- 1 root wheel 23826 May 23 13:50 time.rb
-rw-r–r-- 1 root wheel 941 May 23 13:50 timeout.rb
-rw-r–r-- 1 root wheel 79343 May 23 13:50 tk.rb
-rw-r–r-- 1 root wheel 6502 May 23 13:50 tkafter.rb
-rw-r–r-- 1 root wheel 322 May 23 13:50 tkbgerror.rb
-rw-r–r-- 1 root wheel 18664 May 23 13:50 tkcanvas.rb
-rw-r–r-- 1 root wheel 677 May 23 13:50 tkclass.rb
-rw-r–r-- 1 root wheel 3129 May 23 13:50 tkdialog.rb
-rw-r–r-- 1 root wheel 4734 May 23 13:50 tkentry.rb
-rw-r–r-- 1 root wheel 25715 May 23 13:50 tkfont.rb
-rw-r–r-- 1 root wheel 3519 May 23 13:50 tkmenubar.rb
-rw-r–r-- 1 root wheel 527 May 23 13:50 tkmngfocus.rb
-rw-r–r-- 1 root wheel 984 May 23 13:50 tkpalette.rb
-rw-r–r-- 1 root wheel 807 May 23 13:50 tkscrollbox.rb
-rw-r–r-- 1 root wheel 22929 May 23 13:50 tktext.rb
-rw-r–r-- 1 root wheel 1819 May 23 13:50 tkvirtevent.rb
-rw-r–r-- 1 root wheel 2867 May 23 13:50 tracer.rb
drwxr-xr-x 2 root wheel 512 May 23 13:50 uri
-rw-r–r-- 1 root wheel 837 May 23 13:50 uri.rb
-rw-r–r-- 1 root wheel 1874 May 23 13:50 weakref.rb

/usr/local/lib/ruby/1.6/cgi:
total 4
-rw-r–r-- 1 root wheel 3610 May 23 13:50 session.rb

/usr/local/lib/ruby/1.6/i386-freebsd4.8:
total 2558
-rw-r–r-- 1 root wheel 2851 May 23 13:50 config.h
-r-xr-xr-x 1 root wheel 36579 May 23 13:50 curses.so
-r-xr-xr-x 1 root wheel 35443 May 23 13:50 dbm.so
-rw-r–r-- 1 root wheel 2161 May 23 13:50 defines.h
drwxr-xr-x 2 root wheel 512 May 23 13:50 digest
-r-xr-xr-x 1 root wheel 19608 May 23 13:50 digest.so
-rw-r–r-- 1 root wheel 788 May 23 13:50 dln.h
-rw-r–r-- 1 root wheel 1093 May 23 13:50 env.h
-r-xr-xr-x 1 root wheel 19335 May 23 13:50 etc.so
-r-xr-xr-x 1 root wheel 13429 May 23 13:50 fcntl.so
-rw-r–r-- 1 root wheel 14346 May 23 13:50 intern.h
-rw-r–r-- 1 root wheel 2113450 May 23 13:50 libruby.a
-r-xr-xr-x 1 root wheel 36716 May 23 13:50 nkf.so
-rw-r–r-- 1 root wheel 10597 May 23 13:50 node.h
-r-xr-xr-x 1 root wheel 31268 May 23 13:50 pty.so
-rw-r–r-- 1 root wheel 4140 May 23 13:50 rbconfig.rb
-rw-r–r-- 1 root wheel 981 May 23 13:50 re.h
-r-xr-xr-x 1 root wheel 29462 May 23 13:50 readline.so
-rw-r–r-- 1 root wheel 7908 May 23 13:50 regex.h
-rw-r–r-- 1 root wheel 16347 May 23 13:50 ruby.h
-rw-r–r-- 1 root wheel 1777 May 23 13:50 rubyio.h
-rw-r–r-- 1 root wheel 2446 May 23 13:50 rubysig.h
-r-xr-xr-x 1 root wheel 53569 May 23 13:50 sdbm.so
-r-xr-xr-x 1 root wheel 79859 May 23 13:50 socket.so
-rw-r–r-- 1 root wheel 1049 May 23 13:50 st.h
-r-xr-xr-x 1 root wheel 22734 May 23 13:50 syslog.so
-r-xr-xr-x 1 root wheel 10867 May 23 13:50 tkutil.so
-rw-r–r-- 1 root wheel 1472 May 23 13:50 util.h
-rw-r–r-- 1 root wheel 310 May 23 13:50 version.h

/usr/local/lib/ruby/1.6/i386-freebsd4.8/digest:
total 120
-r-xr-xr-x 1 root wheel 21483 May 23 13:50 md5.so
-r-xr-xr-x 1 root wheel 29711 May 23 13:50 rmd160.so
-r-xr-xr-x 1 root wheel 27770 May 23 13:50 sha1.so
-r-xr-xr-x 1 root wheel 40148 May 23 13:50 sha2.so

/usr/local/lib/ruby/1.6/irb:
total 88
-rw-r–r-- 1 root wheel 4241 May 23 13:50 completion.rb
-rw-r–r-- 1 root wheel 6374 May 23 13:50 context.rb
-rw-r–r-- 1 root wheel 3154 May 23 13:50 extend-command.rb
-rw-r–r-- 1 root wheel 1281 May 23 13:50 frame.rb
-rw-r–r-- 1 root wheel 559 May 23 13:50 help.rb
-rw-r–r-- 1 root wheel 5192 May 23 13:50 init.rb
-rw-r–r-- 1 root wheel 1797 May 23 13:50 input-method.rb
drwxr-xr-x 3 root wheel 512 May 23 13:50 lc
-rw-r–r-- 1 root wheel 2339 May 23 13:50 loader.rb
-rw-r–r-- 1 root wheel 3557 May 23 13:50 locale.rb
-rw-r–r-- 1 root wheel 4438 May 23 13:50 multi-irb.rb
-rw-r–r-- 1 root wheel 17836 May 23 13:50 ruby-lex.rb
-rw-r–r-- 1 root wheel 7528 May 23 13:50 ruby-token.rb
-rw-r–r-- 1 root wheel 5831 May 23 13:50 slex.rb
-rw-r–r-- 1 root wheel 280 May 23 13:50 version.rb
-rw-r–r-- 1 root wheel 2520 May 23 13:50 workspace.rb
-rw-r–r-- 1 root wheel 235 May 23 13:50 ws-for-case-2.rb
-rw-r–r-- 1 root wheel 1482 May 23 13:50 xmp.rb

/usr/local/lib/ruby/1.6/irb/lc:
total 6
-rw-r–r-- 1 root wheel 885 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1261 May 23 13:50 help-message
drwxr-xr-x 2 root wheel 512 May 23 13:50 ja

/usr/local/lib/ruby/1.6/irb/lc/ja:
total 4
-rw-r–r-- 1 root wheel 1026 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1592 May 23 13:50 help-message

/usr/local/lib/ruby/1.6/net:
total 162
-rw-r–r-- 1 root wheel 13968 May 23 13:50 ftp.rb
-rw-r–r-- 1 root wheel 32783 May 23 13:50 http.rb
-rw-r–r-- 1 root wheel 52629 May 23 13:50 imap.rb
-rw-r–r-- 1 root wheel 14189 May 23 13:50 pop.rb
-rw-r–r-- 1 root wheel 14653 May 23 13:50 protocol.rb
-rw-r–r-- 1 root wheel 11220 May 23 13:50 smtp.rb
-rw-r–r-- 1 root wheel 19823 May 23 13:50 telnet.rb

/usr/local/lib/ruby/1.6/shell:
total 36
-rw-r–r-- 1 root wheel 2496 May 23 13:50 builtin-command.rb
-rw-r–r-- 1 root wheel 14886 May 23 13:50 command-processor.rb
-rw-r–r-- 1 root wheel 616 May 23 13:50 error.rb
-rw-r–r-- 1 root wheel 1736 May 23 13:50 filter.rb
-rw-r–r-- 1 root wheel 5152 May 23 13:50 process-controller.rb
-rw-r–r-- 1 root wheel 3406 May 23 13:50 system-command.rb
-rw-r–r-- 1 root wheel 291 May 23 13:50 version.rb

/usr/local/lib/ruby/1.6/uri:
total 54
-rw-r–r-- 1 root wheel 12931 May 23 13:50 common.rb
-rw-r–r-- 1 root wheel 2805 May 23 13:50 ftp.rb
-rw-r–r-- 1 root wheel 20792 May 23 13:50 generic.rb
-rw-r–r-- 1 root wheel 1200 May 23 13:50 http.rb
-rw-r–r-- 1 root wheel 377 May 23 13:50 https.rb
-rw-r–r-- 1 root wheel 3648 May 23 13:50 ldap.rb
-rw-r–r-- 1 root wheel 5143 May 23 13:50 mailto.rb

I suppose there should even be a capabilities-related flag on ext2/3…
man lsattr chould help :slight_smile:

···

il Mon, 14 Jul 2003 23:57:24 +0900, Guillaume Marcais guslist@free.fr ha scritto::

On Sat, 2003-07-12 at 17:43, Brian Candler wrote:

I’m not sure if Linux has a compressed filesystem, but that might be another
option (Ruby source, being plain text, should compress pretty well)

From kernel-doc-2.4.18/filesystems/cramfs.txt:

Cramfs - cram a filesystem onto a small ROM

cramfs is designed to be simple and small, and to compress things well.

the “familiar” Linux distro (from iPAQ/handhelds.org fame) uses
jffs2 for the internal flash (based on the mtd block interface; do not use
it on flash with an IDE interface).
Jffs2 is not only compressed, but also writable and still saves your flash.

The Ruby packages in familiar are thus compressed.

Bye,
Kero.

···

On Mon, 14 Jul 2003 23:57:24 +0900, Guillaume Marcais wrote:

On Sat, 2003-07-12 at 17:43, Brian Candler wrote:

I’m not sure if Linux has a compressed filesystem, but that might be another
option (Ruby source, being plain text, should compress pretty well)

From kernel-doc-2.4.18/filesystems/cramfs.txt:

Cramfs - cram a filesystem onto a small ROM

cramfs is designed to be simple and small, and to compress things well.

Yeah, it’s JFFS2 I’m using.

Ben

···

On Tue July 15 2003 12:58 pm, Kero van Gelder wrote:

the “familiar” Linux distro (from iPAQ/handhelds.org fame) uses
jffs2 for the internal flash (based on the mtd block interface; do not use
it on flash with an IDE interface).
Jffs2 is not only compressed, but also writable and still saves your flash.

The Ruby packages in familiar are thus compressed.