Szczegóły programowe:
Obecnie obsługuje całą Haskell 98 język i szeroką gamę rozszerzeń języka
Opis .
- GHC ma Szczególnie dobre wsparcie dla współbieżności i równoległości, w tym wsparcie dla oprogramowania pamięci transakcyjnej (STM).
- GHC generuje szybki kod, szczególnie dla programów terapii. Spójrz na wyniki GHC na komputerze z języka poziomy odniesienia gry i kilka uwag na temat Haskell przez obecnego organizatora strzelaniny, Brent Fulgham.
- GHC działa na kilku platformach, w tym Windows i większości odmian systemu Unix, oraz kilku różnych architekturach procesorów. Istnieją szczegółowe instrukcje przeniesienie GHC do nowej platformy.
- GHC posiada szerokie możliwości optymalizacji, w tym optymalizacji między modułem.
- GHC zestawia kod Haskell albo za pomocą pośredniej kompilator C (GCC), lub poprzez generowanie kodu macierzystego na kilka platform. Interaktywne środowisko do kodu bajtowego kompiluje Haskell, a także wykonywanie kodu bajtowego / zestawionych mieszane programów.
- Profilowanie jest obsługiwana zarówno przez czas / przydział i sterty różnego rodzaju profili.
- GHC wyposażony w szerokim zakresie bibliotek.
Co nowego w tym wydaniu:
- Domyślnie GHC ma nowe ostrzeżenie włączone, -fwarn -typed otwory, co powoduje, że kompilator reagowania z typami zmiennych niezwiązanych napotyka w kodzie źródłowym.
- Teraz można zadeklarować "zamknięty" rodzinę typu przy użyciu rozszerzenia TypeFamilies.
- GHC obsługuje przeciążenia lista literały za pomocą nowego rozszerzenia OverloadedLists.
- GHC obsługuje synonimy sygnatur, włączona przez rozszerzenie -XPatternSynonyms.
Co nowego w wersji 7.6.2:
- dawna typechecker błąd, który pozwalał unsafeCoerce się być napisany został naprawiony.
- błąd został naprawiony, który spowodował GHC nie czasem sobie kompilację było konieczne.
- Jeśli oba -H i -M & # x3c; rozmiar & # x3e; flagi są podane, to GHC nie będzie już przekraczać maksymalnej wielkości sterty.
- Błąd off-by-one, które mogą powodować naruszenia ochrony pamięci, w bandery parsowania RTS został naprawiony.
- Różne błędy, które mogą spowodować panikę GHC przy kompilacji niektóre pliki źródłowe zostały ustalone.
- Kilka błędów w rodzaju Sprawdzanie DataKinds i PolyKinds rozszerzeń zostały ustalone.
- Wydajność skompilowanych programów została ulepszona w niektórych przypadkach.
Co nowego w wersji 7.6.1:
- polimorficzne rodzaje i promocja dane są już w pełni wdrożone i Obsługiwane funkcje:. Sekcja 7.8, & quot; Rodzaj polimorfizm & quot;
- Windows 64bit jest obecnie obsługiwane platformy.
- Teraz można odroczyć błędy typu aż do czasu wykonywania przy użyciu flagi -fdefer-type-błędów:. Rozdział 7.13, & quot; odkładanie błędy typu z czasem przebiegu & quot;
- RTS obsługuje zmianę liczby funkcji w czasie wykonywania z Control.Concurrent.setNumCapabilities:. Pkt 4.15.2, & quot; opcje RTS dla SMP równoległości & quot;
Co nowego w wersji 7.4.2:.
- hp2ps może obsłużyć odwrotne ukośniki w identyfikatorów poprawnie
- Naprawiono błąd w implementacji protokołu popCount w Data.Bits.
- Potencjał wyścigu w Control.Concurrent.Chan został naprawiony.
- MVar błąd, który może powodować zakleszczenia został naprawiony.
- Podczas korzystania -fwarn-niebezpieczne, GHC zgłasza się teraz niebezpiecznych rozszerzeń języka.
- niegwintowany RTS unika teraz wybudzeń, gdy system jest bezczynny.
- błąd powodujący zawieszenie się z bardzo małym początkowym żetonów został naprawiony.
Co nowego w wersji 7.4.1:
- Nie jest to nowa funkcja Safe Haskell (-XSafe , -XTrustworthy, -XUnsafe): Sekcja 7.23, & quot; Bezpieczne Haskell & quot ;. Projekt zmienił się od 7.2.
- Nie jest nowością rodzaj polimorfizmu (-XPolyKinds): Sekcja 7.8.1, & quot; Rodzaj polimorfizm Quot ;. Skutkiem ubocznym jest to, że, gdy rozszerzenie nie jest włączona, w pewnych okolicznościach rodzaju są teraz domyślnie na * a nie zakładać.
- Nie jest to nowy rodzaj funkcja Ograniczenie (-XConstraintKinds):. Sekcja 7.10, & quot; Ograniczenie rodzaju & quot;
- Nie jest możliwe udzielenie jakiejkolwiek deklaracji w wierszu ghci:. Rozdział 2.4.4, & quot; rodzaj, klasę i inne deklaracje & quot;
- profilowania oraz HPC zostały połączone i remontowane. Widoczne zmiany obejmują zmianę nazwy profilowania flagi i stosy kosztów ma nowe centrum semantyki, która powinna być w większości przypadków powodują bardziej użytecznych i intuicyjnych profili. + RTS -xc flag teraz także daje ślad stosu.
- Teraz można napisać wtyczki kompilatora:. Rozdział 9.3, & quot; Compiler Wtyczki & quot;
- Wsparcie DPH została znacząco zwiększona.
- Nie jest już wstępną obsługę registerised kompilacji na platformie ARM, przy użyciu LLVM.
implementacje
Co nowego w wersji 7.0.4:
- zmiennoprzecinkowych regresji 7.0.3 wpływu x86 została ustalona.
- GHCi łącznik obsługuje teraz częściowo pozbawione izolacji plików obiektowych. To rozwiązuje ładowania pakietu GHC w ghci gdy został zdjęty, co często zdarza się w pakietach dystrybucji Linuksa.
- błąd, który spowodował złe wyniki getCPUTime, getClockTime i getCurrentTime został naprawiony.
- System błąd Runtime z dużych pryzmach został naprawiony.
- System błąd Runtime kiedy sterty profilowanie został naprawiony.
- System błąd Runtime kiedy sterty profilowanie został naprawiony.
- System błąd Runtime, co spowodowało nieprawidłowe wyniki i naruszenia ochrony pamięci, gdy za pomocą wywołania zwrotne FFI, został naprawiony.
- błąd systemu wykonawczego, które czasami spowodowane programy równoległe do & # x3c; & # x3c; Pętla & # x3e; & # x3e; podczas korzystania -feager-blackholing, został naprawiony.
- Nieprawidłowe uprawnienia katalogu podczas instalacji zostały ustalone.
- Niektóre poprawki zostały wprowadzone do nowego wsparcia testujące Cabal.
- Cabal jest teraz 1.10.2.0 (był 1.10.1.0).
Co nowego w wersji 7.0.2:
- Compiler:
- stare [$ foo | ... |]. Składnia znowu działa, ale jest przestarzałe,
- Nie było znaczących improvments do nowego typu sprawdzania.
- GHCi:
- Ładowanie .a bibliotek jest już dostępny na wszystkich platformach. Library .o nadal korzystnie stosować, gdy oba występują. GHCi nie będzie ostrzegać o brak .o bibliotek.
- teraz zamknąć .ghci plików po ich przeczytaniu, która na komputerach z systemem Windows pozwala im być zmieniane podczas GHCi działa.
- To jest teraz możliwe. Rozbrojony zmienne ghci (args, prog, szybka, redaktor i stop),
- Czas trwania:
- DTrace jest obecnie obsługiwane w systemie Solaris, oprócz OS X.
- System Budowa:
- OS X opiera się na 10,6 teraz pracować zarówno na 10,5 i 10,6.
- instalacje systemu Windows zawierają teraz libstdc ++ DLL.
- Haddock:
- GHC teraz jest z plamiaka 2.9.0.
- GHC zawiera teraz hoogle baz danych dla bibliotek.
System
Co nowego w wersji 7.0.1:
- Na platformach POSIX, nie jest nowy I / Kierownik O podstawie epoll / KQUEUE / ankiety, która pozwala wielowątkowy kod I / O, aby przeskalować do znacznie większej liczby (100k +) wątków.
- GHC zawiera obecnie Code Generator LLVM. Do pewnego kodu, szczególnie ciężkiego arytmetyczna za pomocą kodu, generator kodu może przynieść LLVM kilka ciekawych usprawnień wydajności.
- Sprawdź typ został przeprojektowany, co oznacza, że jest teraz w stanie poprawnie obsługiwać interakcje pomiędzy rozszerzeniami systemu typu.
- Inliner został przeprojektowany, które powinny w ogóle dać lepszą wydajność przy jednoczesnym zmniejszeniu niepotrzebnych Kod wielkości wybuchu.
- Duża część układu wykonawczego zostały po przeglądzie, w szczególności odnoszące się do maszyn i wznawianiu o blokowanie wątków i rzucanie wyjątków (throwTo). Kilka przypadków patologicznych wyników zostały ustalone, zwłaszcza gdy chodzi o duże ilości wątków.
- W związku ze zmianami w systemie wykonawczym, jeśli używasz Control.Parallel.Strategies z pakietu równoległego, należy uaktualnić do wersji co najmniej 2 (najlepiej w wersji 3). Realizacja strategii w równoległym-1.x straci paralelizm z GHC 7.0.1.
Komentarze nie znaleziono