Postanowiłem pobawić się znowu mp i próbuję go uruchomić pod linuxem ale nie widzi mi w ogóle bibliotek w czasie kompilacji np mp 3d.pas -ipath:$HOME/apps/Mad-Pascal-1.7.7/lib wywala natychmiast błąd: 3d.pas (line 4, column 30): Error: E33 - FileNotFound: Cannot find unit 'FASTGRAPH' used by program 'Program' in unit path '...Mad-Pascal-1.7 .7/lib/'.
@jhusak nie, nie jest to typowe "case sensitive" bo od strony formalnej się wszystko zgadza, sprawdziłem na pliku samples/a8/demoscene/twister_2.pas. Mad-Pascal przeszedł duży refactor w ostatnim roku, i coś musiało pójść nie tak bo mi to przez lata działało a teraz nie działa. JAC! drąży więc może wydrąży ;) a że jest on zwolennikiem samodzielnej pracy umysłowej bez wrzucania tego do AI to czekam aż sam znajdzie :]
Problem wydaje się jednak głębszy, ponieważ sam kompilator wewnętrznie pozostaje niewrażliwy na poprawne nazwy units. Ta poprawka pozwala na załadowanie units w systemach, w których jest ona istotna, ale jeśli kompilator załaduje dwa units o tej samej nazwie, gdyby je zapisać wielkimi literami np. `Dupa.pas` i `dUpa.pas` może to spowodować błąd.
Tu chyba problem wynika z tego, że Linux w przeciwieństwie do Windows rozróżnia w nazwach plików wielkość liter. Prawdopodobnie wystarczyłby filtr, który zamienia wszystkie nazwy w kodzie źródłowym na duże lub małe litery. Czyli jak Pascal to tylko pod UCSD ;)
Żeby móc obejść problem pozmieniałem potrzebne nazwy includów na duże litery no i się kompiluje i działa ale zauważyłem coś dziwnego, gdy używam vbxe. Te same programy, które są w przykładach i które się poprawnie uruchamiały kiedyś teraz powodują dziwny wygląd ekranu.
Wystarczy, że zadeklaruję w najprostszym kodzie vbxe i od razu mam taki efekt. Coś się zmieniło czy to może być wynik tych problemów z bibliotekami pod linuxem? Jak już uruchomię jakikolwiek tryb graficzny VBXE to wszystko wygląda dobrze.
Systemy plików z case insensitive powinny być zabronione (development na nich). To strasznie błędogenne. To jedno z niepisanych przykazań pragmatycznego programisty.
pokazałem @JAC! poprawkę i powiedział, że to prawie dokładnie to co chce zrobić ;) no ale jak widać "schodzi mu" i teraz dylemat - AI naprawiło to wrzucać, czy czekać na "human touch" ;)