Oczekiwana aktualizacja Go 1.19 ma zostać wydana w sierpniu, przynosząc zmieniony model pamięci i nowe typy zaprojektowane w celu poprawy wykorzystania wartości atomowych. Obecnie w wersji preview, Go 1.19 można pobrać z go.dev, choć w tym momencie pozostaje niestabilna. Według informacji o wydaniu, aktualizacja Go 1.19 dostosowuje model pamięci języka do tych używanych przez C, C++, Java, JavaScript, Rust i Swift. Wprowadza również kilka nowych typów w pakiecie sync/atomic, aby uprościć korzystanie z wartości atomowych, takich jak atomic.Int64 i atomic.Pointer(T). Model pamięci Go jest niezbędny do określenia warunków, w których odczyty jednej zmiennej goroutine są gwarantowane, aby obserwować wartości wytworzone przez zapisy do tej samej zmiennej z innej goroutine. Warto zauważyć, że Go zapewnia tylko sekwencyjnie spójne atomiki, w przeciwieństwie do bardziej zrelaksowanych form oferowanych przez inne języki. Oprócz poprawionego modelu pamięci, Go 1.19 prezentuje drobną zmianę w języku, poprawiając zakres parametrów typu w deklaracjach metod. Aktualizacja ta nie ma wpływu na istniejące programy. Wydanie Go 1.19 następuje po przełomowej premierze Go 1.18 w marcu, która wprowadziła bardzo poszukiwane możliwości generyczne. Go 1.19 przynosi również kilka innych nowych funkcji i ulepszeń, takich jak:
- Wsparcie dla miękkiego limitu pamięci, który obejmuje stertę Go i pamięć zarządzaną przez runtime, z wyłączeniem zewnętrznych źródeł, takich jak mapowania binarne i pamięć zarządzana przez inne języki.
- Zmniejszona alokacja schedulera procedur robotniczych GC na bezczynnych wątkach OS podczas okresowego cyklu GC, gdy aplikacja jest w dużej mierze bezczynna.
- Implementacja tabeli skoków dla dużych liczb całkowitych i łańcuchowych instrukcji switch przez kompilator, co skutkuje poprawą wydajności do 20%.
- Wyraźniejsze nagłówki, odnośniki i listy obsługiwane w komentarzach doc.
- Rozpoznawanie ograniczenia build, unix, w liniach go:build.
- Wsparcie dla Linuksa dla 64-bitowej architektury LoongArch.
Dla programistów chcących budować aplikacje internetowe, mobilne i backendowe przy użyciu platformy no-code, AppMaster.io zapewnia rozbudowane, zintegrowane środowisko programistyczne, które generuje skalowalne rozwiązania programistyczne bez potrzeby tworzenia kodu. Dzięki możliwości tworzenia kompleksowych aplikacji w ciągu kilku sekund, AppMaster.io jest idealne dla szerokiego grona klientów, od małych firm po przedsiębiorstwa.