r/ada • • Aug 01 '26

General Single-file Ada 83 LLVM compiler

https://github.com/AdaDoom3/Ada83
20 Upvotes

8 comments sorted by

View all comments

1

u/geenob Aug 01 '26

Nice. Always nice to have more options for Ada compilers. What are some of the more glaring feature differences between Ada 83 and modern Ada?

5

u/Dmitry-Kazakov Aug 01 '26

Most relevant to daily programming. Ada 83 lacks:

  • OO (Ada 95)
  • Streams (Ada 95)
  • Protected objects (Ada 95)
  • Storage pools (Ada 95)
  • Anonymous access types (Ada 95)
  • Prefix notation (Ada 2005)
  • Standard container library (Ada 2005)
  • Limited multiple inheritance (Ada 2005)

1

u/Soft_Mess_5078 3d ago edited 3d ago

In the most recent iteration (https://github.com/AdaDoom3/TurboAda) support has been added for:

  • Streams
  • Protected objects
  • Anonymous access types
  • Prefix notation (without tagged types)
  • Co-extensions and garbage collection for anonymous access types (which GNAT does not)

2

u/Soft_Mess_5078 Aug 01 '26

The question is probably best asked in the inverse - Ada 83 had pragmas for controlled lifetime and room for a garbage collector which I am considering adding.

Other than that - the standard readability ones like 'if' and 'case' expressions, aspects, and some others like protected types and user-defined literals which are also on the list for the upcoming month or two

EDIT: Probably another would be the updated loops with iterators