[Gambas-user] User components in Gambas 3
Benoît Minisini
gambas at ...1...
Tue Apr 20 22:40:02 CEST 2010
Hi,
I post this mail on both mailing-lists: please answer on the developer
mailing-list if possible, as this is related to the development version!
I'm currently thinking about how user components should work in Gambas 3, as I
dislike the way it was designed in Gambas 2.
In Gambas 2, user components work the same way as normal components made with
Gambas, except that they are symbolic located in the home directory that point
at the real executables.
That design lead to many problems: you can't make packages of user components
easily, and if the real executable moves, the symbolic link is broken while
the IDE think the component is there.
So, for Gambas 3, I propose a different design:
- There are no "user" components anymore.
- Instead, a project will be able to depend on other projects.
- The list of associated projects will be defined in the IDE project option
dialog.
- That list will be just a list of project *names*.
- At design time, these project will be search inside one or more directories
that will be defined as a IDE global option.
- At run time, the associated projects will be searched by using the $PATH
environmental variable, as any other executables.
Consequently:
- The IDE global option will tell where you store the projects you want to use
as components.
- These projects will be packaged separately and installed like any other
Gambas projects.
- They should have a special name, because they are not real executables, but
some sort of "Gambas" libraries instead.
- So the project executables should be in the $PATH. And so the main project
will find them easily.
- When creating the main project packages, it will be easy to add a dependency
on the associated project packages.
I need to find a good term for these "associated" projects. I'd like to find
something different than "component".
Even if internally the interpreter will use the same code to load them, I want
the user to understand easily that they do not work the same way.
Maybe "library" would be a good term...
What do you think about the new design?
--
Benoît Minisini
More information about the User
mailing list