Autor Thema: Neues Projekt auf AtariForge: libcmini  (Gelesen 10048 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForce: libcmini
« Antwort #20 am: Mi 16.04.2014, 17:45:46 »
Eben, und den kann die lib mitbringen. Dann braucht sich der Benutzer nicht mehr darum kümmern.
Wer C++ verwenden will, dem unterstelle ich, daß die libcmini eher sowieso nicht verwendet wird (optimiert für C).

__attribute__((constructor)) und __attribute__(destructor) hat nichts (zumindest nicht unmittelbar) mit C++ zu tun. Das kann man durchaus auch prima in C verwenden.
« Letzte Änderung: Mi 16.04.2014, 20:47:23 von mfro »
And remember: Beethoven wrote his first symphony in C

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.612
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: Neues Projekt auf AtariForce: libcmini
« Antwort #21 am: Mi 16.04.2014, 19:14:41 »
Das entfernt sich dann aber von jeglichem ISO Standard....
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForce: libcmini
« Antwort #22 am: Mo 05.05.2014, 20:01:08 »
Das entfernt sich dann aber von jeglichem ISO Standard....

Nö, nicht unbedingt. Die Implementierung von irgendwelchen Initialisierungsroutinen oder das Aufrufen von mit atexit() angemeldeten Funktionen läßt sich darüber lösen, ohne daß man den Startup-Code als Quelle ausliefern müsste (was trotzdem meist passiert). Der ISO-Standard sagt nicht, wie das passieren, nur daß es möglich sein muß.
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForce: libcmini
« Antwort #23 am: Mo 05.05.2014, 20:05:24 »
Wo ich schon mal dran bin:

libcmini gibt es jetzt in einer releasten, vorcompilierten Form hier zum Runterladen. Die Beispielprogramme (bench, insbesondere) wurden ein wenig erweitert und stehen als Quellen zur Verfügung. M.E. gut als "Skellett" geeignet für Leute, die in die GEM-Programmierung einsteigen möchten. Die Makefiles erzeugen Code für m68000, m68020-60 und Coldfire (jeweils in der "mshort" und "normalen" Version.
And remember: Beethoven wrote his first symphony in C

Offline Count

  • Benutzer
  • Beiträge: 117
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #24 am: Sa 29.07.2017, 20:48:34 »
Ich setze hier mal auf.  :D

Lebt das Projekt noch? Die letzten Sourcen, die ich heruntergeladen habe, sind mehr als ein Jahr alt. Ich habe eine Reihe Bugs behoben und neue Funktionen hinzugefügt. Ich habe zwar auf der Version 0.5 aufgesetzt, das ganze aber heute mit der 0.6 abgeglichen. So viel hat sich da ja nicht getan.

Bugs habe ich zum Beispiel bei ...printf gefunden (Nachkommastellen bei %f funktionierten u.a. nicht), aber auch woanders. vsnprintf() kann jetzt auch mit NULL-Pointer umgehen. Das ist wichtig, weil man so den benötigten Speicherplatz für eine Formatierung ermitteln kann. Dadurch konnte ich asprintf() und vasprintf() implementieren (s.u.).

Ich habe ein paar Funktionen hinzugefügt. Zum Beispiel qsort(), asprintf(), vasprintf(), ...scanf(), strtod(), strtof(), feof(), ferror(), ungetc(), getchar(), fgets(), getc(), fflush(), remove(), rename(), bsearch(), strnlen(), strtok(), localtime(), strftime().

Die FILE-Struktur habe ich erweitert, um feof(), ferror() und ungetc() implementieren zu können, und die Feldnamen denen der MINT-Library angepasst.

mktime() habe ich korrigiert, hier wurden Schaltjahre nicht richtig berücksichtigt (einfaches Teilen durch 4 reicht nicht).

ctype.h hat ein paar neue Makros bekommen (isalnum, iscntrl, isgraph, isprint, ispunct, isxdigit) und isspace berücksichtigt jetzt auch "\f").

Die ...scanf()-Funktionen müssen noch ordentlich getestet werden, das habe ich nur rudimentär gemacht. Aber ich fände es gut, wenn das Projekt nicht einschläft, denn die Speicherersparnis ist schon enorm. Allein mein kleines Testprogramm für sscanf() ist nur 16,5 KB groß, mit der MINT-Library sage und schreibe das Zehnfache!

Meine aktuellen Sourcen von heute könnt ihr gerne herunterladen:
http://www.graf-bussmeier.de/download/libcmini_20170729.rar

Änderungen werden ja mit diff sichtbar.  ;)

Oliver

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #25 am: Sa 29.07.2017, 21:51:10 »
Lebt das Projekt noch?

Hallo Oliver,

klar doch, lebt noch.

