Tutg++
Mikä?
Tutg++ on gcc:n
päälle
C++-ympäristö, jossa dynaamisen muistinhallinnan ja
STL:n osalta
tehdään ajoaikana normaalia enemmän
virhetarkastuksia. Lisäksi Tutg++ pyrkii olemaan tavallista
tarkempi include-komentojen suhteen ja kytkee päälle
gcc:ssä olevat STL:n käännösaikaiset
concepts-tarkastukset. Tutg++ käyttää
automaattisesti myös Tutnew-kirjastoa.
Tutg++:aa käytetään Tampereen
teknillisellä yliopistolla
mm. kursseilla Ohjelmointi
1, , Ohjelmointi
2,
Olio-ohjelmoinnin peruskurssi,
Olio-ohjelmoinnin jatkokurssi ja
Tietorakenteiden
käyttö. Itse
tutg++-kääreen on kehittänyt Matti Rintala
(bitti@cs.tut.fi
), mutta suurimman osan työstä ovat tehneet gcc:n kehittäjät.
Miten?
Tutg++'lle ei
ikävä kyllä vielä
ole kunnollista käyttöohjetta. Suurimmaksi osaksi
sitä kuitenkin
käytetään samoin kuin
g++-kääntäjää,
paitsi että komennon nimi on tutg++. Mistä?
Tutg++ on asennettuna TTY:llä proffalandiaan
(proffa.cc.tut.fi) sekä lintulaan (Ohjelmistotekniikan
laitoksen Sun- ja Linux-työasemat ja -palvelimet).
Linux
Lisäksi Tutg++'n
voi imuroida Linuxiin. Se vaatii toimiakseen
gcc-kääntäjän (testattu
kääntäjillä 3.4.3 ja uudempi).
TTY:n kursseilla
käytetyn gcc:n kannattaa olla sama kuin TTY:n koneilla
(version
saa selville ajamalla TTY:n koneilla komento "tutg++ --version").
Linux-paketin asentaminen
(Tämä
ohje on myös paketin tiedostossa LUEMUT.txt.)
KÄYTTÖTARKOITUS
Tutg++
on ohjelmoinnin opetteluun ja debuggaamiseen tarkoitettu wrapperi
g++-kääntäjän ympärille. Sen tuomat
lisäominaisuudet ovat pääpiirteissään
seuraavat:
- Suurin osa g++:n varoitusvivuista päälle oletusarvoisesti
- Sisäänrakennettuna Tutnew eli dynaamisen muistin debuggauskirjasto (ks. tarkemmin Tutnew'n manuaali tutnew-doc.pdf)
- libstdc++:n
debug-moden tarjoamat ajoaikaiset tarkastukset STL:n ja string-luokan
kanssa (mm. yli-indeksointi, iteraattoreiden oikeellisuus, algoritmien
esiehdot yms.)
- libstdc++:n käännösaikaiset concept check -tarkastukset
- Minimaalinen gcc:n virheilmoitusten siistiminen
HUOMIOITA KÄYTÖSTÄ
- Tutg++ huolii pääpiirteissään samat komentoriviparametrit kuin g++:kin.
- Oletusarvoisesti
Tutg++ ajaa käännöksen virheilmoitukset
tutg++filt-suodattimen läpi, joka yksinkertaistaa hieman
virheilmoituksia. Jos suodatin tuntuu suodattavan liikaa tai
väärin, sen voi kytkeä pois päältä
vivulla -nofilt.
- Tutg++ hyväksyy oletuksena vain
standardi-C++:aa, ja siksi se ei hyväksy esim. C++-standardin
ulkopuolisia include-tiedostoja tai
kääntäjäkohtaisia laajennoksia (esim. #include
<unistd.h> yms.). Tästä rajoituksesta
pääsee eroon vivulla -skipcheck.
- Tutg++:n tuottamat objektitiedostot eivät ole kaikilta osin binaariyhteensopivia normaalin g++:n objektitiedostojen kanssa.
- Hakemistosta
bin löytyy myös komento tutg++error, joka ajaa annetun
Tutg++:lla käännetyn ohjelman annetuilla parametreilla
debuggerin (gdb) läpi. Jos ohjelma kaatuu, tutg++error
tulostaa siistityn virheilmoituksen ja debuggerin
listauksen siitä, missä kaatuminen tapahtui (gdb:n
"where").
MITÄ TUTG++ EI OLE
Tutg++ on tarkoitettu vain opetus- ja testauskäyttöön. Tutg++ ei
korvaa g++:aa. Se vaatii g++:n toimiakseen ja lisäksi Tutg++:lla
käännetyt ohjelmat vaativat Tutg++:n omat kirjastot
toimiakseen.
VAATIMUKSET YMPÄRISTÖLTÄ
- Jokin Linux (ei erityisiä vaatimuksia), muilla alustoilla ei ainakaan testattu
- gcc
4.0.2 tai uudempi tai vanhempi (tuntui toimivan gcc
3.4.3:lla, joten lähes mikä tahansa nykyinen gcc
käy, eroja voi tietysti olla)
- Normaalit käännöstyökalut
LYHYT ASENNUSOHJE
- Varmista,
että haluttu gcc löytyy suoraan hakupolusta (jos
on useita gcc-kääntäjiä asennettuna)
- Pura Tutg++:n asennuspaketti lopulliseen asennuspaikkaansa (esim. /usr/local/lib tms.)
- Aja Tutg++:n hakemistossa komento "gmake". Tämä kääntää Tutg++:n tarvitseman Tutnew'n.
- Lisää Tutg++-hakemiston alihakemisto "bin" hakupolkuusi
- Vaihtoehtoisesti
kohdan 4. kanssa voit kopioida bin-hakemistossa olevan
pikkuskriptin tutg++-script johonkin muuhun hakupolussa olevaan
hakemistoon nimelle tutg++ (esim. /usr/local/bin/tutg++) ja
editoida tuohon skriptiin Tutg++:n sijainnin (TUTGPPDIR). Tarvittaessa
skriptissä voi PATH-muuttujaa editoimalla pitää
huolen siitä että Tutg++ käynnistää
oikean gcc:n (jos useita asennettuna).
OIKEUDET JA SEN SELLAISET
Tutg++ ja Tutnew (C) 2006,2007 Matti Rintala (bitti@iki.fi)
Tutg++:n
Matti Rintalan kirjoittamat osat (bin- ja admin-skriptit,
Makefile.tutg++ yms.) ja Tutnew julkaistaan myös alla olevalla
Boost-lisenssillä.
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Viimeksi päivitetty: $Date: 2004/06/14
06:38:17 $