什么是"libgnarl"?

Pat*_*lly 1 ada gnat

什么是libgnarl?我在各个地方找到了对它的引用,比如gcc源代码或gprbuild的详细输出.gprbuild专门报告决定是否libgnarl有必要,所以它显然是一个可选的库,但实际的库是什么?我找不到任何文件.这些源包含一堆看起来像属于标准库的包,但不是(喜欢Ada.Execution_Time.Timers),所以显然我缺少一些东西.

Sim*_*ght 5

你可以google例如"ada gnarl"并找到一些相当详细的信息.

它是处理任务的RTS的一部分,因此,广泛地说,如果你的程序不使用任务,它将不需要libgnarl.

从历史上看,它是作为纽约大学GNAT团队和佛罗里达州立大学PART团队的联合项目开发的:来自ACU数字图书馆FSU报告,

开发GNARL是佛罗里达州立大学POSIX/Ada Real-Time(PART)项目与纽约大学GNAT开发团队的合作项目.PART项目的目标是将Ada语言绑定的开发和标准化推进到IEEE POSIX标准,这是一系列用于操作系统服务的应用程序接口.PART项目的一个主要关注点是Ada任务模型与提议的标准POSIX线程服务(Pthreads)的协调.

来自AdaCore的嵌入式RTS(至少是ARM的RTS)似乎没有保留这种区别:至少libgnarl.a只有一个,只包含empty.o!但是,AdaCore继续将学术RTS开发纳入其嵌入式RTS的方法,请参阅s-bb.ads(bb=>裸板):

--        Copyright (C) 1999-2002 Universidad Politecnica de Madrid         --
--             Copyright (C) 2003-2004 The European Space Agency            --
--                     Copyright (C) 2003-2018, AdaCore                     --
Run Code Online (Sandbox Code Playgroud)

  • 显然,谷歌的结果很大程度上取决于提出问题的人!(位置?搜索历史?眼睛颜色?)你看到[这个](http://www.iuma.ulpgc.es/users/jmiranda/gnat-rts/node14.htm)吗?(我不确定 GNULL 部分,我认为它被 `System.OS_Interface` 接管了。) (2认同)