POV-Ray : Newsgroups : povray.off-topic : Found the dynamic optimization things... : Re: Found the dynamic optimization things... Server Time
30 Sep 2024 13:20:15 EDT (-0400)
  Re: Found the dynamic optimization things...  
From: Darren New
Date: 23 Sep 2008 14:00:44
Message: <48d92ecc$1@news.povray.org>
Warp wrote:
>   Most of what I have seen of these languages, especially the dynamic
> ones, seems to be completely incompatible with DLLs.

I don't follow. Both Java and .NET are basically 100% dynamically 
loaded. Javascript and Python and such are also 100% dynamically loaded.

>   DLL files in Windows don't exist because Microsoft got some fancy but
> braindead idea and decided to impose it on everyone. .so files in unix
> systems don't exist just because of the fun of it. They have a purpose.

Heh. I'm not sure why you think Microsoft and Unix have different 
approaches to this. The only mistake Microsoft made was to have the 
version number inside the DLL rather than part of the name of the DLL. 
What lead to "DLL Hell" is two people updating the same system DLL with 
incompatible bugs.  Solved via the DLL Cache and side-by-side installs, 
which is basically what UNIX does with .so's. I can't tell you how often 
I've had to make a symlink from /usr/lib/libyadda.1.3.7.so to 
/usr/lib/libyadda.1.3.8.so to make a compiled program run. So both 
approaches have their flaws. :-)

>   The amount of programs running at any given time can be counted in
> the hundreds. The OS starts all kinds of processes and services just to
> boot up. Every single one of them uses the exact same libc library, plus
> a bunch of other common libraries. Given that libc is rather large,

I suspect the amount of libc used by any particular program is somewhat 
smaller, tho. The new Microsoft "Singularity" OS even inlines bits of 
the kernel into your application - stuff like allocating pages of memory 
doesn't even leave the subroutine doing it, let alone trap out.

> You wouldn't be able to build and entire OS created with that
> programming language only. You *need* dynamically loadable libraries
> for the system to work.

Check out the Singularity OS. Real live working OS, with one of the 
fundamental assumptions being that once you start a process, *nothing* 
in the executable can change. No dynamic loading, no plug-ins, etc.

>   It just feels that people who advocate fancy languages just ignore
> this fact: They are dependent on an efficient dynamically loadable
> library system (almost always created with C), but they completely
> ignore the fact, and instead diss C as if it was a pestilence. They
> completely fail to explain how the system could work if they did not
> have that pestilent C system below, running the system.

I don't think that's what this lecture is about. It's about making the 
run-time (and IDEs for that matter) of dynamic systems as efficient as 
the run-time of static systems. For example, how do you inline calls to 
a DLL even in a language like C? What if the overhead for calling the 
floating point library in libc[1] is greater than the actual time used 
to do the floating point ops?

[1] Remember - not all machines have floating point built in. Even the 
8086 had the 8087 as optional.

-- 
Darren New / San Diego, CA, USA (PST)


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.