i wonder why wouldn’t all the classes be imported that are reffered to instead of manyally doing this?
Or the compiler just strips away all that’s not used… i wonder why the manual (unclear) efford is needed? …
That is a point ripe for a feature request, I think.
Under the hood, that should be not too much of an effort, for the Xojo team? ![]()
I mean, I think that somewhere in the compiler, certain things are not being included in the binary. At least, that is something I remember Geoff talked about, a long time ago.
So, in this process, within the compiler, the compiler should be able to include those modules and classes.
Also, since the worker’s helper apps are stand-alone, any plugins need to be registered again. In one of my workers I used some MBS plugins. In the main app I registered those. Those registrations could be “moved” to those helper apps, right?
This goes to a thread we had a few weeks ago. This was never a job for the compiler, but a job for the link-editor. The compiler compiled and then said “I need these external methods”, and it was the link-editor that searched in a list of libraries (that list was the user’s job to provide), and found the referenced methods, plus any methods they referenced.
To get what you need, and only what you need, requires that the libraries (frameworks, these days, I suppose) be structured (like a dictionary) so that you could look up in them to see if they had a particular method, and ask the library for it. The library would give you the method. You then look to see if that method, itself, requires any other methods that you don’t already have. And so you go round recursively until either (a) all unsatisfied references have been satisfied or (b) you’ve done all you can and you still have some unsatisfied references. In case (a) the executable can be run, in case (b) it cannot (well, not successfully, anyway).
This is how things worked, 50 years ago. We seem to have forgotten how to do that.
I have to pass very large image datasets to/from workers. A very good solution is to use shared memory, then all you need to do is pass the name of the shared memory segment. MBS has excellent classes that support this.