From Newsgroup: comp.lang.ada
Bonjour !
TLALOC builds much more quickly than an alternative toolchain.
GNU time and TLALOC disagree . . .
time ./a83.sh ./ ./dis_bonjour.adb W
ada83 compiling ././dis_bonjour.adb ..... Ok 11 msec
real 0m0.017s
user 0m0.007s
sys 0m0.009s
HTTPS://GitHub.com/ViMoBr/Ada-83-TLALOC
has
"First Program Uee"
-
maybe you mean
"First Program Use".
HTTPS://GitHub.com/ViMoBr/Ada-83-TLALOC
has
"french"
instead de
"French".
May I suggest replacing
") this command compile and create a .FINC macro text"
by
"). This command compiles and creates a .FINC macro text"
?
May I suggest replacing
"create a .fas macro header file in ADA__LIB also"
by
"creates a .fas macro header file in ADA__LIB also"
?
("Create" is a verb in the imperative mood whereas "creates" is a verb
in the indicative mood.)
ViMoBr <
[email protected]d> wrote: |------------------------------------------|
|"TLALOC is nonetheless a capable compiler"| |------------------------------------------|
Pardon ! TLALOC is unusably buggy.
It did succeed to build non-buggy DIS_BONJOUR and one non-buggy
program by me, but it failed to build non-buggy minor
variants.
Though TLALOC is an Ada-83 compiler, I dared to attempt a non-Ada-83
file. TLALOC showed an error message which was followed by
" ..... Ok 3 msec".
"Ok"
is not the most appropriate report for an illegal code!
unload_mdat is a non-Ada-83 program (
HTTP://Gloucester.Insomnia247.NL/FFMPEG_etc/unload_mdat/
) because it has
with Ada.Command_Line;
etc. So for TLALOC I slightly modified unload_mdat by hardcoding
its command-line parameter (i.e. an input filename).
This did succeed, but many later attempts to run any variant de
unload_mdat built by TLALOC (including this formerly successful
version) failed.
TLALOC failed to produce
TLALOC_DOES_NOT_CLEANLY_REBUILD.FINC
and
TLALOC_FAILS_TO_CLEANLY_REBUILD.FINC
and
SHORT.FINC
de
TLALOC_does_not_cleanly_rebuild.Ada
and
TLALOC_fails_to_cleanly_rebuild.adb
and
short.adb
which are almost identical to the file by me that it did correctly
build.
E.g.
./a83.sh ./ ./short.adb W
ada83 compiling ././short.adb ..... Ok 22 msec
./a83.sh ./ ./short.adb B
TLALOC/Ada 83 - ./ADA__LIB/SHORT.fas created
cd ./ADA__LIB
./fasmg ./SHORT.fas ./SHORT
flat assembler version g.kd3c
spec 0x00000000004000DB
spec 0x00000000004000DB
spec 0x00000000004007F4
var elab NUL 0x00000000004007F4
disp 0x00000000000000A0
var elab SOH 0x0000000000400817
disp 0x00000000000000A1
var elab STX 0x000000000040083A
disp 0x00000000000000A2
var elab ETX 0x000000000040085D
disp 0x00000000000000A3
var elab EOT 0x0000000000400880
disp 0x00000000000000A4
var elab ENQ 0x00000000004008A3
disp 0x00000000000000A5
var elab ACK 0x00000000004008C6
disp 0x00000000000000A6
var elab BEL 0x00000000004008E9
disp 0x00000000000000A7
var elab BS 0x000000000040090C
disp 0x00000000000000A8
var elab HT 0x000000000040092F
disp 0x00000000000000A9
var elab LF 0x0000000000400952
disp 0x00000000000000AA
var elab VT 0x0000000000400975
disp 0x00000000000000AB
var elab FF 0x0000000000400998
disp 0x00000000000000AC
var elab CR 0x00000000004009BB
disp 0x00000000000000AD
var elab SO 0x00000000004009DE
disp 0x00000000000000AE
var elab SI 0x0000000000400A01
disp 0x00000000000000AF
var elab DLE 0x0000000000400A24
disp 0x00000000000000B0
var elab DC1 0x0000000000400A47
disp 0x00000000000000B1
var elab DC2 0x0000000000400A6A
disp 0x00000000000000B2
var elab DC3 0x0000000000400A8D
disp 0x00000000000000B3
var elab DC4 0x0000000000400AB0
disp 0x00000000000000B4
var elab NAK 0x0000000000400AD3
disp 0x00000000000000B5
var elab SYN 0x0000000000400AF6
disp 0x00000000000000B6
var elab ETB 0x0000000000400B19
disp 0x00000000000000B7
var elab CAN 0x0000000000400B3C
disp 0x00000000000000B8
var elab EM 0x0000000000400B5F
disp 0x00000000000000B9
var elab SUB 0x0000000000400B82
disp 0x00000000000000BA
var elab ESC 0x0000000000400BA5
disp 0x00000000000000BB
var elab FS 0x0000000000400BC8
disp 0x00000000000000BC
var elab GS 0x0000000000400BEB
disp 0x00000000000000BD
var elab RS 0x0000000000400C0E
disp 0x00000000000000BE
var elab US 0x0000000000400C31
disp 0x00000000000000BF
var elab DEL 0x0000000000400C54
disp 0x00000000000000C0
var elab EXCLAM 0x0000000000400C77
disp 0x00000000000000C1
var elab SHARP 0x0000000000400C9A
disp 0x00000000000000C2
var elab PERCENT 0x0000000000400CBD
disp 0x00000000000000C3
var elab COLON 0x0000000000400CE0
disp 0x00000000000000C4
var elab QUERY 0x0000000000400D03
disp 0x00000000000000C5
var elab L_BRACKET 0x0000000000400D26
disp 0x00000000000000C6
var elab R_BRACKET 0x0000000000400D49
disp 0x00000000000000C7
var elab UNDERLINE 0x0000000000400D6C
disp 0x00000000000000C8
var elab L_BRACE 0x0000000000400D8F
disp 0x00000000000000C9
var elab R_BRACE 0x0000000000400DB2
disp 0x00000000000000CA
var elab QUOTATION 0x0000000000400DD5
disp 0x00000000000000CB
var elab DOLLAR 0x0000000000400DF8
disp 0x00000000000000CC
var elab AMPERSAND 0x0000000000400E1B
disp 0x00000000000000CD
var elab SEMICOLON 0x0000000000400E3E
disp 0x00000000000000CE
var elab AT_SIGN 0x0000000000400E61
disp 0x00000000000000CF
var elab BACK_SLASH 0x0000000000400E84
disp 0x00000000000000D0
var elab CIRCUMFLEX 0x0000000000400EA7
disp 0x00000000000000D1
var elab GRAVE 0x0000000000400ECA
disp 0x00000000000000D2
var elab BAR 0x0000000000400EED
disp 0x00000000000000D3
var elab TILDE 0x0000000000400F10
disp 0x00000000000000D4
var elab LC_A 0x0000000000400F33
disp 0x00000000000000D5
var elab LC_B 0x0000000000400F56
disp 0x00000000000000D6
var elab LC_C 0x0000000000400F79
disp 0x00000000000000D7
var elab LC_D 0x0000000000400F9C
disp 0x00000000000000D8
var elab LC_E 0x0000000000400FBF
disp 0x00000000000000D9
var elab LC_F 0x0000000000400FE2
disp 0x00000000000000DA
var elab LC_G 0x0000000000401005
disp 0x00000000000000DB
var elab LC_H 0x0000000000401028
disp 0x00000000000000DC
var elab LC_I 0x000000000040104B
disp 0x00000000000000DD
var elab LC_J 0x000000000040106E
disp 0x00000000000000DE
var elab LC_K 0x0000000000401091
disp 0x00000000000000DF
var elab LC_L 0x00000000004010B4
disp 0x00000000000000E0
var elab LC_M 0x00000000004010D7
disp 0x00000000000000E1
var elab LC_N 0x00000000004010FA
disp 0x00000000000000E2
var elab LC_O 0x000000000040111D
disp 0x00000000000000E3
var elab LC_P 0x0000000000401140
disp 0x00000000000000E4
var elab LC_Q 0x0000000000401163
disp 0x00000000000000E5
var elab LC_R 0x0000000000401186
disp 0x00000000000000E6
var elab LC_S 0x00000000004011A9
disp 0x00000000000000E7
var elab LC_T 0x00000000004011CC
disp 0x00000000000000E8
var elab LC_U 0x00000000004011EF
disp 0x00000000000000E9
var elab LC_V 0x0000000000401212
disp 0x00000000000000EA
var elab LC_W 0x0000000000401235
disp 0x00000000000000EB
var elab LC_X 0x0000000000401258
disp 0x00000000000000EC
var elab LC_Y 0x000000000040127B
disp 0x00000000000000ED
var elab LC_Z 0x000000000040129E
disp 0x00000000000000EE
var elab EXCEPTIONS_TOP_CTX 0x000000000040185C
disp 0x00000000000001F0
var elab EXCEPTIONS_CURRENT 0x000000000040185C
disp 0x00000000000001F8
var elab EXC_CTX0 0x0000000000401AB9
disp 0x0000000000000268
./SHORT.fas [14]:
include 'SHORT.FINC'
Processed: include 'SHORT.FINC'
Error: source file 'SHORT.FINC' not found.
rm restricted_version_of_unload_mdat_by_TLALOC UNLOAD_MDAT.fas UNLOAD_MDAT.DCL UNLOAD_MDAT.FINC
is not sufficient to rebuild cleanly.
A version having this statement -
Octet_Io.Open(File => Input, Mode => Octet_Io.In_file, Name => "2025-09-14k_Gearan_i_gcoinne_Garda_MH254__2025_09_14_18_47_53.m4a");
- crashed:
EXCEPTION NON RATTRAPEE : NAME_ERROR
Instead, a different version demanding a different name had not
originally crashed via the same failure manner -
Octet_Io.Open(File => Input, Mode => Octet_Io.In_file, Name => "2025-10-23d_agallamh_le_Fiosru__2025_10_23_09_44_53.m4a");
but a later attempt to run an originally running executable has crashed!
I modified unload_mdat.adb to demand
Octet_Io.Open(File => Input, Mode => Octet_Io.In_file, Name => "Gearan_i_gcoinne_Garda_MH254.m4a");
but it also suffered
EXCEPTION NON RATTRAPEE : NAME_ERROR
TLALOC built an executable which is orders of magnitude slower than
fast executables which are built by a different Ada compiler.
E.g. a version de unload_mdat processing a 241M input file (
HTTP://Gloucester.Insomnia247.NL/gardai/Where_are_you_from/2025-10-23d_agallamh_le_Fiosru__2025_10_23_09_44_53.m4a
) consumed much memory and time (e.g. top reported
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1451230 glouces+ 20 0 16.1g 5.6g 32 R 100.0 4.5 14:48.36
) before becoming killed at under 32% de would-be completion.
date ; time ./restricted_version_of_unload_mdat_by_TLALOC ; date
Thu Aug 13 01:40:24 AM CEST 2026
unload_mdat by Nicholas Collin Paul de Gloucester copies a (probably
defective) MPEG-4 audio file's contents excluding its (unneeded,
probably defective) mdat header to raw.m4a. This is useful e.g. [. . .]
Example usage:
unload_mdat input.M4A
faad -a newname.m4a raw.m4a
ffmpeg -i newname.m4a -c:a aac Playable_audio_MPEG-4_final_output.M4A
Killed
real 15m46.070s
user 0m48.488s
sys 14m55.718s
Thu Aug 13 01:56:10 AM CEST 2026
Sincères salutations.
Nicolas Paul Colin de Glocester
(S.
HTTP://Gloucester.Insomnia247.NL/ fuer Kontaktdaten!)
--- Synchronet 3.22a-Linux NewsLink 1.2