[Geany-Devel] Spawn module API
dimitar.zhekov at xxxxx
Mon Jun 22 17:18:19 UTC 2015
On 21.6.2015 г. 20:39, Matthew Brush wrote:
> On 2015-06-21 04:25 AM, Dimitar Zhekov wrote:
>> On 21.6.2015 г. 06:12, Matthew Brush wrote:
>> Spawn neither requires not uses anything from Geany (except i18n), and
>> does not change anything in Geany state, so it's functions are not
> Yeah, it almost should be a "separate" library (at least like TM or
> MIO). Personally I don't like the tendency of Geany's plugin API to be
> getting bloated with stuff that has nothing to do with Geany or plugins,
> but rather general purpose stuff making up for shortcomings in GLib, or
> general-purpose convenience functions. But I think maybe this is a
> conversation for another day.
+1 on that. Any generic purpose functions, not really dependent on
Geany, should be separated in a library, and used by Geany and the
plugins on equal basic. Perhaps in a next version...
Some reasons for the plugins to use the spawn API, in no particular order:
- supports native CL under Win~1 (not \-is-escape *nix parsing)
- does not spawn helper processes (creating a process is costly under
Win~1, though that's only notable for > several)
- handles locale arguments better (the former FiF locale error)
- may provide better security, depending on how glib starts processes
But I will not try to force the API on anybody, and do not want anyone
else to do so. If the reasons are not compelling, so be it.
>> In the next plugins (after this release), Scope will require at least
>> WIF*, spawn_kill_process, SpawnFlags, SpawnReadFunc,
>> spawn_with_callbacks, SpawnWriteData and spawn_write_data.
>> It'll be good if 'debugger' uses them as well...
> I figured there would be some use in at least Scope. Do you have any
> problem if we make all the API private for now and then as you need it
> in Scope (or any other plugins requesting it) we can export precisely
> what is needed, at that time?
I want the next Scope to depend on Geany-1.25 stable-release. If the
functions are hidden now, it'll have to depend on Geany-git-date, which
I'd rather avoid...
[A note to myself: the README for this release should state that Scope
depends on glib-2.18 now, not only Geany-1.22.]
More information about the Devel