Sida 4 av 5

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 14:18:42
av Marta
Tackar för svar.
Tyvärr verkar det vara buildtime tools. Här behövs något runtime.

Använder t.ex libhandle = dlopen("libsomething.so", RTLD_LAZY);

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 14:34:10
av guckrum
Svälj stoltheten, var modern och länka statiskt.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 15:23:11
av Marta
Kan jag bara få reda på var libsen finns skall det nog lösa sig att hitta något om det finns där.

Det där med dynamisk laddning i Linux verkar vara bristfälligt på många sätt.
Om det finns en headerfile till ett lib, hur f*n skapar jag en typad pekare till en av funktionerna i headern?

Det enda jag kommit på är att kopiera från headerfilen till en egen typedef. Ett helt öppet funktionsanrop är inget bra alls, där misstg som annars skulle fastna i kompilern accepteras.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 15:47:11
av SvenW
fungerar inte följande sätt om man ha dynamisk länkning?

Kod: Markera allt

#include <stdio.h>
#include <math.h>
 
int main () {
  double (*sss ) (double x);
  double xx;
  
  sss = &sin;
  xx = sss(0.123);

  printf ("%lf", xx);  
}

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 16:02:44
av Marta
Det gör det nog, men då är ju typningen omdeklarerad. Det finns inget sätt att med en referens till den deklaration av sin() som finns i headerfilen åstadkomma typkontroll. Eller den deklaration som finns i cups.h av en funktion med jättelång parameterlista. Nåväl, den biten är löst, men den visar på att Linux på många sätt dessvärre har bristfälligt stöd för dynamisk länkning.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 16:36:53
av SvenW
Så här då?
typeof (&sin) sss;
i stället för
double (*sss ) (double x);

Eller får main inte med komplett typ på det sättet?

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 20:46:18
av mankan
Kort svar: läs på om SO_NAME. Utvecklar senare.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 5 oktober 2022, 22:19:32
av mankan
Lite mer utläggning: SO_NAME-kommentaren handlar om hur det funkar i Linux med libfoo.so vs libfoo.so.0 och dess symlänkar.

Men ditt problem verkar egentligen inte vara dynamisk länkning utan att du själv kör dlopen med vänner för att undvika explicita beroenden till vissa libbar. Detta har väldigt lite att göra med dynamisk länkning utan är mer en pluginlösning/runtime-probning du har gjort. Japp, jag kommer ihåg att jag tipsade om dlopen osv. Hur distribueras din editor, källkod eller färdig binär? Jag kan tänka mig test-bygga/starta den i några olika miljöer, skicka pm för få emailadress.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 6 oktober 2022, 22:40:14
av Mr Andersson
SvenW skrev: 5 oktober 2022, 16:36:53 Så här då?
typeof (&sin) sss;
i stället för
double (*sss ) (double x);

Eller får main inte med komplett typ på det sättet?
Jo typeof fungerar, inkl. type-checking. Exempel:

Kod: Markera allt

#include <math.h>
#include <stdio.h>
#include <dlfcn.h>

int main() {
  typeof(sin) *sin_ptr;

  void* libm = dlopen("libm.so.6", RTLD_LAZY);
  sin_ptr = dlsym(libm, "sin");

  printf("%f\n", sin_ptr(M_PI / 2));
  //sin_ptr((void*)0); /* error: incompatible type for argument 1 of ‘sin_ptr’, expected ‘double’ but argument is of type ‘void *’  */
  //char* wrong_return_type = sin_ptr(0); /* error: incompatible types when initializing type ‘char *’ using type ‘double’ */
}
typeof är iofs inte standard C men ibland får man göra undantag från standarden av bekvämlighet. :)

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 11 oktober 2022, 14:09:48
av Marta
Hur har mitt lilla program fungerat för Er som erbjudit sig att testa? Har fått in värdefull info, men de flesta har inte sagt något alls. Även en så enkel detalj som om det alls är körbart eller inte är av värde. I fallet inte körbar även vilken Linux det testats på.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 23 december 2022, 10:26:47
av Marta
Nu är det dags!...

https://martakson.se

God Jul!

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 20 januari 2023, 08:57:16
av Marta
Nu finns en ny bugfixad version på hemsidan. Även en ny funktion för att jämföra två textfiler och förbättrade inställningar för utskrift.

Har inte sett några kommentarer alls. Säg bad Ni tycker, även om Ni tycker den är det sämsta sk*t Ni någonsin har sett.

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 20 januari 2023, 10:06:34
av papabear
Sparsmakad, men jag har sett sämre.
Att den är enkel gör väl inget så länge den gör vad som behövs.

Regerade dock på att den känns långsam, speciellt med tanke på hur liten den är.

(Hemsidan dvs, har inte kört editorn då jag sitter på windows)

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 20 januari 2023, 10:23:47
av AndLi
För mig går webbsidan så snabbt det går skulle jag säga, ingen märkbar delay någonstans.

Software sidan laddas på 220 ms, det är den som tar längst tid.
(Allt mätt med disk cache disabled)

Men om man inte laddar sidan på ett tag(minuter) så kommer software.htm ta 340 ms innan den svarar, sen kommer det igång och laddar med samma tid som innan...
(samma fenomen ser man på alla sidor, känns som något ganska snabbt går ner i "strömsparläge", men har man laddat en sida går resten fort sen)

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Postat: 20 januari 2023, 11:43:58
av Marta
Sidan ligger hos one.com och är handkodad html utan några stora klumpar.

Både hemsida och program skall vara enkla. Avskyr såväl megaklumpar som stökiga hemsidor där allting flimrar och flärper runt.

Skulle vilja ha någon kommentar rörande programmet. Det är annorlunda, men det skall det vara. Är föga meningsfullt att skriva en kopia av något som redan finns i femtioelva upplagor.

Är också ängelägen att få veta om det finns kompatibilitetsproblem med någon Linuxdist. Använder själv Debian med xfce.