• R/O
  • SSH

PAF: Repository summary

New main repository

Recent Commits RSS

Rev. Time Author Message
36a147b87f3f 2023-01-08 19:22:23 Ivan Levashev 卜根 <bu_ tip Type information: initialization
6a2f7c9bd27b 2023-01-08 16:29:12 Ivan Levashev 卜根 <bu_ Type information: default character is space
3eacbc3fca97 2023-01-08 14:41:03 Ivan Levashev 卜根 <bu_ Type information: is zeroed memory a default for element ...
4e10d7aef35a 2023-01-08 13:42:38 Ivan Levashev 卜根 <bu_ Type information with tests, memory operations tests
65d2a6a85fa4 2023-01-08 08:00:03 Ivan Levashev 卜根 <bu_ Big reallocation bug fix: only copy minimum of old and ne...
9bc371b2bd16 2023-01-07 15:48:06 Ivan Levashev 卜根 <bu_ Reallocatable storage pool: classwide declaration of defa...
9fb80ea5a738 2023-01-06 11:23:59 Ivan Levashev 卜根 <bu_ Reallocatable and lightweight storage pool for vectors st...
e6c4ee6f8a55 2022-09-06 02:38:29 Ivan Levashev 卜根 <bu_ GCC atomic primitives
730ef9db090e 2022-09-03 17:52:21 Ivan Levashev 卜根 <bu_ Make PAF.Atomic_Operations compiler-specific. Alter Retai...
087386c54cde 2022-06-17 13:57:47 Ivan Levashev 卜根 <bu_ Convert PAF.Containers.Vectors_Test into Ahven test

Recently edited Tags

Name Rev. Time Author
tip 36a147b87f3f 2023-01-08 19:22:23 Ivan Levashev 卜根 <bu_


Name Rev. Time Author Message
default 36a147b87f3f 2023-01-08 19:22:23 Ivan Levashev 卜根 <bu_ Type information: initializ...


Portable Assembler Framework

An Ada 95 compatible library for C source text manipulations

== Rationale ==

There are tons on C parsers, but none of them is written in Ada. The most 
close stuff is CIL, written in OCaml and Perl, thus quite painfully portable. 
Windows does not support shebang and cannot execute Perl script as a real 
program, so CIL Perl scripts are not easy to use on Windows. Also, old Perl 
is required, hard to obtain. Also, there were issues with OCaml4, so OCaml3 
is required, which is also hard to obtain. Hard to make it all work.

PAF, backed by AdaMagic Ada-to-C translator, should be more easy to handle.

PAF is now in its very inception.

== Compatibility ==

Ada standard: supports Ada 95 / Ada 2012.
Compilers: GNAT is supported, AdaMagic is planned.
Targets: Windows is supported (x86 + x86_64), others are planned.

It is desired to have compatibility with AdaMagic. AdaMagic only supports 
Ada 95. But its build tools are less mature. So meanwhile AdaMagic is not 
actively used in development. But then there has to be a replacement to 
enforce Ada 95 compatibility. GNAT GPL 2017 had an option to force Ada 95 
compliance. GNAT Community 2018 and higher ones are missing this option. 
The following combinations are used:
 GNAT 2017 GPL       Windows x86    Ada 95
 GNAT 2017 GPL       Windows x86    Ada 2012
 GNAT Community 2021 Windows x86_64 Ada 2012

This way:
* Ada 95 compatibility is checked
* x86/x86_64 portability is checked

== Building ==

Download Ahven and alter PAF.Build_Run.cmd to match your system.

PAF.Build_Run.cmd sets Ahven PATH which is expected to be ../ahven
Show on old repository browser