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

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

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

Inlägg av ojz0r »

Du kan ju alltid packetera appen som snap, flatpak eller appimage så kan den distribueras fritt. Dock kanske det kan bli knöligt med filhanteringen pga sandboxing.
Annars har ubuntu PPA för utomstående repositories.
Användarvisningsbild
ajje
Inlägg: 2351
Blev medlem: 12 mars 2010, 16:35:31
Ort: Smedjebacken

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

Inlägg av ajje »

Tror inte det finns en chans att få med den i någon dist utan att släppa källkoden.

Ska den med i en dist måste den kunna kompileras för massor av olika målsystem och arkitekturer.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Ja, det är ju ett stort problem. Det blir bara min egen hemsida, det kan räcka en bit i varje fall. Tänker bara kompilera för 32/64 PC och 32 ARM till raspberry. Blir för mycket
om femtioelva olika skall stödjas. Utan att testa kan det dessutom bli hur som helst. Finns redan allt för mycket junkware i omlopp.
Användarvisningsbild
Glenn
Inlägg: 33667
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

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

Inlägg av Glenn »

Kan väl funka med rpmfusion-nonfree kanske ?

Har lite dålig koll på reglerna där men jag tror inte källkoden behöver finnas tillgänglig ?

https://rpmfusion.org/RPM%20Fusion
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Finns det möjlighet i Linux att ha en dependency som inte förhindrar att programmet körs om denna inte behövs? När/om den behövs laddas den först då, eller ett felmeddelande visas om den skulle saknas.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

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

Inlägg av mankan »

Du menar som valbara pluginer? Isf, kolla på dlopen(3)/dlsym(3).
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Nej, inte valbar.
En udda funktionalitet som i sig tar väldigt liten plats, men lägger till en dependency som inte alltid finns installerad, även om den nog oftast gör det. Den skall inte bli en föutsättning förän någon verkligen använder den udda funktionen.
Mekanismen för detta är nog väldigt nära valbara plugins. Får se vad det Du nämner är för något. Det som eftersöks är att vid behov ladda extra lib.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

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

Inlägg av mankan »

Låter som dlopen/dlsym är det du vill ha, möjligen kan man tricka med "weak symbol linkage" istället.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Tackar så mycket för att Du pekat åt rätt håll. Det ser ut att vara det som finns, men kanske inte exakt vad jag ville ha.

Ser stökigt ut med att bara få en pekare till den sökta funktionen. Är denna void* en vanlig funktionspekare som kan castas till en egen typedef av en funktion med rätt parameters?
Maalobs
Inlägg: 1299
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

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

Inlägg av Maalobs »

Du kanske kan ha ett minimalt loader-program som man startar editorn med, i vilken man kollar upp vilka resurser som finns tillgängliga i den aktuella miljön, och därefter startar man den egentliga editorn med t ex kommandoradsparametrar eller med förberedd config-fil för att signalera vad editorn har tillgängligt att spela med, innan man stänger loadern och låter editorn rulla vidare.

Vi fick göra liknande på 90-talet med tidiga affärssystem på Windows som krävde lokalt klientprogram på varje användares dator, där vi i loadern synkade in de senaste filerna till klientdatorn och gjorde nödvändiga COM- och OLE-registreringar, innan vi startade det egentliga klientprogrammet och avslutade loadern.
Tack och lov blev allt web-baserat strax efter.

Sen finns det saker man kan göra i t ex Perl men det är möjligtvis en egenskap av managed code, kontra native code i C som du sysslar så det kanske inte är möjligt.
Det finns många sätt på det temat, men det mest generella är att man wrappar sina laddningar av libraries i run-time i eval() och testar om laddningen lyckades.

Men det låter som att du kanske över-optimerar användarupplevelsen.
Användaren kanske måste förväntas kunna starta editorn i ett safe-mode om finesser i miljön saknas, eller starta den med parametrar på kommandoraden som skriver in default-värden i en config-fil som editorn sedan startar med utan att man återigen behöver ange parametrarna, för att på så sätt stänga av funktioner som kräver något som miljön inte kan leverera.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Det där lät stökigt, men sådant är det inte alls.

Problemet är en mycket "smal" funktion som kräver pulse_simple och vill inte skapa en "hård" dependency på denna till följd av en udda funktion.

Tänkte först ha detta som en specialversion, men är det möjligt vill jag undvika detta. Är inget jag vill lägga tid på nu om det är stökigt. Finns annat som är verkligt avgörande att fixa till först. Hade hoppats det var enkelt.
janno
Inlägg: 403
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

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

Inlägg av janno »

Här finns en enkel beskrivning och ett litet exempel:
https://tldp.org/HOWTO/Program-Library- ... aries.html
Enklaste borde väl vara att göra en typedef eller en #define för de funktioner som du behöver. Det var länge sedan jag gjorde detta så jag är inte helt säker på enklaste sättet idag.

/J
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

Tack till Er alla för hjälpen.

Teknikens under, det funkade med en typedef. Första gången misslyckades p.g.a. sk*t bakom tangenterna, inga "" kring funktionsnamnet i dlsym. Det idiotiska felmeddelandet från gcc gjorde jag trodde allt var helt fel.

Då är frågan, byter jag bara en dependency mot en annan? Alla har inte pulse installerat, men finns dl där alltid? m är väl något som alltid finns?

Det nämns reference counting i samband med dlopen. Vad sker där t.ex. om programmet segfaultar och dlclose aldrig utförs? Eller det hanteras av sig själv när instansen tas bort?
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

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

Inlägg av mankan »

Kul att du har fått igång det. libdl ingår i glibc och killgissar jag lite så bör libdl bara vara ett tunnt skal ovanpå funktioner som programladdaren (ld) själv använder så Linuxdistarna som har separerat (paketmässigt) libdl från glibc är nog ovanliga.

Referensräkning är ju för att OS/processen inte ska ladda ur libbet förrän alla har laddat ur det samt undvika att ladda det om det behövs flera gånger. Din process a kan ju göra dlopen på libB samtidigt som a också är dynamiskt mot libE som i sin tur gör dlopen på libB.

Segfaults är ju en krasch men OSet städar så gott det går när processen är död. Den enda resurs jag varit med om som är lite knepig att få bortstädad vid krasch är delade SysV minnen och semaforer, men det går det också.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6889
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

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

Inlägg av Marta »

OK.

Vet inte hur jag tänkte där, fick på något sätt för mig att den räknade för alla instanser som använde ett visst lib...

Jo, det hr jag märkt att /var/lock/ lätt får "glömda" filer som måste rensas när vissa program dyker. Sådant har jag inget av, så om inget lib hittar på något skall det vara rent från den typen av problem.
Skriv svar