[Geany-Devel] Spawn module API

Dimitar Zhekov 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.]

--
E-gards: Jimmy


More information about the Devel mailing list