[PATCH 2/5] build: Use CSafeLoader if available

Chris Johns chrisj at rtems.org
Thu Apr 27 21:59:53 UTC 2023


On 28/4/2023 4:27 am, Gedare Bloom wrote:
> On Wed, Apr 26, 2023 at 11:46 PM Sebastian Huber
> <sebastian.huber at embedded-brains.de> wrote:
>>
>> On 27.04.23 02:11, Chris Johns wrote:
>>> On 26/4/2023 6:04 pm, Sebastian Huber wrote:
>>>> The CSafeLoader uses the C libyaml libary to considerably speed up the
>>>> loading of YAML files.
>>> No from me.
>>
>> What do you mean with not for me? You have the CSafeLoader available and
>> it is slow? Do you have some timings before and after the patch set for
>> a "./waf configure" and "./waf build"? On my systems the configure needs
>> less than a second with the CSafeLoader and the waf build setup time is
>> less than 100ms.

I do not agree this changing being merged as is. A move to csafeloader for all
users is a good idea but not conditionally.

>>> I do not agree with conditional states of operation in the build system that
>>> depend on packages a host has installed. If speed is an important factor all
>>> users then I suggest you find a means to have it available automatically on the
>>> hosts we support (Linux, FreeBSD, MacOS, Windows MINGW64 and Cygwin.
>>
>> I am not sure if we should automatically install system Python packages
>> on user machines.
>>
>> The fall back is the Python PyYAML package available through the RTEMS
>> sources. This is what we use currently. For RTEMS users, this is
>> acceptable since they are not supposed to touch the YAML files. For
>> RTEMS maintainers, not having the cache makes working with the build
>> system more efficient.
>>
>> If they system PyYAML package is not installed, then you get now a hint
>> to install it:
>>
>> Setting top to                           : /home/EB/sebastian_h/src/rtems
>> Setting out to                           :
>> /home/EB/sebastian_h/src/rtems/build
>> Regenerate the build specification cache.  Install the PyYAML Python
>> package to avoid this.  The cache regeneration needs a couple of seconds...
>> Configure board support package (BSP)    : arm/realview_pbx_a9_qemu
>>
> 
> I have two questions, which are related to Chris's concern I think.
> 1. Are the output of PyYAML and C libyaml guaranteed to be consistent?
> 
> 2. Why not make C libyaml part of the RTEMS toolchain?
> 
> Any dependencies that exist in the build system are (by definition)
> suitable to be checked/provided by the tool buildset.

Yes this is a good summary, thanks.

Chris


More information about the devel mailing list