* Re: Where to find Ravenscar compatible ADT Containers (List, Vector, stack)
2018-08-28 15:03 7% ` Simon Wright
@ 2018-09-03 9:42 0% ` Daniel Norber
0 siblings, 0 replies; 13+ results
From: Daniel Norber @ 2018-09-03 9:42 UTC (permalink / raw)
>
> > The standard ADA.Containers library is not prepared for Ravenscar use.
> > Even bounded versions, like Bounded_double_Linked_List have several
> > violations of Ravenscar, like Implicit_Heap_Allocation when i try to
> > instantiate it, and bind it.
>
> Which compiler are you using? I ask because I encountered this with GCC
> 4.9.1 & GNAT GPL 2014
>
> A workround (which allowed the package which revealed the problem to be
> built) was to explicitly state the restriction in the body:
>
> pragma Restrictions (No_Implicit_Heap_Allocations);
>
> with Ada.Containers.Bounded_Vectors;
>
> package body Containing is
>
> subtype Index is Natural range 0 .. 19;
> subtype Line is String (1 .. 20);
>
> package Line_Vectors
> is new Ada.Containers.Bounded_Vectors (Index_Type => Index,
> Element_Type => Line);
>
> making it a compiler error. Of course, that's not going to help with the
> unbounded Containers.
>
> > I've Found ADA95 booch ADT, but is not ready for the new ADA2012
> > aspects that let you write something like this:
> >
> > for E of List loop
> > E:= E + 1;
> > --E is a reference. That increases performance with big structures.
> > end loop;
>
> Not sure that would actually be a performance improvement.
>
> > Someone know a modern ADA2012 third party ADT that compliances
> > Ravenscar?. Seems like ADA forgot Ravenscar users when they released
> > 2005 containers.
>
> The list of restriction violations for Bounded_Doubly_Linked_Lists (from
> the ALI) for CE 2018 is
>
> RV NO_ACCESS_SUBPROGRAMS
> RV NO_DIRECT_BOOLEAN_OPERATORS
> RV NO_DISPATCH
> RV NO_EXCEPTIONS
> RV NO_FINALIZATION
> RV NO_NESTED_FINALIZATION
> RV NO_RECURSION
> RV NO_STANDARD_STORAGE_POOLS
> RV NO_STREAMS
> RV NO_UNCHECKED_ACCESS
> RV NO_DEFAULT_INITIALIZATION
> RV NO_DYNAMIC_SIZED_OBJECTS
> RV NO_IMPLEMENTATION_ATTRIBUTES
> RV NO_IMPLEMENTATION_PRAGMAS
> RV NO_IMPLICIT_ALIASING
> RV SPARK_05
>
> I don't think any of those are non-Ravenscar?
Thank you. The workaround you sayed works for me: Eplicit write the pragma Restrictions (No_Implicit_Heap_Allocations)
Yes, seems to be a problem of compiler becouse at the end no implicit heap allocation was used.
^ permalink raw reply [relevance 0%]
* Re: Where to find Ravenscar compatible ADT Containers (List, Vector, stack)
@ 2018-08-28 15:03 7% ` Simon Wright
2018-09-03 9:42 0% ` Daniel Norber
0 siblings, 1 reply; 13+ results
From: Simon Wright @ 2018-08-28 15:03 UTC (permalink / raw)
Daniel Norber <danielnorberto@gmail.com> writes:
> The standard ADA.Containers library is not prepared for Ravenscar use.
> Even bounded versions, like Bounded_double_Linked_List have several
> violations of Ravenscar, like Implicit_Heap_Allocation when i try to
> instantiate it, and bind it.
Which compiler are you using? I ask because I encountered this with GCC
4.9.1 & GNAT GPL 2014
A workround (which allowed the package which revealed the problem to be
built) was to explicitly state the restriction in the body:
pragma Restrictions (No_Implicit_Heap_Allocations);
with Ada.Containers.Bounded_Vectors;
package body Containing is
subtype Index is Natural range 0 .. 19;
subtype Line is String (1 .. 20);
package Line_Vectors
is new Ada.Containers.Bounded_Vectors (Index_Type => Index,
Element_Type => Line);
making it a compiler error. Of course, that's not going to help with the
unbounded Containers.
> I've Found ADA95 booch ADT, but is not ready for the new ADA2012
> aspects that let you write something like this:
>
> for E of List loop
> E:= E + 1;
> --E is a reference. That increases performance with big structures.
> end loop;
Not sure that would actually be a performance improvement.
> Someone know a modern ADA2012 third party ADT that compliances
> Ravenscar?. Seems like ADA forgot Ravenscar users when they released
> 2005 containers.
The list of restriction violations for Bounded_Doubly_Linked_Lists (from
the ALI) for CE 2018 is
RV NO_ACCESS_SUBPROGRAMS
RV NO_DIRECT_BOOLEAN_OPERATORS
RV NO_DISPATCH
RV NO_EXCEPTIONS
RV NO_FINALIZATION
RV NO_NESTED_FINALIZATION
RV NO_RECURSION
RV NO_STANDARD_STORAGE_POOLS
RV NO_STREAMS
RV NO_UNCHECKED_ACCESS
RV NO_DEFAULT_INITIALIZATION
RV NO_DYNAMIC_SIZED_OBJECTS
RV NO_IMPLEMENTATION_ATTRIBUTES
RV NO_IMPLEMENTATION_PRAGMAS
RV NO_IMPLICIT_ALIASING
RV SPARK_05
I don't think any of those are non-Ravenscar?
^ permalink raw reply [relevance 7%]
* ANN: Cortex GNAT RTS 20160522
@ 2016-05-22 14:20 4% Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2016-05-22 14:20 UTC (permalink / raw)
Available at
https://sourceforge.net/projects/cortex-gnat-rts/files/20160522/
This release includes GNAT Ada Run Time Systems (RTSs) based
on FreeRTOS (http://www.freertos.org) and targeted at boards with
Cortex-M3, -M4, -M4F MCUs (Arduino Due from http://www.arduino.org,
the STM32F4-series evaluation boards from STMicroelectronics at
http://www.st.com).
In each case, the board support for the RTS (configuration for size
and location of Flash, RAM; clock initialization; interrupt naming) is
in $RTS/adainclude. Support for the on-chip peripherals is also
included, in Ada spec files generated by SVD2Ada
(https://github.com/AdaCore/svd2ada).
The Ada source is either original or based on FSF GCC (mainly 4.9.1,
some later releases too).
(1) arduino-due is a Ravenscar-style RTOS based on FreeRTOS from
http://www.freertos.org for the Arduino Due.
See arduino-due/COPYING* for licensing terms.
On-chip peripheral support in atsam3x8e/.
Tests in test-arduino-due/.
(2) stm32f4 is a Ravenscar-style RTOS based on FreeRTOS from
http://www.freertos.org for the STM32F4-DISC* board.
See stm32f4/COPYING* for licensing terms.
On-chip peripheral support in stm32f40x/.
Tests in test-stm32f4/.
(3) stm32f429i is a Ravenscar-style RTOS based on FreeRTOS from
http://www.freertos.org for the STM32F429I-DISC* board.
See stm32f429i/COPYING* for licensing terms.
On-chip peripheral support in stm32f429x/.
Tests in test-stm32f429i/.
In this release,
* There is no longer any dependence on the STMicroelectronics'
STM32Cube package.
* The support for on-chip peripherals is limited to the
SVD2Ada-generated spec files. The AdaCore 'bareboard' software
(currently https://github.com/AdaCore/bareboard, but a name change
is under consideration) supports the STM32 line.
* Tasking no longer requires an explicit start
(https://sourceforge.net/p/cortex-gnat-rts/tickets/5/).
* Locking in interrupt-handling protected objects no longer inhibits
all interrupts, only those of equal or lower priority
(https://sourceforge.net/p/cortex-gnat-rts/tickets/18/).
The standard packages included (there are more, implementation-specific,
ones) are:
Ada
Ada.Containers
Ada.Containers.Bounded_Hashed_Maps
Ada.Containers.Bounded_Vectors
Ada.Exceptions
Ada.IO_Exceptions
Ada.Interrupts
Ada.Interrupts.Names
Ada.Iterator_Interfaces
Ada.Real_Time
Ada.Streams
Ada.Synchronous_Task_Control
Ada.Tags
Ada.Task_Identification
Interfaces
Interfaces.C
Interfaces.C.Strings
System
System.Assertions
System.Address_To_Access_Conversions
System.Storage_Elements
GNAT
GNAT.Source_Info
^ permalink raw reply [relevance 4%]
* ANN: Cortex GNAT RTS 20160314
@ 2016-03-14 17:42 6% Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2016-03-14 17:42 UTC (permalink / raw)
At https://sourceforge.net/projects/cortex-gnat-rts/files/20160314/.
This release includes
* an RTS for the Arduino Due, arduino-due, and a minimal BSP,
arduino-due-bsp.
* an RTS for the STM32F429I-DISCO, stm32f429i-disco-rtos, based on
STMicroelectronics' STM32Cube package and FreeRTOS, and a
corresponding partial BSP, stm32f429i-disco-bsp.
* an RTS for the STM32F429I-DISCO, stm32f429i, based on FreeRTOS, with
a set of peripheral definition packages created by SVD2Ada.
In this release,
* the Containers support generalized iteration ("for all E of C
loop"). Note, this is achieved by removing tampering checks. While
tampering errors are rare, it would be as well to check algorithms
using a fully-featured desktop compiler.
The standard packages included (there are more, implementation-specific,
ones) are:
Ada
Ada.Containers
Ada.Containers.Bounded_Hashed_Maps
Ada.Containers.Bounded_Vectors
Ada.Exceptions
Ada.IO_Exceptions
Ada.Interrupts
Ada.Interrupts.Names
Ada.Iterator_Interfaces
Ada.Real_Time
Ada.Streams
Ada.Synchronous_Task_Control
Ada.Tags
Ada.Task_Identification
Interfaces
Interfaces.C
Interfaces.C.Strings
System
System.Assertions
System.Address_To_Access_Conversions
System.Storage_Elements
GNAT
GNAT.Source_Info
^ permalink raw reply [relevance 6%]
* ANN: Cortex GNAT RTS 20160207
@ 2016-02-07 22:45 5% Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2016-02-07 22:45 UTC (permalink / raw)
This release is at Sourceforge[1].
This release includes an RTS for the Arduino Due, arduino-due, and a
minimal BSP, arduino-due-bsp.
For the STM32F429I-DISCO, there is one RTS, stm32f429i-disco-rtos, and
one BSP, stm32f429i-disco-bsp.
In this release,
* the Containers support generalized iteration ("for all E of C
loop"). Note, this is achieved by removing tampering checks. While
tampering errors are rare, it would be as well to check algorithms
using a fully-featured desktop compiler.
* FreeRTOS is configured to detect stack overflow (if it is detected,
the RTS loops inside vApplicationStackOverflowHook()).
The standard packages included (there are more,
implementation-specific, ones) are:
Ada
Ada.Containers
Ada.Containers.Bounded_Hashed_Maps
Ada.Containers.Bounded_Vectors
Ada.Exceptions
Ada.IO_Exceptions
Ada.Interrupts
Ada.Interrupts.Names
Ada.Iterator_Interfaces
Ada.Real_Time
Ada.Streams
Ada.Synchronous_Task_Control
Ada.Tags
Ada.Task_Identification
Interfaces
Interfaces.C
Interfaces.C.Strings
System
System.Assertions
System.Address_To_Access_Conversions
System.Storage_Elements
GNAT
GNAT.Source_Info
The software is supplied built with for debugging (-g) and with suitable
optimisation (-Og), using GNAT GPL 2015 on Mac OS X (it should work
out of the box with a Linux-hosted GNAT GPL 2015 cross-compiler, but
will need recompiling for another compiler version).
[1] https://sourceforge.net/projects/cortex-gnat-rts/files/20160207/
^ permalink raw reply [relevance 5%]
* ANN: STM32F4 GNAT Run Time Systems 20150406
@ 2015-04-06 17:27 5% Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2015-04-06 17:27 UTC (permalink / raw)
This is the fourth release of a GNAT RTS with the GCC Runtime Library
exception for STM32F4 boards.
(a) Tasking is implemented using FreeRTOS[3], which STMicroelectronics
provide a copy of with their BSP.
(b) I've included a BSP with minimal higher-level Ada interfaces to the
board hardware: clock, buttons, LEDs, LCD. In addition, there's a
machine-generated translation of STMicroelectronics' type-specific
header in stm32f429xx_h.ads, for low-level interfacing.
The release is at
https://sourceforge.net/projects/stm32f4-gnat-rts/files/20150406/.
From its README,
20150406
========
This release has been reorganised from previous releases.
There is one RTS, stm32f4-disco-rtos, and one BSP, stm32f4-disco-bsp.
Changes to the RTS from the previous release:
---------------------------------------------
These units (and supporting units) are now included:
Ada.Containers.Bounded_Vectors (*)
Ada.Containers.Bounded_Hashed_Maps (*)
Ada.Containers.Generic_Array_Sort
Ada.Containers.Generic_Constrained_Array_Sort
Ada.IO_Exceptions
Ada.Streams
Ada.Task_Identification
Interfaces.C
Interfaces.C.Strings
System.Assertions
(*) The new iterators (for some F in Foo loop ...) are NOT supported
(they require finalization).
The STM32F429I_Discovery tree has been moved to the BSP.
The following tickets have been fixed:
2 Protected spec hides package Interfaces
14 Last_Chance_Handler doesn’t stop tasking
Tasking is started by calling Start_FreeRTOS_Scheduler.
^ permalink raw reply [relevance 5%]
* Re: access-to-classwide has non-static size?
@ 2015-03-27 21:11 7% ` Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2015-03-27 21:11 UTC (permalink / raw)
sbelmont700@gmail.com writes:
> On Friday, March 27, 2015 at 10:18:51 AM UTC-4, Simon Wright wrote:
>>
>> I've worked out how to do it at elaboration now:
>>
>> The_Instance_Events : access Event_Queues.Vector :=
>> new Event_Queues.Vector (Capacity => Capacity);
>>
>> (compiled but not yet executed - more challenges still to overcome!)
>
> Don't forget the 2012 'bounded' vector, which I presume would be
> acceptable for your situation ("Bounded vector objects should be
> implemented without implicit pointers or dynamic allocation.")
It is the 2012 bounded vector.
There are issues;
with Ada.Containers.Bounded_Vectors;
package V is new Ada.Containers.Bounded_Vectors
(Positive, Some_Access_Type);
is treated by GNAT GPL 2014 and FSF GCC 4.9.1 as if it violated
No_Implicit_Heap_Allocation (and in fact the generated code does indeed
call _gnat_malloc()). GCC 5.0.0 doesn't do this.
Still having similar problems with a big object with POs and tasks. You
would think that if the compiler was going to generate a .ali which says
the unit violates a restriction then it would also generate a warning
message, so I guess this is another example of the same bug as above -
or similar, anyway.
^ permalink raw reply [relevance 7%]
* Re: access-to-classwide has non-static size?
2015-03-27 8:26 5% access-to-classwide has non-static size? Simon Wright
@ 2015-03-27 8:49 0% ` Simon Wright
1 sibling, 0 replies; 13+ results
From: Simon Wright @ 2015-03-27 8:49 UTC (permalink / raw)
Simon Wright <simon@pushface.org> writes:
> type Event_Base is abstract tagged limited private;
> type Event_P is access all Event_Base'Class;
>
> ...
>
> package Event_Queues is new Ada.Containers.Bounded_Vectors
> (Index_Type => Positive,
> Element_Type => Event_P);
>
> ...
>
> protected type Dispatchable_Events is
> ...
> private
> ...
> The_Events : Event_Queues.Vector (Capacity => Capacity);
>
> and when compiling with the Ravenscar profile (GNAT GPL 2014, GCC 4.9.1,
> GCC 5.0.0 20150208) the compiler says
>
> warning: component has non-static size
> warning: creation of protected object of type "Dispatchable_Events"
> will violate restriction No_Implicit_Heap_Allocations
>
> Is this (the non-static size part!) right?
If I declare an Event_Queue.Vector at library level rather than in a PO
I don't get the warnings. So this is a GNAT problem, maybe?
^ permalink raw reply [relevance 0%]
* access-to-classwide has non-static size?
@ 2015-03-27 8:26 5% Simon Wright
2015-03-27 8:49 0% ` Simon Wright
0 siblings, 2 replies; 13+ results
From: Simon Wright @ 2015-03-27 8:26 UTC (permalink / raw)
I'm creating a PO which has a member which is a bounded vector of
pointer-to-classwide,
type Event_Base is abstract tagged limited private;
type Event_P is access all Event_Base'Class;
...
package Event_Queues is new Ada.Containers.Bounded_Vectors
(Index_Type => Positive,
Element_Type => Event_P);
...
protected type Dispatchable_Events is
...
private
...
The_Events : Event_Queues.Vector (Capacity => Capacity);
and when compiling with the Ravenscar profile (GNAT GPL 2014, GCC 4.9.1,
GCC 5.0.0 20150208) the compiler says
warning: component has non-static size
warning: creation of protected object of type "Dispatchable_Events"
will violate restriction No_Implicit_Heap_Allocations
Is this (the non-static size part!) right?
I tried declaring Event_P "with Size => 64"; no difference.
I think, studying the output of -gnatR, a pointer-to-classwide is a thin
pointer, i.e. 4 bytes on arm-eabi).
^ permalink raw reply [relevance 5%]
* [Bounded] Vectors, reference types, and the secondary stack
@ 2015-02-15 16:21 5% Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2015-02-15 16:21 UTC (permalink / raw)
It turns out that (GCC 4.9.1) that if you have
package Interval_Containers
is new Ada.Containers.Bounded_Vectors
(Index_Type => Natural,
Element_Type => Ada.Real_Time.Time_Span,
"=" => Ada.Real_Time."=");
Intervals : Interval_Containers.Vector (5);
and then
Intervals.Insert_Space (0, 5);
Intervals (0) := Ada.Real_Time.Milliseconds (50);
then
function Reference
(Container : aliased in out Vector;
Index : Index_Type) return Reference_Type;
returns its result on the secondary stack!
Why would it need to do that? given the (private) definition
type Reference_Type
(Element : not null access Element_Type) is null record;
You ask why I would care. Well, in my STM32F4 RTS the environment task,
in which elaboration happens, isn't actually a task, and doesn't (yet)
have a secondary stack.
The reason it's not a task is that the way to kick off the FreeRTOS
sceduler is to call FreeRTOS.Tasks.Start_Scheduler (aka
vTaskStartScheduler()), which doesn't return unless the scheduler can't
be started; and I haven't found a way to get this behaviour into the
startup code generated by gnatbind, so the poor user has to call it at
the end of their main program.
^ permalink raw reply [relevance 5%]
* Re: Containers on small systems
@ 2015-02-06 21:54 5% ` Simon Wright
0 siblings, 0 replies; 13+ results
From: Simon Wright @ 2015-02-06 21:54 UTC (permalink / raw)
Simon Wright <simon@pushface.org> writes:
> Haven't tried Containers yet
I think Ada.Containers.Bounded_* is a non-starter until GCC 5 comes
along (or GNAT GPL 2015).
My first attempt was to allow finalization.
This isn't insuperable; I managed to get the Containers package to
compile (though I can see why AdaCore have No_Finalization in their
STM32F4 RTS! Crikey!)
Unfortunately, when it came to bind a user program, it turned out that
gnatbind doesn't understand this particular situation; it thinks that if
you have finalization, you need to finalize at the end of the program;
and it gets confused to the point that the binder-generated main program
won't compile.
So I backed those changes out and hacked out all the modern Iterator
stuff from Ada.Containers.Bounded_Vectors (but not the modern Indexing
features).
Unfortunately, when it came to bind a user program, gnatbind thought
that it was violating No_Implicit_Heap_Allocations. I couldn't find any;
it turns out that both GCC 4.9.1 and GNAT GPL 2014 insert a spurious
"RV NO_IMPLICIT_HEAP_ALLOCATIONS" in the .ali file (RV => this unit
violates the named restriction, so the bind has to fail if the
restriction is actually imposed).
GCC 5.0.0 20141228 doesn't have this problem.
^ permalink raw reply [relevance 5%]
* Re: API design considerations - variable-length array in record type
2012-10-09 3:10 5% ` Stephen Leake
@ 2012-10-09 7:47 0% ` Maciej Sobczak
0 siblings, 0 replies; 13+ results
From: Maciej Sobczak @ 2012-10-09 7:47 UTC (permalink / raw)
W dniu wtorek, 9 października 2012 05:10:49 UTC+2 użytkownik Stephen Leake napisał:
> Ada.Containers.Bounded_Vectors meets these requirements.
No, because there is no predefined upper bound on the length of array.
I have to admit that the idea with Indefinite_Holders looks the most attractive and the essential parts of this solution are very easy to implement.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
^ permalink raw reply [relevance 0%]
* Re: API design considerations - variable-length array in record type
@ 2012-10-09 3:10 5% ` Stephen Leake
2012-10-09 7:47 0% ` Maciej Sobczak
0 siblings, 1 reply; 13+ results
From: Stephen Leake @ 2012-10-09 3:10 UTC (permalink / raw)
Maciej Sobczak <see.my.homepage@gmail.com> writes:
> Hi,
>
> I am working on the API design where there is a need for a record type
> with field(s) that are arrays of some predefined type (say, Integer).
> So, an example record type might look like this:
>
> type R is record
> X : Integer;
> Y : Unbounded_String;
> Z : Array_Of_Integers_That_We_Talk_About_Here;
> end record;
>
> A straightforward choice is a predefined instantiation of
> Ada.Containers.Vectors for Integer and this would be probably the
> least surprising, especially in the context of Y : Unbounded_String,
> but at the same time I'm open to consider some more lightweight
> alternatives.
> The problem is - any other alternative I can think of leads to the
> complication of API in the form of introducing
> Ada.Finalization.Controlled to the picture.
>
> Do you have some favourite solutions?
Ada.Containers.Bounded_Vectors meets these requirements.
--
-- Stephe
^ permalink raw reply [relevance 5%]
Results 1-13 of 13 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2012-10-08 9:03 API design considerations - variable-length array in record type Maciej Sobczak
2012-10-09 3:10 5% ` Stephen Leake
2012-10-09 7:47 0% ` Maciej Sobczak
2015-01-04 19:43 What is the best license to use for open source software? Hubert
2015-01-04 20:50 ` David Botton
2015-01-04 21:27 ` Ludovic Brenta
2015-01-04 22:13 ` David Botton
2015-01-04 23:14 ` Ludovic Brenta
2015-01-05 0:56 ` David Botton
2015-01-05 1:20 ` Ludovic Brenta
2015-01-05 2:28 ` David Botton
2015-01-05 11:24 ` GNAT GPL is not shareware (was: Re: What is the best license to use for open source software?) Dirk Heinrichs
2015-01-05 18:43 ` GNAT GPL is not shareware Jeffrey Carter
2015-01-30 11:48 ` Marius Amado-Alves
2015-01-30 12:12 ` Björn Lundin
2015-01-30 13:50 ` Simon Wright
2015-01-30 17:13 ` Jeffrey Carter
2015-01-30 17:34 ` Simon Wright
2015-01-30 18:21 ` Jeffrey Carter
2015-01-30 18:49 ` Simon Wright
2015-01-30 19:46 ` Randy Brukardt
2015-02-01 21:17 ` Containers on small systems (Was: GNAT GPL is not shareware) Simon Wright
2015-02-05 9:40 ` Containers on small systems Simon Wright
2015-02-06 21:54 5% ` Simon Wright
2015-02-15 16:21 5% [Bounded] Vectors, reference types, and the secondary stack Simon Wright
2015-03-27 8:26 5% access-to-classwide has non-static size? Simon Wright
2015-03-27 8:46 ` J-P. Rosen
2015-03-27 8:53 ` Simon Wright
2015-03-27 9:13 ` J-P. Rosen
2015-03-27 14:18 ` Simon Wright
2015-03-27 15:51 ` sbelmont700
2015-03-27 21:11 7% ` Simon Wright
2015-03-27 8:49 0% ` Simon Wright
2015-04-06 17:27 5% ANN: STM32F4 GNAT Run Time Systems 20150406 Simon Wright
2016-02-07 22:45 5% ANN: Cortex GNAT RTS 20160207 Simon Wright
2016-03-14 17:42 6% ANN: Cortex GNAT RTS 20160314 Simon Wright
2016-05-22 14:20 4% ANN: Cortex GNAT RTS 20160522 Simon Wright
2018-08-28 12:06 Where to find Ravenscar compatible ADT Containers (List, Vector, stack) Daniel Norber
2018-08-28 15:03 7% ` Simon Wright
2018-09-03 9:42 0% ` Daniel Norber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox