SPECS: crossmingw32-gcc - propagowanie wyjatkow C++ z bibliotek dll

Łukasz Krotowski lukasz.krotowski w gmail.com
Śro, 21 Lut 2007, 23:50:47 CET


07-02-21, Paweł Sikora <pluto w agmk.net> napisał:
> On Wednesday 21 of February 2007 17:01:30 Łukasz Krotowski wrote:
> > Witam,
> > powyższe, czyli propagowanie wyjątków C++ z bibliotek dll,
>
> tak naprawde, to w c++ nie ma czegos takiego jak biblioteka,
> czy propagowanie wyjatkow miedzy bibliotekami.
> nie ma tez zadnego oficjalnego abi w sferze wyjatkow c++
> i wszystko lezy w detalach implementacji kompiliatora.

Ok, czyli kompilator crossmingw32-gcc w PLD jest skopany (IMO). Ja się tylko
pytam czy mam go poprawiać (też IMO). Nie zrozum mnie źle. Ja zasadniczo
niczego nie zarzucam PLD. Miałem problem - usługa Win32 (też nie ma w
standardzie ;) ) którą pisałem kończyła się bez słowa - jak się okazało
podałem puste wyrażenie regularne. Znalazłem problem, poprawiłem. A teraz
pytam się, czy ktoś jest zainteresowany poprawką.

A napisałem na grupę dlatego, że widzę, że spec jest konsekwentnie rozwijany
bez zwrócenia uwagi na taką sytuację. Więc albo nikt tego nie zauważył albo
nikomu nie jest to potrzebne. Lub też podjęto decyzję aby trzymać się źródeł
z gcc.gnu.org.

A Ty mi tutaj o standardzie... Wedle standardu nawet pthread nie możesz użyć
bo tracisz pojęcie obserwowalności. ;) Skrócę ew. dyskusję, tak wiem, że w
C++0x będą wątki a nie będzie bibliotek dynamicznych.

> w skrocie - nie rob tak jesli nie chcesz miec problemow :)

W skrócie - pisz na boost w lists.boost.org. Bo wyjątkami z bibliotek dll
rzucają np. konstruktory boost::thread lub boost::regex. A Boost.Thread IIRC
nie może być zlinkowana statycznie.

> > w aktualnym crossmingw32-gcc (Ac, 3.4.6, 4.1.2), nie działa.
>
> czyzby to?
> http://gcc.gnu.org/ml/gcc-patches/2006-12/msg00133.html

Nie, to jest Dwarf2 - eksperymentalna obsługa wyjątków w mingw. Stabilna
opiera się na SJLJ. Ale jakbyś znalazł odpowiednią łatkę to chętnie obejrzę
(nie jestem na bieżąco z listami gcc).


Więcej informacji o liście dyskusyjnej pld-devel-pl