SWIG 3.0.2, kildekode generator

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

SWIG 3.0.2, kildekode generator

Indlægaf lath » 20. sep 2014, 17:17

Jeg skal lige igang med at oversætte SWIG 3.0.2 fra kildekode - fordi Canonical kun har SWIG 2.x i arkiverne :(
Jeg har bemærket at der her: http://pkgs.org/download/swig er nogle SWIG pakker til forskellige kombinationer af distro & distro version.

SWIGs website er: http://www.swig.org/, og de har også et Git arkiv: https://github.com/swig/swig
Download af kildekode sker via SourceForge, og kommer i en *.tar.gz fil for Linux/BSD/UNIX systemer.

Det SWIG kan er at den kan lave noget såkaldt glue-code imellem C og/eller C++ kode og så et andet programmeringssprog.
For mit vedkommende er det andet sprog lige nu Tcl, men jeg kunne muligvis godt finde på at lave den til Java, og C# Mono også.

Det jeg er ude efter er at få adgang til er at at kalde ind i C++ koden inde i libapt, så jeg kan hente pakker, tilføje repositories, skifte server og hvad har vi.

Da SWIG laver auto-generet kildekode, skal jeg lige se hvor godt godt (eller crappy) den kildekode er - før jeg beslutter om det er noget jeg vil tage i brug.

Er der nogen der har noget erfaring med SWIG de gerne vil dele ud af?
Skriv gerne en kommentar herunder.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: SWIG 3.0.2, kildekode generator

Indlægaf lath » 22. sep 2014, 04:48

Jeg fik oversat SWIG 3.0.2 kildekode til et program jeg kan køre.

Mit problem i første omgang var at der ikke må være mellemrumstegn i stien ned til top-mappen, hvor SWIG bygges i.
Det løste jeg ved lidt terminaltrylleri:
  1. oprette ny mappe
  2. flytte indhold over i ny mappe
  3. slette den gamle - nu helt tomme mappe
  4. linke med `ln -sT` fra gammel mappenavn til ny mappe
  5. I filsystemet er det nu sådan at der er et softlink (-s i ln kommandoen) til det nye mappe (-T argument i ln kommando) med den gamle mappes navn, som er softlinkets navn

Resultatet fra ls -l på softlinket ser bagefter således ud:
lrwxrwxrwx 1 lars lars 15 sep 22 03:07 Hentede filer -> ./Hentede_filer

Lidt om rettighederne for softlinks: Det er sådan at når kernen beder et filsystem om rettigheder for en fil, så vil kernen gå igennem alle(*) softlinks indtil den ankommer til det der peges på. Det er så de rettigheder på den fil/mappe der peges på af softlinks(-ene) der afgør rettighederne.
*: Der er en tæller der kører 1 op hver gang kernen opløser et softlink til et nyt softlink. Når den tæller så kommer op på et bestemt tal returnerer kernen i stedet en fejlmeddelelse. Det gør den for at undgå at blive fanget i softlinks der peger på hinanden, så kernen kører i ring i al evighed (og dermed gør din computer ubrugelig).

Jeg har kigget lidt i apt kildekoden + lidt i SWIGs manual og det ser godt-nok temmelig langhåret ud.
Der skal nok være bare lidt basal C++ erfaring på plads før jeg kaster mig ud i det - i mellemtiden øver jeg med noget kode som er skrevet i C (Tcllib fra Tcl 8.6.2). Den kode prøver jeg så at wrappe til Go (http://golang.org/).

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

Tilbage til "Sandkassen"

Hvem er online

Brugere der læser dette forum: [Crawler] og 0 gæster