Auch wenn ich nicht gar so viel dran mache, für mich reicht der bislang implementierte Umfang für die meisten Sachen aus.

Wenn Du magst, melde dich als User bei AtariForge an. Ich kann dich dann freischalten und wenn Du Lust und Zeit hast, kannst Du deine Änderungen und Erweiterungen selbst einarbeiten.

Gruß,
Markus

And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #26 am: Mo 25.12.2017, 19:32:49 »
Nachdem AtariForge schon seit Längerem nicht verfügbar ist (und es auch keine Anzeichen gibt, dass sich daran noch mal etwas ändert), habe ich libcmini umgezogen.

Es ist jetzt hier zu finden: https://github.com/mfro0/libcmini
And remember: Beethoven wrote his first symphony in C

Offline gh-baden

  • Benutzer
  • Beiträge: 1.195
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #27 am: Mo 25.12.2017, 20:26:09 »
Nachdem AtariForge schon seit Längerem nicht verfügbar ist (und es auch keine Anzeichen gibt, dass sich daran noch mal etwas ändert), habe ich libcmini umgezogen.

Es ist jetzt hier zu finden: https://github.com/mfro0/libcmini

Bestens, danke. Mit git ist’s gleich bequemer einen Klon zu ziehen, und mit den Sternchen spannende Projekte  im Blick zu halten.
Wider dem Signaturspam!

Offline mfro

  • Benutzer
  • Beiträge: 1.357
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #28 am: Mo 25.12.2017, 20:35:55 »
Nachdem AtariForge schon seit Längerem nicht verfügbar ist (und es auch keine Anzeichen gibt, dass sich daran noch mal etwas ändert), habe ich libcmini umgezogen.

Es ist jetzt hier zu finden: https://github.com/mfro0/libcmini

Bestens, danke. Mit git ist’s gleich bequemer einen Klon zu ziehen, und mit den Sternchen spannende Projekte  im Blick zu halten.

Schade nur, dass ich anscheinend *zu* lange damit gewartet habe. Ohne das Orginal-Repository ist leider die Historie weg. Damit ist jetzt halt wieder "Stunde null".
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.357
libcmini: Release 0.5
« Antwort #29 am: So 20.10.2019, 13:46:52 »
Nachdem libcmini in den letzten Monaten einiges dazuge- (und viel Falsches ver-) lernt hat (unter tätiger Mithilfe von @Count, vielen Dank dafür!), wurde es Zeit für ein neues Release:

hier:

https://github.com/mfro0/libcmini/releases
gibt's die Quellen und Binaries als .tar-Dateien und hier:
https://github.com/mfro0/libcmini
ist das github-Repository

And remember: Beethoven wrote his first symphony in C

Offline czietz

  • Benutzer
  • Beiträge: 2.203
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #30 am: So 20.10.2019, 17:29:45 »
Ich versuche gerade, ein Programm, an dem ich z.Zt. entwickle mit libcmini (und gcc 4.6.4) zu compilieren und erhalte...

$ m68k-atari-mint-gcc -omyprog.tos -s -mshort -fomit-frame-pointer -O1 -nostdlib ../libcmini/build/mshort/startup.o myprog.c -L../libcmini/build/mshort -lcmini -lgcc
/tmp/ccIEniML.o:/tmp/ccIEniML.o:(.text+0x768): undefined reference to `___flshfp'
collect2: ld returned 1 exit status

Hast Du eine Idee, woran das liegen könnte? Welche Funktion ruft ___flshfp auf?

Offline czietz

  • Benutzer
  • Beiträge: 2.203
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #31 am: So 20.10.2019, 17:46:17 »
Aargh, kaum hat man die Frage gestellt, findet man plötzlich die Lösung. Ich sollte offensichtlich die libcmini-Includes verwenden. (Der Auslöser war übrigens putchar().) So funkioniert's:

$ m68k-atari-mint-gcc -omyprog.tos -s -mshort -fomit-frame-pointer -O1 -nostdlib ../libcmini/build/mshort/startup.o myprog.c -I../libcmini/include -L../libcmini/build/mshort -lcmini -lgcc

Offline Count

  • Benutzer
  • Beiträge: 117
Re: Neues Projekt auf AtariForge: libcmini
« Antwort #32 am: So 20.10.2019, 20:42:00 »
Aargh, kaum hat man die Frage gestellt, findet man plötzlich die Lösung. Ich sollte offensichtlich die libcmini-Includes verwenden. (Der Auslöser war übrigens putchar().)

Ja, das ist generell eine gute Idee.  ;)

putchar() kann ja (wie putc(), getc() und getchar()) als Makro definiert sein. Scheinbar ist das bei deiner Mintlib-Version (oder welche Header-Dateien da auch immer gezogen wurden) der Fall.