Author Topic: [Q] Diet libc ???  (Read 3543 times)

nikfreak

  • Developer
  • Hero Member
  • *****
  • Posts: 1197
[Q] Diet libc ???
« on: July 26, 2014, 10:19:11 PM »
Hi,

just wanted to ask why ML switched to diet libc in early 2013? Was it to be able to shrink file sizes as much as possible and being able to use TCC, too??
Another question: Last weeks I have heard lots about  "musl libc" as it seems to become more and more used in community / opensource projects (e.g. openWRT). Please have a look at the following comparison http://www.etalabs.net/compare_libcs.html

Could this or parts of it (cherry picking code) be useful for us? What do you think?
70D.112 & 100D.101

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: [Q] Diet libc ???
« Reply #1 on: July 26, 2014, 10:26:47 PM »
Yes. The main reason for using dietlibc was because I was able to extract some components without running into dependency hell (and without including the entire library, but just the stuff we needed).

For some things that were too slow in dietlibc (like memcpy), I took the newlib routines.

Back then, I was trying to squeeze PicoC inside. Then I took it out to make space for TCC and the module system, which was much more popular than the scripting engine.

Of course, it's not a closed topic. I did not try other libraries, and I have no other experience with them.

There's still a bunch of stuff that can be moved to modules, so the size constraints are no longer a big problem.

nikfreak

  • Developer
  • Hero Member
  • *****
  • Posts: 1197
Re: [Q] Diet libc ???
« Reply #2 on: September 22, 2014, 08:52:11 PM »
so we are using 0.9.26 TCC.
Do you see some usefulness of implementing the "mob" branch / tree of TCC into ML? Looks like some devs are still working on TCC code:

http://repo.or.cz/w/tinycc.git
70D.112 & 100D.101

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: [Q] Diet libc ???
« Reply #3 on: September 23, 2014, 02:57:32 PM »
I think it's more important to get the existing one fully working first, and have a somewhat usable API.