1

Czołem Atarowcy!

Ponieważ mój dotychczasowy Mad-Pascal to 1.7.1, postanowiłem sobie go odświeżyć. Sciągam najnosze źródełka z gita... łyczek kawki... i make... błąd!
Myślę sobie, ok, wejdziemy do src i skompilujemy z ręki, a tu znowu... zonk! Na dwóch róznych systemach z działającym fpc, to samo (Fedora i Arch Linux):

 % fpc -MDelphi -vh -O3 mp.pas

Hint: Start of reading config file /etc/fpc.cfg
Hint: End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.2.2 [2024/05/01] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling mp.pas
Compiling Common.pas
Compiling CommonTypes.pas
Compiling CompilerTypes.pas
Compiling DataTypes.pas
Compiling FileIO.pas
FileIO.pas(269,15) Warning: An inherited method is hidden by "Assign(const AnsiString);"
FileIO.pas(270,15) Warning: An inherited method is hidden by "Close;"
FileIO.pas(271,15) Warning: An inherited method is hidden by "Erase;"
FileIO.pas(272,14) Warning: An inherited method is hidden by "EOF:Boolean;"
FileIO.pas(273,15) Warning: An inherited method is hidden by "Reset;"
FileIO.pas(274,15) Warning: An inherited method is hidden by "Rewrite;"
generics.collections.pas(1186,20) Note: Call to subroutine "function TEnumerable<System.AnsiString>.GetEnumerator:TEnumerator$1<SYSTEM.AnsiString>;" marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine "function TEnumerable<FileIO.TPair<System.AnsiString,System.AnsiString>>.GetEnumerator:TEnumerator$1<FILEIO.TPair$2<SYSTEM.AnsiString,SYSTEM.AnsiString>>;" marked as inline is not inlined
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc897DEE08" with abstract method "DoMoveNext"
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(<TEnumerator$1$crc6824777A>):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc897DEE08" with abstract method "GetCurrent"
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(<TCustomDictionaryEnumerator$4$crc897DEE08>;<var AnsiString>):AnsiString;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc897DEE08" with abstract method "DoMoveNext"
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(<TEnumerator$1$crc6824777A>):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc897DEE08" with abstract method "GetCurrent"
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(<TCustomDictionaryEnumerator$4$crc897DEE08>;<var AnsiString>):AnsiString;
generics.dictionariesh.inc(286,33) Hint: Parameter "AFrom" not used
generics.dictionariesh.inc(286,40) Hint: Parameter "ATo" not used
FileIO.pas(199,31) Hint: Parameter "w" not used
FileIO.pas(806,11) Hint: Local variable "c" does not seem to be initialized
generics.collections.pas(144,52) Note: Private type "TCustomPointersEnumerator$2<SYSTEM.AnsiString,FILEIO.TCustomList$1$crc6824777A.PT>.T" never used
generics.collections.pas(144,52) Note: Private type "TCustomPointersEnumerator$2<FILEIO.TPair$2<SYSTEM.AnsiString,SYSTEM.AnsiString>,FILEIO.TCustomList$1$crcE101151F.PT>.T" never used
FileIO.pas(9,16) Hint: Unit "CommonTypes" not used in FileIO
Compiling Tokens.pas
generics.collections.pas(1186,20) Note: Call to subroutine "function TEnumerable<System.AnsiString>.GetEnumerator:TEnumerator$1<SYSTEM.AnsiString>;" marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine "function TEnumerable<Tokens.TTokenKind>.GetEnumerator:TEnumerator$1<TOKENS.TTokenKind>;" marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine "function TEnumerable<Tokens.TPair<System.AnsiString,Tokens.TTokenKind>>.GetEnumerator:TEnumerator$1<TOKENS.TPair$2<SYSTEM.AnsiString,TOKENS.TTokenKind>>;" marked as inline is not inlined
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc8EA04C88" with abstract method "DoMoveNext"
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(<TEnumerator$1$crc3746980C>):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc8EA04C88" with abstract method "GetCurrent"
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(<TCustomDictionaryEnumerator$4$crc8EA04C88>):<enumeration type>;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc1E1490C8" with abstract method "DoMoveNext"
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(<TEnumerator$1$crc6824777A>):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc1E1490C8" with abstract method "GetCurrent"
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(<TCustomDictionaryEnumerator$4$crc1E1490C8>;<var AnsiString>):AnsiString;
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
Hint: Parameter "AFrom" not used
Hint: Parameter "ATo" not used
generics.collections.pas(144,52) Note: Private type "TCustomPointersEnumerator$2<SYSTEM.AnsiString,TOKENS.TCustomList$1$crc6824777A.PT>.T" never used
generics.collections.pas(144,52) Note: Private type "TCustomPointersEnumerator$2<TOKENS.TTokenKind,TOKENS.TCustomList$1$crc3746980C.PT>.T" never used
generics.collections.pas(144,52) Note: Private type "TCustomPointersEnumerator$2<TOKENS.TPair$2<SYSTEM.AnsiString,TOKENS.TTokenKind>,TOKENS.TCustomList$1$crc602E2D29.PT>.T" never used
CompilerTypes.pas(872,1) Warning: function result variable of a managed type does not seem to be initialized
CompilerTypes.pas(284,5) Note: Private field "TTypeList.Count" is never used
Compiling Memory.pas
Compiling StringUtilities.pas
StringUtilities.pas(77,3) Note: Local variable "i" is assigned but never used
Compiling Targets.pas
Compiling Messages.pas
Compiling Console.pas
Compiling Utilities.pas
Common.pas(190,20) Hint: Parameter "message" not used
Common.pas(180,32) Hint: Parameter "tokenIndex" not used
Compiling Compiler.pas
Compiling Assembler.pas
Assembler.pas(87,3) Hint: Local const "msg" is not used
Assembler.pas(107,3) Hint: Local const "msg" is not used
Compiling CommonIO.pas
Compiling Debugger.pas
Compiling Parser.pas
Compiling Numbers.pas
Numbers.pas(26,23) Hint: Parameter "valType" not used
Compiling Debugger.pas
Parser.pas(1828,32) Warning: Local variable "identifier" does not seem to be initialized
Parser.pas(1828,3) Warning: Local variable "Block" does not seem to be initialized
Compiling MathEvaluate.pas
Compiling Optimizer.pas
Compiling Optimize.pas
Compiling OptimizeTemporary.pas
Compiling OptimizerTypes.pas
Optimize.pas(461,27) Hint: Parameter "context" not used
opt_STACK_AX_CX.inc(231,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(232,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(233,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(236,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(237,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(239,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(240,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(243,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(244,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(246,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(248,35) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(272,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(273,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(274,9) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(275,9) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(276,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(279,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(280,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(282,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(283,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(286,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(287,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(289,2) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(291,35) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(501,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(502,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(503,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(504,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(505,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(506,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(508,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(509,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(510,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(511,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(512,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(513,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(516,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(517,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(518,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(519,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(520,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(521,18) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(552,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(553,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(554,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(555,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(556,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(557,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(559,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(560,3) Error: Identifier not found "listing_tmp"
opt_STACK_AX_CX.inc(560,3) Fatal: There were 50 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

.. może ktoś to przewalczył, zanim zacznę wyarzać otwarte drzwi? ;-)

-U

Co to jest? Co to jest?.... To przecież... Atari! :)

2 Ostatnio edytowany przez tebe (2026-01-24 19:17:16)

https://github.com/tebe6502/Mad-Pascal/ … tag/v1.7.6

/origin/

p.s.
to co próbowałeś skompilować to wersja JAC!-a

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

3

tebe napisał/a:

https://github.com/tebe6502/Mad-Pascal/ … tag/v1.7.6

/origin/

p.s.
to co próbowałeś skompilować to wersja JAC!-a

Poważnie? Ściągałem przez: gh repo clone tebe6502/Mad-Pascal


Ale ok, pobrałem z powyżeszego linku i...
Tu jest jeszcxe ciekawiej... nie ma ./src, co daje radosne:

$ make
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[1]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[2]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[3]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[4]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[5]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
cd src ; make
/bin/sh: linia 1: cd: src: Nie ma takiego pliku ani katalogu
make[6]: Wejście do katalogu '/home/[...]/Mad-Pascal-1.7.6'
[...]

... sprawdziłem oba archiwa (*.tar.gz i *.zip):

Co to jest? Co to jest?.... To przecież... Atari! :)

4 Ostatnio edytowany przez tebe (2026-01-24 21:34:17)

- Releases -> Mad Pascal 1.7.6
- katalog ORIGIN, nie ma katalogu SRC jest ORIGIN

Post's attachments

origin.png 10.42 kb, nikt jeszcze nie pobierał tego pliku. 

release.png 135.55 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

5

Potwierdzam problem.

Blad w Makefile:

all:
    cd src ; make

test-setup:
    cd test ; make setup

test:
    cd test ; make test

clean:
    cd src ; make clean
    cd test ; make clean

.PHONY: all test test-setup clean

Jak sam Napisales nie ma katalogu src a jest origin.

Drugi problem, w katalogu origin brakuje pliku Makefile.

willy@5820XE:~/madstemp/Mad-Pascal-1.7.6$ cd origin/
willy@5820XE:~/madstemp/Mad-Pascal-1.7.6/origin$ la -la
total 1036
drwxrwxr-x  4 willy willy   4096 Jan 20 17:28 .
drwxrwxr-x 15 willy willy   4096 Jan 25 10:31 ..
-rw-rw-r--  1 willy willy  53874 Jan 20 17:28 CHANGELOG
-rw-rw-r--  1 willy willy  36596 Jan 20 17:28 Common.pas
-rw-rw-r--  1 willy willy 617098 Jan 20 17:28 Compiler.pas
-rw-rw-r--  1 willy willy    192 Jan 20 17:28 define.inc
-rw-rw-r--  1 willy willy   2898 Jan 20 17:28 Diagnostic.pas
-rw-rw-r--  1 willy willy    196 Jan 20 17:28 .gitignore
drwxrwxr-x  4 willy willy   4096 Jan 20 17:28 include
-rw-rw-r--  1 willy willy   1090 Jan 20 17:28 LICENSE
-rw-rw-r--  1 willy willy   6259 Jan 20 17:28 MathEvaluate.pas
-rw-rw-r--  1 willy willy  15660 Jan 20 17:28 Messages.pas
-rw-rw-r--  1 willy willy  19881 Jan 20 17:28 mp.pas
-rw-rw-r--  1 willy willy  75364 Jan 20 17:28 Optimize.pas
-rw-rw-r--  1 willy willy 102957 Jan 20 17:28 Parser.pas
-rw-rw-r--  1 willy willy   5522 Jan 20 17:28 README.md
-rw-rw-r--  1 willy willy  72438 Jan 20 17:28 Scanner.pas
-rw-rw-r--  1 willy willy   3746 Jan 20 17:28 SplitString.pas
drwxrwxr-x  2 willy willy   4096 Jan 20 17:28 targets

Dalej nie knulem.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

6 Ostatnio edytowany przez tebe (2026-01-25 11:40:54)

to może zmieńcie nazwe katalogu '\origin' na '\src' i wszystko będzie się zgadzało

do czego potrzebny jest makefile skoro jest to jedna komenda

fpc -MDelphi -vh -O3 -Cp mp.pas

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

7

tebe napisał/a:

to może zmieńcie nazwe katalogu '\origin' na '\src' i wszystko będzie się zgadzało

do czego potrzebny jest makefile skoro jest to jedna komenda

;-) Hm... zastanówmy się? Plik Makefile zazwyczaj potrzebny jest po to, aby ułatwić zbudowanie danego projektu.
Ostatecznie łatwiej i szybciej pisze się:

make

niż...
cd src
fpc -MDelphi -vh -O3 -Cp mp.pas

... gdyby pliki Makefile nie były potrzebne/użyteczne, nikt by ich nigdy nie wymyślił.

Zresztą, do tej pory były, a człowiek łatwo przyzwyczaja się do dobrego. :-)

Co to jest? Co to jest?.... To przecież... Atari! :)