| 2026-11-12 Hans-Peter Nilsson <hp@axis.com> | |
| PR libfortran/128618 | |
| * acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Check that | |
| __atomic_fetch_add works on a 64-bit type, not just int. | |
| * configure: Regenerate. | |
| 2026-11-10 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| PR bootstrap/103459 | |
| * configure: Regenerate. | |
| * configure.ac: Use AC_CANONICAL_TARGET instead of | |
| AC_CANONICAL_SYSTEM. Remove unneeded AC_SUBST(target_alias). | |
| 2026-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/118935 | |
| * io/io.h (gfc_unit): Add file_dev and file_ino. | |
| (set_unit_stream, get_unit_stream, set_unit_file_id) | |
| (unit_file_id_matches): New functions. | |
| * io/open.c (new_unit): Use connect_unit_stream. | |
| (already_open): Use set_unit_stream. | |
| * io/transfer.c (finalize_transfer): Likewise. | |
| * io/unit.c (set_internal_unit): Use connect_unit_stream. | |
| (init_units): Likewise. | |
| * io/unix.c (connect_unit_stream): New function. | |
| (find_file0): Use get_unit_stream and unit_file_id_matches | |
| instead of dereferencing the stream. | |
| * io/unix.h (connect_unit_stream): Declare. | |
| 2026-11-04 Richard Biener <rguenther@suse.de> | |
| PR libfortran/103886 | |
| PR libfortran/114895 | |
| * acinclude.m4 (LIBGFOR_CHECK_TIME_BITS64): New check for | |
| 64-bit time_t support. | |
| * configure.ac: Invoke LIBGFOR_CHECK_TIME_BITS64. | |
| * configure: Regenerate. | |
| * config.h.in: Regenerate. | |
| 2026-11-04 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| PR bootstrap/103459 | |
| * configure.ac: Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS. | |
| 2026-11-02 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| PR bootstrap/103459 | |
| * configure: Regenerate. | |
| * configure.ac: Remove AC_LIBTOOL_DLOPEN and change LT_INIT to LT_INIT([dlopen]). | |
| 2026-11-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127893 | |
| * io/io.h (recycle_unit): Declare. | |
| * io/unit.c (CACHE_SIZE): Increase to 64. | |
| (CACHE_SLOT): New macro. | |
| (unit_free_list): New variable. | |
| (insert_unit): Reuse a unit from the free list. | |
| (recycle_unit, probe_unit_cache, set_unit_cache): New functions. | |
| (check_for_recursive): Probe the unit cache first. Hold | |
| unit_rwlock while searching the unit tree. | |
| (get_gfc_unit): Probe the unit cache before taking unit_rwlock. | |
| Use the direct-mapped cache. Recycle a closed unit instead of | |
| freeing it. | |
| (close_unit_1): Clear the unit's cache slot. Recycle the unit | |
| instead of freeing it. | |
| (close_units): Free the units on the free list. | |
| * io/unix.c (find_file): Take unit_rwlock for writing and recycle | |
| a closed unit instead of freeing it. | |
| (flush_all_units): Recycle a closed unit instead of freeing it. | |
| 2026-11-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127751 | |
| * caf/shmem.c (_gfortran_caf_register): Keep the token of a | |
| component when its allocation fails. | |
| * caf/shmem/alloc.c (get_memory_by_id_internal): Free the memory and | |
| return NULL when the id cannot be entered into the hashmap. | |
| * caf/shmem/hashmap.c (enlarge_hashmap_mem): Return false, leaving | |
| the hashmap unchanged, when the shared memory is exhausted. Free the | |
| old table with its size in bytes. | |
| (resize_hm): Return false and restore the old table on failure. | |
| Free the old table with its size in bytes. | |
| (hashmap_set): Return false when the hashmap cannot be enlarged. | |
| * caf/shmem/hashmap.h (hashmap_set): Return bool. | |
| 2026-11-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127751 | |
| * caf/shmem.c (mul_size_sat): New function. | |
| (_gfortran_caf_register): Use it for all size computations and | |
| saturate the alignment of the size. | |
| * caf/shmem/allocator.c (allocator_shared_malloc): Return a null | |
| pointer for sizes that cannot be rounded up to a power of two. | |
| * caf/shmem/collective_subroutine.c (collsub_reduce_array): | |
| Saturate the buffer size on overflow. | |
| 2026-10-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127973 | |
| * caf/shmem.c (report_collective): New function. | |
| (_gfortran_caf_co_broadcast, _gfortran_caf_co_sum) | |
| (_gfortran_caf_co_min, _gfortran_caf_co_max) | |
| (_gfortran_caf_co_reduce): Use it. | |
| * caf/shmem/collective_subroutine.c (collsub_init_supervisor): | |
| Initialize alloc_failed. | |
| (get_collsub_buf): Return false instead of terminating when the | |
| buffer cannot be grown. Take the allocator lock. | |
| (collsub_no_memory): New function. | |
| (collsub_reduce_array, collsub_broadcast_array): Return a | |
| collsub_result. Use collsub_no_memory. | |
| * caf/shmem/collective_subroutine.h (struct collsub_shared): Add | |
| alloc_failed. | |
| (collsub_result): New enum. | |
| (collsub_broadcast_array, collsub_reduce_array): Return it. | |
| 2026-10-22 Zhongteng Gui <dragon-archer@outlook.com> | |
| PR middle-end/108300 | |
| * caf/shmem/shared_memory.c: Define `WIN32_LEAN_AND_MEAN` before | |
| <windows.h>. | |
| * caf/shmem/supervisor.c: Likewise. | |
| * caf/shmem/thread_support.c: Likewise. | |
| 2026-10-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127738 | |
| * caf/shmem.c (new_team_id): New function. | |
| (_gfortran_caf_form_team): Use it. Count the FORM TEAM statements | |
| of the current team. | |
| (_gfortran_caf_change_team): Derive the coarray ids from the team's | |
| id. | |
| * caf/shmem/supervisor.c (ensure_shmem_initialization): Initialize | |
| the id of the initial team and the next team id. | |
| * caf/shmem/supervisor.h (struct supervisor): Add next_team_id. | |
| * caf/shmem/teams_mgmt.h (struct caf_shmem_team): Add teams_formed. | |
| (struct shmem_image_info): Replace lastmemid by id. Add new_teams | |
| and new_teams_gen. | |
| 2026-10-17 Sam James <sam@gentoo.org> | |
| * configure: Regenerate. | |
| 2026-10-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127753 | |
| * caf/shmem/shared_memory.c (ENV_FD): New. | |
| (shared_memory_init): Pass the descriptor to the images through | |
| ENV_FD and unlink the object. Use the inherited descriptor in an | |
| image. Exclude the mapping from core dumps. | |
| (shared_memory_cleanup): Do not unlink an unlinked object. | |
| 2026-10-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| * caf/shmem/thread_support.c (initialize_shared_mutex) | |
| (initialize_shared_errorcheck_mutex): Do not make the mutex robust. | |
| * caf/shmem/thread_support.h: Remove the executable bit. | |
| 2026-10-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127751 | |
| * caf/shmem.c (_gfortran_caf_register): Handle a failed allocation | |
| of a component. | |
| (_gfortran_caf_form_team): Report a failed allocation. | |
| * caf/shmem/alloc.c (get_memory_by_id_internal): Return NULL when | |
| the shared memory is exhausted. | |
| * caf/shmem/alloc.h (alloc_get_memory_by_id): Document it. | |
| * caf/shmem/allocator.c (allocator_shared_malloc_or_die): New | |
| function. | |
| * caf/shmem/allocator.h (allocator_shared_malloc): Document the null | |
| result. | |
| (allocator_shared_malloc_or_die): Declare. | |
| * caf/shmem/collective_subroutine.c (collsub_init_supervisor) | |
| (get_collsub_buf): Use allocator_shared_malloc_or_die. | |
| * caf/shmem/hashmap.c (hashmap_init_supervisor) | |
| (enlarge_hashmap_mem): Likewise. | |
| * caf/shmem/sync.c (sync_init_supervisor): Likewise. | |
| * caf/shmem/shared_memory.c (shared_memory_get_mem_with_alignment): | |
| Return a null pointer when the shared memory is exhausted. | |
| * caf/shmem/supervisor.c (ensure_shmem_initialization): Terminate | |
| when the initial team cannot be allocated. | |
| 2026-10-16 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| * Makefile.in: Regenerate. | |
| * acinclude.m4: Include ../config/mmap.m4. | |
| 2026-10-16 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| PR bootstrap/103459 | |
| * configure: Regenerate. | |
| 2026-10-13 Harald Anlauf <anlauf@gmx.de> | |
| PR fortran/127845 | |
| * generated/findloc1_c10.c (mfindloc1_c10): Regenerate. | |
| * generated/findloc1_c16.c (mfindloc1_c16): Likewise. | |
| * generated/findloc1_c17.c (mfindloc1_c17): Likewise. | |
| * generated/findloc1_c4.c (mfindloc1_c4): Likewise. | |
| * generated/findloc1_c8.c (mfindloc1_c8): Likewise. | |
| * generated/findloc1_i1.c (mfindloc1_i1): Likewise. | |
| * generated/findloc1_i16.c (mfindloc1_i16): Likewise. | |
| * generated/findloc1_i2.c (mfindloc1_i2): Likewise. | |
| * generated/findloc1_i4.c (mfindloc1_i4): Likewise. | |
| * generated/findloc1_i8.c (mfindloc1_i8): Likewise. | |
| * generated/findloc1_r10.c (mfindloc1_r10): Likewise. | |
| * generated/findloc1_r16.c (mfindloc1_r16): Likewise. | |
| * generated/findloc1_r17.c (mfindloc1_r17): Likewise. | |
| * generated/findloc1_r4.c (mfindloc1_r4): Likewise. | |
| * generated/findloc1_r8.c (mfindloc1_r8): Likewise. | |
| * generated/findloc1_s1.c (mfindloc1_s1): Likewise. | |
| * generated/findloc1_s4.c (mfindloc1_s4): Likewise. | |
| * m4/ifindloc1.m4: Properly advance through MASK array argument when | |
| MASK and DIM are present. | |
| 2026-10-13 Harald Anlauf <anlauf@gmx.de> | |
| Federico Perini <federico.perini@gmail.com> | |
| PR fortran/127846 | |
| * generated/maxloc0_16_i1.c (mmaxloc0_16_i1): Regenerate. | |
| * generated/maxloc0_16_i16.c (mmaxloc0_16_i16): Likewise. | |
| * generated/maxloc0_16_i2.c (mmaxloc0_16_i2): Likewise. | |
| * generated/maxloc0_16_i4.c (mmaxloc0_16_i4): Likewise. | |
| * generated/maxloc0_16_i8.c (mmaxloc0_16_i8): Likewise. | |
| * generated/maxloc0_16_m1.c (mmaxloc0_16_m1): Likewise. | |
| * generated/maxloc0_16_m16.c (mmaxloc0_16_m16): Likewise. | |
| * generated/maxloc0_16_m2.c (mmaxloc0_16_m2): Likewise. | |
| * generated/maxloc0_16_m4.c (mmaxloc0_16_m4): Likewise. | |
| * generated/maxloc0_16_m8.c (mmaxloc0_16_m8): Likewise. | |
| * generated/maxloc0_16_r10.c (mmaxloc0_16_r10): Likewise. | |
| * generated/maxloc0_16_r16.c (mmaxloc0_16_r16): Likewise. | |
| * generated/maxloc0_16_r17.c (mmaxloc0_16_r17): Likewise. | |
| * generated/maxloc0_16_r4.c (mmaxloc0_16_r4): Likewise. | |
| * generated/maxloc0_16_r8.c (mmaxloc0_16_r8): Likewise. | |
| * generated/maxloc0_4_i1.c (mmaxloc0_4_i1): Likewise. | |
| * generated/maxloc0_4_i16.c (mmaxloc0_4_i16): Likewise. | |
| * generated/maxloc0_4_i2.c (mmaxloc0_4_i2): Likewise. | |
| * generated/maxloc0_4_i4.c (mmaxloc0_4_i4): Likewise. | |
| * generated/maxloc0_4_i8.c (mmaxloc0_4_i8): Likewise. | |
| * generated/maxloc0_4_m1.c (mmaxloc0_4_m1): Likewise. | |
| * generated/maxloc0_4_m16.c (mmaxloc0_4_m16): Likewise. | |
| * generated/maxloc0_4_m2.c (mmaxloc0_4_m2): Likewise. | |
| * generated/maxloc0_4_m4.c (mmaxloc0_4_m4): Likewise. | |
| * generated/maxloc0_4_m8.c (mmaxloc0_4_m8): Likewise. | |
| * generated/maxloc0_4_r10.c (mmaxloc0_4_r10): Likewise. | |
| * generated/maxloc0_4_r16.c (mmaxloc0_4_r16): Likewise. | |
| * generated/maxloc0_4_r17.c (mmaxloc0_4_r17): Likewise. | |
| * generated/maxloc0_4_r4.c (mmaxloc0_4_r4): Likewise. | |
| * generated/maxloc0_4_r8.c (mmaxloc0_4_r8): Likewise. | |
| * generated/maxloc0_8_i1.c (mmaxloc0_8_i1): Likewise. | |
| * generated/maxloc0_8_i16.c (mmaxloc0_8_i16): Likewise. | |
| * generated/maxloc0_8_i2.c (mmaxloc0_8_i2): Likewise. | |
| * generated/maxloc0_8_i4.c (mmaxloc0_8_i4): Likewise. | |
| * generated/maxloc0_8_i8.c (mmaxloc0_8_i8): Likewise. | |
| * generated/maxloc0_8_m1.c (mmaxloc0_8_m1): Likewise. | |
| * generated/maxloc0_8_m16.c (mmaxloc0_8_m16): Likewise. | |
| * generated/maxloc0_8_m2.c (mmaxloc0_8_m2): Likewise. | |
| * generated/maxloc0_8_m4.c (mmaxloc0_8_m4): Likewise. | |
| * generated/maxloc0_8_m8.c (mmaxloc0_8_m8): Likewise. | |
| * generated/maxloc0_8_r10.c (mmaxloc0_8_r10): Likewise. | |
| * generated/maxloc0_8_r16.c (mmaxloc0_8_r16): Likewise. | |
| * generated/maxloc0_8_r17.c (mmaxloc0_8_r17): Likewise. | |
| * generated/maxloc0_8_r4.c (mmaxloc0_8_r4): Likewise. | |
| * generated/maxloc0_8_r8.c (mmaxloc0_8_r8): Likewise. | |
| * generated/minloc0_16_i1.c (mminloc0_16_i1): Likewise. | |
| * generated/minloc0_16_i16.c (mminloc0_16_i16): Likewise. | |
| * generated/minloc0_16_i2.c (mminloc0_16_i2): Likewise. | |
| * generated/minloc0_16_i4.c (mminloc0_16_i4): Likewise. | |
| * generated/minloc0_16_i8.c (mminloc0_16_i8): Likewise. | |
| * generated/minloc0_16_m1.c (mminloc0_16_m1): Likewise. | |
| * generated/minloc0_16_m16.c (mminloc0_16_m16): Likewise. | |
| * generated/minloc0_16_m2.c (mminloc0_16_m2): Likewise. | |
| * generated/minloc0_16_m4.c (mminloc0_16_m4): Likewise. | |
| * generated/minloc0_16_m8.c (mminloc0_16_m8): Likewise. | |
| * generated/minloc0_16_r10.c (mminloc0_16_r10): Likewise. | |
| * generated/minloc0_16_r16.c (mminloc0_16_r16): Likewise. | |
| * generated/minloc0_16_r17.c (mminloc0_16_r17): Likewise. | |
| * generated/minloc0_16_r4.c (mminloc0_16_r4): Likewise. | |
| * generated/minloc0_16_r8.c (mminloc0_16_r8): Likewise. | |
| * generated/minloc0_4_i1.c (mminloc0_4_i1): Likewise. | |
| * generated/minloc0_4_i16.c (mminloc0_4_i16): Likewise. | |
| * generated/minloc0_4_i2.c (mminloc0_4_i2): Likewise. | |
| * generated/minloc0_4_i4.c (mminloc0_4_i4): Likewise. | |
| * generated/minloc0_4_i8.c (mminloc0_4_i8): Likewise. | |
| * generated/minloc0_4_m1.c (mminloc0_4_m1): Likewise. | |
| * generated/minloc0_4_m16.c (mminloc0_4_m16): Likewise. | |
| * generated/minloc0_4_m2.c (mminloc0_4_m2): Likewise. | |
| * generated/minloc0_4_m4.c (mminloc0_4_m4): Likewise. | |
| * generated/minloc0_4_m8.c (mminloc0_4_m8): Likewise. | |
| * generated/minloc0_4_r10.c (mminloc0_4_r10): Likewise. | |
| * generated/minloc0_4_r16.c (mminloc0_4_r16): Likewise. | |
| * generated/minloc0_4_r17.c (mminloc0_4_r17): Likewise. | |
| * generated/minloc0_4_r4.c (mminloc0_4_r4): Likewise. | |
| * generated/minloc0_4_r8.c (mminloc0_4_r8): Likewise. | |
| * generated/minloc0_8_i1.c (mminloc0_8_i1): Likewise. | |
| * generated/minloc0_8_i16.c (mminloc0_8_i16): Likewise. | |
| * generated/minloc0_8_i2.c (mminloc0_8_i2): Likewise. | |
| * generated/minloc0_8_i4.c (mminloc0_8_i4): Likewise. | |
| * generated/minloc0_8_i8.c (mminloc0_8_i8): Likewise. | |
| * generated/minloc0_8_m1.c (mminloc0_8_m1): Likewise. | |
| * generated/minloc0_8_m16.c (mminloc0_8_m16): Likewise. | |
| * generated/minloc0_8_m2.c (mminloc0_8_m2): Likewise. | |
| * generated/minloc0_8_m4.c (mminloc0_8_m4): Likewise. | |
| * generated/minloc0_8_m8.c (mminloc0_8_m8): Likewise. | |
| * generated/minloc0_8_r10.c (mminloc0_8_r10): Likewise. | |
| * generated/minloc0_8_r16.c (mminloc0_8_r16): Likewise. | |
| * generated/minloc0_8_r17.c (mminloc0_8_r17): Likewise. | |
| * generated/minloc0_8_r4.c (mminloc0_8_r4): Likewise. | |
| * generated/minloc0_8_r8.c (mminloc0_8_r8): Likewise. | |
| * m4/maxloc0.m4: Fix looping through array argument when BACK=.true. | |
| * m4/minloc0.m4: Likewise. | |
| 2026-10-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127837 | |
| * caf/shmem.c (_gfortran_caf_end_team): Wait with | |
| counter_barrier_wait and set STAT= with TEAM_HEALTH_CHECK when | |
| an image of the team stopped or failed. Do not pass STAT= to | |
| _gfortran_caf_deregister. | |
| * caf/shmem/counter_barrier.c (counter_barrier_wait): Add | |
| TERMINATED argument. | |
| * caf/shmem/counter_barrier.h (counter_barrier_wait): Likewise. | |
| * caf/shmem/sync.c (sync_team): Update call. | |
| 2026-10-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127684 | |
| * caf/shmem.c (_gfortran_caf_sync_images): Do not return early for | |
| a stopped or failed image. Check the images only when one of them | |
| terminated. | |
| (mark_stopped): Use notify_image_terminated. | |
| (_gfortran_caf_fail_image): Likewise. | |
| * caf/shmem/supervisor.c (supervisor_main_loop): Likewise. Do not | |
| signal the images waiting in sync_table. | |
| * caf/shmem/sync.c (stopped_image_in): New function. | |
| (sync_table): Return whether an image of the set terminated. Stop | |
| waiting when an image of the set stopped. | |
| (notify_image_terminated): New function. | |
| * caf/shmem/sync.h (sync_table): Return bool. | |
| (notify_image_terminated): Declare. | |
| 2026-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127702 | |
| * caf/shmem.c (_gfortran_caf_num_images, _gfortran_caf_image_status) | |
| (_gfortran_caf_form_team): Take the size of a team from its image | |
| map. | |
| * caf/shmem/collective_subroutine.c (collsub_reduce_array): | |
| Likewise. | |
| 2026-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (_gfortran_caf_register): Allocate a part for every | |
| image of the program. | |
| 2026-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (_gfortran_caf_init): Synchronize without the checks | |
| of the SYNC ALL statement. | |
| (_gfortran_caf_sync_all, _gfortran_caf_sync_team): Report the images | |
| of the team that terminated before the images synchronized. | |
| (_gfortran_caf_form_team): Register the team. | |
| * caf/shmem/collective_subroutine.c (collsub_sync): Adjust. | |
| * caf/shmem/counter_barrier.c (counter_barrier_init): Initialize the | |
| new fields. | |
| (counter_barrier_add_locked): Count the images removed from the | |
| barrier. | |
| (next_round): Take that count as a completed round ends. | |
| (wait_round, counter_barrier_wait_abortable): Report it for the round | |
| the image took part in. | |
| * caf/shmem/counter_barrier.h (counter_barrier): Add terminated and | |
| round_terminated. | |
| (counter_barrier_wait_abortable): Adjust. | |
| * caf/shmem/supervisor.c (ensure_shmem_initialization): Initialize | |
| the list of teams. Register the initial team. | |
| (supervisor_main_loop): Drop an image that terminated without | |
| leaving its teams from them. | |
| * caf/shmem/supervisor.h (supervisor): Add teams. | |
| * caf/shmem/sync.c (sync_all, sync_team_unless_stopped): Report the | |
| images that terminated. | |
| * caf/shmem/sync.h (sync_all, sync_team_unless_stopped): Adjust. | |
| * caf/shmem/teams_mgmt.c (team_terminated_images) | |
| (update_teams_images_locked, leave_team): Take the team's image | |
| info. | |
| (register_team, update_registered_teams): New functions. | |
| * caf/shmem/teams_mgmt.h (shmem_image_info): Add next_team. | |
| (register_team, update_registered_teams): Declare. | |
| 2026-10-02 LIU Hao <lh_mouse@126.com> | |
| * configure.ac: Set `enable_caf_shmem` to true for Cygwin and MinGW hosts. | |
| * configure: Regenerate. | |
| 2026-09-25 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (_gfortran_caf_co_broadcast, _gfortran_caf_co_sum) | |
| (_gfortran_caf_co_min, _gfortran_caf_co_max) | |
| (_gfortran_caf_co_reduce): Report a terminated image of the team | |
| through STAT. | |
| * caf/shmem/collective_subroutine.c (collsub_sync): Return whether | |
| the images were synchronized. | |
| (collsub_reduce_array, collsub_broadcast_array): Likewise. Give up | |
| when an image of the team terminated. | |
| * caf/shmem/collective_subroutine.h (collsub_reduce_array) | |
| (collsub_broadcast_array): Adjust. | |
| 2026-09-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (_gfortran_caf_sync_all, _gfortran_caf_sync_team): | |
| Have the effect of SYNC MEMORY with a stopped image. Check the | |
| images of the team synchronized. | |
| (_gfortran_caf_sync_images): Check the images synchronized. Fix | |
| the format of the duplicate image error. | |
| (mark_stopped, _gfortran_caf_fail_image): Tell leave_teams whether | |
| the image stopped. | |
| (_gfortran_caf_co_broadcast, _gfortran_caf_co_sum) | |
| (_gfortran_caf_co_min, _gfortran_caf_co_max) | |
| (_gfortran_caf_co_reduce): Report terminated images of the team. | |
| * caf/shmem/collective_subroutine.c (collsub_sync): Give up when an | |
| image of the team terminated. | |
| * caf/shmem/counter_barrier.c (counter_barrier_init): Initialize the | |
| new fields. | |
| (next_round, wait_round): New functions. | |
| (counter_barrier_wait): Use wait_round. Take part in the next round | |
| when a round is aborted. | |
| (counter_barrier_wait_abortable, counter_barrier_abort_locked): New | |
| functions. | |
| * caf/shmem/counter_barrier.h (counter_barrier): Make | |
| curr_wait_group a round number. Add aborted_round, | |
| abortable_arrivals and aborting. | |
| (counter_barrier_wait_abortable, counter_barrier_abort_locked): | |
| Declare. | |
| * caf/shmem/sync.c (sync_all): Return whether the images were | |
| synchronized. | |
| (sync_team_unless_stopped): New function. | |
| * caf/shmem/sync.h (sync_all): Adjust. | |
| (sync_team_unless_stopped): Declare. | |
| * caf/shmem/teams_mgmt.c (count_images, team_terminated_images) | |
| (update_teams_images_locked, leave_team): New functions. | |
| (update_teams_images): Use update_teams_images_locked. | |
| (leave_teams): Add stopped argument. Use leave_team. | |
| (check_health): Classify the given images. Return the stat value. | |
| * caf/shmem/teams_mgmt.h (leave_teams, check_health): Adjust. | |
| (TEAM_HEALTH_CHECK): New macro. | |
| (HEALTH_CHECK): Use it. | |
| 2026-09-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (mark_stopped): New function. | |
| (_gfortran_caf_stop_numeric, _gfortran_caf_stop_str): Call it. | |
| (_gfortran_caf_fail_image): Call leave_teams. | |
| * caf/shmem/supervisor.c (supervisor_main_loop): Keep the status an | |
| image recorded for itself. | |
| * caf/shmem/sync.c (sync_table): Use the total number of images as | |
| the row stride. Handle an image list and all images alike. | |
| * caf/shmem/teams_mgmt.c (leave_teams): New function. | |
| * caf/shmem/teams_mgmt.h (leave_teams): Declare. | |
| 2026-09-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/127347 | |
| * caf/shmem.c (mark_error_stopped): New function. | |
| (_gfortran_caf_error_stop_str, _gfortran_caf_error_stop): Call it. | |
| * caf/shmem/supervisor.c (supervisor_main_loop): Terminate all | |
| images when an image error stopped. | |
| * caf/shmem/supervisor.h (image_status): Add IMAGE_ERROR_STOP. | |
| 2026-09-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/126964 | |
| * intrinsics/associated.c (stride_in_bytes): New function. | |
| (associated): Require the element length or the span to agree | |
| rather than the span alone, and compare the stride in bytes | |
| rather than the stride. | |
| 2026-09-04 Iain Sandoe <iain@sandoe.co.uk> | |
| * configure: Regenerate. | |
| * configure.ac: Account for missing runtime support for | |
| PTHREAD_PROCESS_SHARED on Darwin versions earlier that | |
| Darwin11. | |
| 2026-09-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/126777 | |
| * caf/single.c (_gfortran_caf_team_number): Treat a null team | |
| handle as the current team. | |
| 2026-08-13 Mikael Morin <mikael@gcc.gnu.org> | |
| PR fortran/126799 | |
| * caf/shmem/collective_subroutine.c (collsub_broadcast_array): Use | |
| the element length field instead of the span field as element size. | |
| 2026-08-13 Mikael Morin <mikael@gcc.gnu.org> | |
| PR fortran/126799 | |
| * caf/shmem/collective_subroutine.c (collsub_reduce_array): Use | |
| the element length field instead of the span field as element size. | |
| 2026-08-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/118793 | |
| * io/io.h (NML_ERR_MSG_LEN): New macro. | |
| (st_parameter_dt): Add nml_err_pending bit. | |
| (gfc_unit): Add nml_err_msg. | |
| * io/list_read.c (nml_error): New function. | |
| (eat_separator): Use new function | |
| (convert_integer): Likewise. | |
| (convert_unsigned): Likewise. | |
| (parse_repeat): Likewise. Save the position where the repeat | |
| count starts and report it. | |
| (read_logical): Likewise. | |
| (read_integer): Likewise. | |
| (parse_real): Likewise. | |
| (read_complex): Likewise. | |
| (read_real): Likewise. | |
| (check_type): Likewise. | |
| (list_formatted_read_scalar): Likewise. | |
| (read_character): Likewise. Save the initial position of the value | |
| (nml_read_obj): Unwind to nml_err_ret on a deferred error. | |
| (namelist_read): Store deferred errors in the unit's nml_err_msg | |
| buffer. | |
| 2026-07-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| * intrinsics/reduce.c (reduce): Fix the mask_present. | |
| 2026-07-25 John David Anglin <danglin@gcc.gnu.org> | |
| * intrinsics/ceill_16.c: Fix whitespace. | |
| 2026-07-24 John David Anglin <danglin@gcc.gnu.org> | |
| PR libfortran/126305 | |
| * c99_protos.h (acosl, acoshl, asinl, asinhl,atan2l, atanl, | |
| atanhl, ceill, cosl, coshl, expl, hypotl, logl, sinl, sinhl, | |
| sqrtl, tanl, tanhl, truncl, nextafterl, powl, erfl, erfcl): | |
| Add declarations. | |
| * configure.ac (powl, erfl): Add GCC_CHECK_MATH_FUNCs. | |
| * configure: Regenerate. | |
| * config.h.in: Regenerate. | |
| * intrinsics/c99_functions.c: Include math_imp.h. Move code | |
| to manipulate the floating-point type to math_imp.h. | |
| (erfl, erfcl, acosl, acoshl, asinl, asinhl, atan2l, atanl, | |
| atanhl, ceill, cosl, coshl, expl, floorl, fmodl, hypotl, | |
| logl, sinl, sinhl, sqrtl, tanl, tanhl, truncl, nextafterl, | |
| powl, log10l): Implement. | |
| (frexpl): Move code to intrinsics/frexpl_16.c. | |
| (scalbnl): Move code to intrinsics/scalbnl_16.c. | |
| * intrinsics/ceill_16.c: New. | |
| * intrinsics/floorl_16.c: New. | |
| * intrinsics/frexpl_16.c: New. | |
| * intrinsics/math_imp.h: New. | |
| * intrinsics/nextafterl_16.c: New. | |
| * intrinsics/scalbnl_16.c: New. | |
| * intrinsics/truncl_16.c: New. | |
| * libgfortran.h (USE_LIBQUADLIB): Define on hppa-hpux. | |
| 2026-07-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/93727 | |
| * io/list_read.c (parse_real): Parse the possible hexadecimal | |
| float formatted and then allow the convert_real function to | |
| validate the result. | |
| 2026-07-15 John David Anglin <danglin@gcc.gnu.org> | |
| * caf/shmem/shared_memory.c (shared_memory_set_env): Don't | |
| quote ENV_PPID. | |
| (shared_memory_init) Don't quote ENV_BASE. | |
| 2026-07-15 John David Anglin <danglin@gcc.gnu.org> | |
| * libgfortran.h (FMT_Z): Define. | |
| * caf/shmem/alloc.c (get_memory_by_id_internal): Use FMT_Z. | |
| (alloc_free_memory_with_id): Likewise. | |
| * caf/shmem/supervisor.c (get_memory_size_from_envvar): Likewise. | |
| * caf/shmem/thread_support.c (get_handle): Likewise. | |
| (thread_support_init_supervisor): Likewise. | |
| * intrinsics/reduce.c (reduce): Likewise. | |
| 2026-07-15 John David Anglin <danglin@gcc.gnu.org> | |
| PR libfortran/125623 | |
| * c99_protos.h: (strnlen, frexpl, scalbnl): Declare if HAVE_STRNLEN, | |
| HAVE_FREXPL, HAVE_SCALBNL aren't defined, respectively. | |
| * intrinsics/c99_functions.c (strnlen, frexpl, scalbnl): Implement. | |
| * libgfortran.h: Include string.h if HAVE_STRING_H. | |
| 2026-07-15 John David Anglin <danglin@gcc.gnu.org> | |
| * caf/shmem/shared_memory.c (SHM_NAME_FMTD, SHM_NAME_FMTS): Define. | |
| (shared_memory_init) Use SHM_NAME_FMTD format to generate | |
| shm_name. | |
| (shared_memory_cleanup): Use SHM_NAME_FMTS to generate shm_name. | |
| * caf/shmem/supervisor.c (get_memory_size_from_envvar): Use | |
| 1 GB on 64-bit Windows and HP-UX. | |
| 2026-07-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/126116 | |
| * io/io.h (struct gfc_unit): Add bool for tracking. | |
| Fix some white space problems. | |
| * io/unit.c (close_unit_1): Add a declaration for this | |
| function so it can be called before it has been defined. | |
| Use the new bool. | |
| (is_internal_reserved): New helper function. Returns true | |
| only if the unit is not null and the internal unit kind is zero | |
| meaning its not a character string. | |
| (find_unit): Use the new helper function | |
| (find_or_create_unit): Use the new helper. | |
| (get_unit): Set the new bool. | |
| (close_unit): Update the close_unit_1 argument list. | |
| (close_units): Likewise. | |
| 2026-07-06 Harald Anlauf <anlauf@gmx.de> | |
| PR fortran/121366 | |
| * Makefile.am: Add dependency on wrappers to degree trigonometric | |
| functions. | |
| * Makefile.in: Regenerate. | |
| * gfortran.map: Add references to new wrapper functions. | |
| * intrinsics/trigd_specific.F90: New file. | |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| * configure: Regenerate. | |
| cherry picked from approved upstream pull request | |
| AX_PTHREAD: Fix pthread detection on Solaris 11.4 | |
| https://github.com/autoconf-archive/autoconf-archive/pull/341 | |
| 2026-06-29 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| PR bootstrap/103459 | |
| * acinclude.m4: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE. | |
| * configure.ac: Replace AC_LANG_C with AC_LANG([C]). Replace | |
| AM_PROG_LIBTOOL with LT_INIT. | |
| 2026-06-25 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/118793 | |
| * io/file_pos.c (st_rewind): Reset line and column numbers. | |
| * io/io.h: Add line and column number to the gfc_unit | |
| structure. | |
| * io/list_read.c (next_char_default): Increment the column | |
| position and line number as needed. | |
| (next_char_internal): Likewise. | |
| (next_char_utf8): Likewise. | |
| (nml_err_ret): Build the expanded diagnostic message. | |
| * io/unit.c (insert_unit): Initialize the line_number. | |
| 2026-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/118774 | |
| * io/transfer.c (formatted_transfer_scalar_write): Set nspaces | |
| to number of skips for FMT_X. | |
| 2026-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/114618 | |
| * io/transfer.c (formatted_transfer_scalar_write): Determine | |
| possible new max_pos based on file I/O method and adjust | |
| accordingly | |
| 2026-06-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/82086 | |
| * io/list_read.c (nml_read_obj): Add is_component parameter | |
| to correctly distribute repeat count across derived-type array | |
| elements. | |
| 2026-06-11 Thomas Koenig <tkoenig@gcc.gnu.org> | |
| PR fortran/30438 | |
| PR fortran/28004 | |
| * mk-kinds-h.sh: Add print statement so test will compile with -Wall -Werror. | |
| * mk-sik-inc.sh: Likewise. | |
| * mk-srk-inc.sh: Likewise. | |
| 2026-06-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/93727 | |
| * io/read.c (read_ex): New function implementing EX format read. | |
| * io/io.h (read_ex): Declare. | |
| * io/transfer.c (formatted_transfer_scalar_read): Add FMT_EX case | |
| dispatching to read_ex. | |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> | |
| * caf/caf_error.h (caf_runtime_error): Fix typos. | |
| * caf/libcaf.h: Likewise. | |
| * caf/mpi.c (caf_runtime_error): Likewise. | |
| * caf/shmem.c (_gfortran_caf_deregister): Likewise. | |
| * caf/shmem/alloc.h: Likewise. | |
| * caf/shmem/shared_memory.c (shared_memory_get_env): Likewise. | |
| * caf/shmem/supervisor.h (struct caf_shmem_token): Likewise. | |
| * caf/shmem/teams_mgmt.h (struct caf_shmem_team): Likewise. | |
| * caf/single.c (caf_runtime_error): Likewise. | |
| (_gfortran_caf_deregister): Likewise. | |
| * intrinsics/args.c (get_command_i4): Likewise. | |
| * intrinsics/chmod.c: Likewise. | |
| * intrinsics/env.c (PREFIX): Likewise. | |
| * intrinsics/trigd.c: Likewise. | |
| * io/async.c (init_adv_cond): Likewise. | |
| * io/file_pos.c (st_rewind): Likewise. | |
| * io/format.c (parse_format_list): Likewise. | |
| * io/open.c (new_unit): Likewise. | |
| (st_open): Likewise. | |
| * io/transfer.c (write_block): Likewise. | |
| (unformatted_read): Likewise. | |
| (unformatted_write): Likewise. | |
| (formatted_transfer_scalar_write): Likewise. | |
| * io/transfer128.c (export_proto): Likewise. | |
| * io/unix.c (buf_init): Likewise. | |
| (mem_read): Likewise. | |
| * io/write.c (btoa): Likewise. | |
| (list_formatted_write): Likewise. | |
| * runtime/select_inc.c (select_string): Likewise. | |
| 2026-05-29 Peter Damianov <peter0x44@disroot.org> | |
| * caf/shmem/shared_memory.c (shared_memory_init): Use | |
| MapViewOfFileEx instead of MapViewOfFileExNuma. | |
| 2026-05-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/93727 | |
| * io/write.c (write_ex): Replace simple truncation with | |
| rounding-aware logic respecting dtp round_status. Add carry | |
| propagation and integer-digit normalization. | |
| * io/write_float.def: Change use of GFC_UINTEGER_8 to | |
| long long unsigned. | |
| 2026-05-25 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/93727 | |
| * io/write_float.def (get_float_hex_string): Fix kind=8 frac_part | |
| from unsigned long to GFC_UINTEGER_8 to correct truncated hex | |
| output and IEEE_INVALID_FLAG on ILP32 targets. Update kind=10 | |
| and kind=16 to use GFC_UINTEGER_8 for consistency. | |
| Assisted by: Claude Sonnet 4.6 | |
| 2026-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| Harald Anlauf <anlauf@gcc.gnu.org> | |
| PR fortran/93727 | |
| * io/format.c (format_lex): Add new FMT_EX token handing. | |
| (parse_format_list): Likewise. | |
| (next_format): Likewise | |
| * io/io.h (write_ex): Add prototype for new function. | |
| (internal_proto): Likewise. | |
| * io/transfer.c (formatted_transfer_scalar_write): Use FMT_EX token. | |
| * io/write.c (write_default_char4): White space fix. | |
| (write_a): White space fix. | |
| (write_boz): White space fix. | |
| (write_decimal): White space fix. | |
| (otoa_big): White space fix. | |
| (write_character): White space fix. | |
| (write_float_0): White space fix. | |
| (write_ex): New function which uses the new helper function | |
| get_float_hex_string() to build the hexadecimal float format for | |
| output. | |
| (write_real): White space fix. | |
| (write_complex): White space fix. | |
| (nml_write_obj): White space fix. | |
| (namelist_write): White space fix. | |
| * io/write_float.def: Add defines to handle the various forms of | |
| KIND=16 floats. These handle the selection of the appropriate versions | |
| of the frexp, fabs, and scalbn used to extract the components of the | |
| floating point values. | |
| (GFC_REAL_16_FREXP): New define. | |
| (GFC_REAL_16_FABS): New define. | |
| (GFC_REAL_16_SCALBN): New define. | |
| (get_float_hex_string): New function which exatracts the bits and builds | |
| the basic hexadecimal format strings into a buffer. The buffer is provided | |
| by the caller write_ex. | |
| (build_float_string): White space fix. | |
| (quadmath_snprintf): White space fix. | |
| (determine_en_precision): White space fix. | |
| 2026-05-22 Tobias Burnus <tburnus@baylibre.com> | |
| * m4/matmul.m4: Fix comment typo. | |
| * generated/matmul_c10.c: Regenerate. | |
| * generated/matmul_c16.c: Regenerate. | |
| * generated/matmul_c17.c: Regenerate. | |
| * generated/matmul_c4.c: Regenerate. | |
| * generated/matmul_c8.c: Regenerate. | |
| * generated/matmul_i1.c: Regenerate. | |
| * generated/matmul_i16.c: Regenerate. | |
| * generated/matmul_i2.c: Regenerate. | |
| * generated/matmul_i4.c: Regenerate. | |
| * generated/matmul_i8.c: Regenerate. | |
| * generated/matmul_r10.c: Regenerate. | |
| * generated/matmul_r16.c: Regenerate. | |
| * generated/matmul_r17.c: Regenerate. | |
| * generated/matmul_r4.c: Regenerate. | |
| * generated/matmul_r8.c: Regenerate. | |
| 2026-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| * caf/shmem/sync.h (lock_t): Rename to caf_shmem_lock_t. | |
| * caf/shmem.c: Adapt uses. | |
| 2026-05-08 Harald Anlauf <anlauf@gmx.de> | |
| PR libfortran/125087 | |
| * io/format.c (free_format_data): Change argument from pointer to | |
| format_data to pointer to pointer of object. | |
| (free_format_hash_table): Adjust argument passed to | |
| free_format_data. | |
| (save_parsed_format): Likewise. | |
| * io/format.h (free_format_data): Adjust prototype. | |
| * io/transfer.c (st_read_done_worker): Adjust argument passed to | |
| free_format_data. | |
| (st_write_done_worker): Likewise. | |
| 2026-05-06 Harald Anlauf <anlauf@gmx.de> | |
| PR libfortran/125095 | |
| * io/list_read.c (read_logical): Eat comments in namelist read mode. | |
| (read_integer): Likewise. | |
| (read_character): Likewise. | |
| (read_complex): Likewise. | |
| (read_real): Likewise. | |
| 2026-05-05 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| * Makefile.in: Regenerate. | |
| * acinclude.m4: Delete LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY. | |
| * aclocal.m4: Regenerate. | |
| * configure: Likewise. | |
| * configure.ac: Use GCC_CHECK_ATTRIBUTE_VISIBILITY istead of | |
| LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY. | |
| 2026-04-17 Steven G. Kargl <kargl@gcc.gnu.org> | |
| PR libfortran/120431 | |
| * m4/spread.m4: Fix scalar source case with ncopies < 0. | |
| * generated/spread_c10.c: Regenerated. | |
| * generated/spread_c16.c: Ditto. | |
| * generated/spread_c17.c: Ditto. | |
| * generated/spread_c4.c: Ditto. | |
| * generated/spread_c8.c: Ditto. | |
| * generated/spread_i1.c: Ditto. | |
| * generated/spread_i16.c: Ditto. | |
| * generated/spread_i2.c: Ditto. | |
| * generated/spread_i4.c: Ditto. | |
| * generated/spread_i8.c: Ditto. | |
| * generated/spread_r10.c: Ditto. | |
| * generated/spread_r16.c: Ditto. | |
| * generated/spread_r17.c: Ditto. | |
| * generated/spread_r4.c: Ditto. | |
| * generated/spread_r8.c: Ditto. | |
| 2026-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/124543 | |
| * io/inquire.c (inquire_via_unit): Change the returned | |
| encoding value to 'DEFAULT' when not specified in the OPEN | |
| statement. | |
| 2026-04-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/124543 | |
| * io/inquire.c (inquire_via_unit): Adjust the logic to | |
| treat formatted vs unformatted correctly. | |
| 2026-03-30 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/124543 | |
| * io/inquire.c (inquire_via_unit): Fix return value for | |
| NAMED. Add check for ACTION. Fix return values for | |
| ENCODING, PENDING, READ, WRITE, READWRITE. | |
| (inquire_via_filename): Add checks for ACTION, DELIM, | |
| ASYNCHRONOUS, and PENDING. Fix return value for | |
| ENCODING. | |
| * io/unix.c (inquire_access): Change return value from no | |
| to unknown. | |
| 2026-03-22 Christopher Albert <albert@tugraz.at> | |
| PR fortran/124512 | |
| * Makefile.am: Adjust the dependencies. | |
| * Makefile.in: Regenerate. | |
| * configure: Regenerate. | |
| * configure.ac: Add new check. | |
| 2026-03-06 Andre Vehreschild <vehre@gcc.gnu.org> | |
| PR libfortran/124371 | |
| * caf/shmem/supervisor.c (startWorker): Use defined(HAVE_FORK) | |
| instead of !defined(WIN32) for preprocessor conditional. | |
| 2026-03-04 Jakub Jelinek <jakub@redhat.com> | |
| PR libfortran/124330 | |
| * caf/shmem/shared_memory.c (shared_memory_set_env): Make buffer | |
| used by putenv static. | |
| (shared_memory_init): Likewise. | |
| 2026-03-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/124330 | |
| * caf/shmem/shared_memory.c (shared_memory_init): Use | |
| putenv() for HPUX and as a fallback where setenv() | |
| is not available. | |
| 2026-03-03 Mark Wielaard <mark@klomp.org> | |
| * config.h.in: Regenerate. | |
| * configure: Regenerate. | |
| 2026-03-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| John David Anglin <danglin@gcc.gnu.org> | |
| PR fortran/124330 | |
| * caf/shmem/shared_memory.c: Fix filenames for WIN32 | |
| includes. | |
| (shared_memory_set_env): Use putenv() for HPUX and as | |
| a fallback where setenv () is not available. | |
| (NAME_MAX): Replace with SHM_NAME_MAX. | |
| (SHM_NAME_MAX): Use this to avoid duplicating NAME_MAX | |
| used elsewhere. | |
| * caf/shmem/supervisor.c (get_image_num_from_envvar): Add | |
| a fallback for HPUX. Add additional comment to explain why | |
| the number of cores is used in lieu of GFORTRAN_NUM_IMAGES. | |
| 2026-03-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/124286 | |
| * acinclude.m4: Remove LIBGFOR_CHECK_SANE_BUILTIN_CLZL. | |
| * caf/shmem/allocator.c (next_power_of_two): Use known sane | |
| builtin. | |
| * configure: Regenerate. | |
| * configure.ac: Remove use of LIBGFOR_CHECK_SANE_BUILTIN_CLZL. | |
| 2026-02-27 Jakub Jelinek <jakub@redhat.com> | |
| * aclocal.m4: Regenerate. | |
| * configure: Regenerate. | |
| * Makefile.in: Regenerate. | |
| 2026-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/88076 | |
| * caf/shmem/supervisor.c (supervisor_main_loop): Use fprintf | |
| instead of dprintf. | |
| 2026-02-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/88076 | |
| * Makefile.in: Regenerate. | |
| * aclocal.m4: Regenerate. | |
| * config.h.in: Regenerate. | |
| * configure: Regenerate. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * Makefile.am: Only build caf_shmem when pthreads is available. | |
| * configure.ac: Check for pthreads availability and needed | |
| flags. | |
| 2026-02-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR fortran/124080 | |
| * caf/shmem/hashmap.c (hash): Use size_t instead of | |
| uint64. | |
| (hmiadd): Use size_t instead of ssize_t. | |
| (scan_inside_lookahead): Likewise. | |
| (scan_empty): Likewise. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| PR fortran/121429 | |
| * caf/shmem.c (_gfortran_caf_deregister): Add a call to | |
| sync_team. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| PR fortran/124071 | |
| * caf/shmem.c (_gfortran_caf_form_team): Take free index, when | |
| computed one is already taken. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| PR fortran/88076 | |
| * Makefile.am: Add new library. | |
| * Makefile.in: Regenerated | |
| * acinclude.m4: Add check for reasonable clzl. | |
| * config.h.in: Regenerate. | |
| * configure: Regenerate. | |
| * configure.ac: Call clzl check. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * caf/shmem.c (_gfortran_caf_finalize): Add a sync on the | |
| initial team on exit. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * caf/shmem.c (_gfortran_caf_finalize): Ensure all memory is | |
| freeed. | |
| * caf/shmem/allocator.c (allocator_shared_malloc): Just assert | |
| that an index is within its bounds. | |
| * caf/shmem/shared_memory.c (shared_memory_init): When shared | |
| memory can not be placed at desired address, exit the image with | |
| a certain code to let the supervisor restart the image. | |
| (shared_memory_cleanup): Only the supervisor must unlink the shm | |
| object. | |
| * caf/shmem/supervisor.c (GFORTRAN_ENV_IMAGE_RESTARTS_LIMITS): | |
| New environment variable. | |
| (get_image_restarts_limit): Get the limit on image restarts | |
| (accumulates over all) form the environment variable or default | |
| to 4000. | |
| (ensure_shmem_initialization): Add error handling. | |
| (startWorker): Start a single worker/image. | |
| (kill_all_images): Kill all images. | |
| (supervisor_main_loop): When a worker/image reports a shared | |
| memory issue just try to restart it. | |
| * caf/shmem/thread_support.c (initialize_shared_mutex): Mark | |
| mutex robust on plattforms that support it. | |
| (initialize_shared_errorcheck_mutex): Same. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * caf/shmem.c (_gfortran_caf_init): Cleanup thread helper after | |
| use. | |
| (_gfortran_caf_finalize): Same. | |
| (_gfortran_caf_register): Handle lock_t correctly on Windows. | |
| (GEN_OP): Prevent warnings on non-initialized. | |
| (_gfortran_caf_lock): Handle lock_t correctly on Windows. | |
| (_gfortran_caf_unlock): Same. | |
| (_gfortran_caf_random_init): Fix formatting. | |
| (_gfortran_caf_form_team): Add more images to counter_barrier. | |
| * caf/shmem/alloc.c: Use routines from thread_support. | |
| * caf/shmem/allocator.c (allocator_lock): Same. | |
| (allocator_unlock): Same. | |
| * caf/shmem/allocator.h: Same. | |
| * caf/shmem/collective_subroutine.c (get_collsub_buf): Same. | |
| * caf/shmem/collective_subroutine.h: Same. | |
| * caf/shmem/counter_barrier.c (lock_counter_barrier): Same. | |
| (unlock_counter_barrier): Same. | |
| (counter_barrier_init): Same. | |
| (counter_barrier_wait): Same. | |
| (change_internal_barrier_count): Same. | |
| (counter_barrier_add): Same. | |
| (counter_barrier_init_add): Only increase value w/o signaling. | |
| (counter_barrier_get_count): Use routines from thread_support. | |
| * caf/shmem/counter_barrier.h: Same. | |
| (counter_barrier_init_add): New routine. | |
| * caf/shmem/shared_memory.c: Use windows routines where | |
| applicable. | |
| (shared_memory_set_env): Same. | |
| (shared_memory_get_master): Same. | |
| (shared_memory_init): Same. | |
| (shared_memory_cleanup): Same. | |
| * caf/shmem/shared_memory.h: Use types from thread_support. | |
| * caf/shmem/supervisor.c: Use windows routines where applicable. | |
| (get_memory_size_from_envvar): Same. | |
| (ensure_shmem_initialization): Same. | |
| (supervisor_main_loop): Use windows process start on windows | |
| without fork(). | |
| * caf/shmem/supervisor.h: Use types from thread_support. | |
| * caf/shmem/sync.c (lock_table): Use routines from thread_support. | |
| (unlock_table): Same. | |
| (sync_init): Same. | |
| (sync_init_supervisor): Same. | |
| (sync_table): Same. | |
| (lock_event): Same. | |
| (unlock_event): Same. | |
| (event_post): Same. | |
| (event_wait): Same. | |
| * caf/shmem/sync.h: Use types from thread_support. | |
| * caf/shmem/teams_mgmt.c (update_teams_images): Use routines from | |
| thread_support. | |
| * caf/shmem/thread_support.c: Add synchronisation primitives for | |
| windows. | |
| (smax): Windows only: Max for size_t. | |
| (get_handle): Windows only: Get the windows handle for a given | |
| id or create a new one, if it does not exist. | |
| (get_mutex): Windows only: Shortcut for getting a windows mutex | |
| handle. | |
| (get_condvar): Windows only: Same, but for condition variable. | |
| (thread_support_init_supervisor): Windows only: Clear tracker of | |
| allocated handle ids. | |
| (caf_shmem_mutex_lock): Windows only: Implememtation of lock, | |
| (caf_shmem_mutex_trylock): Windows only: trylock, and | |
| (caf_shmem_mutex_unlock): Windows only: unlock for Windows. | |
| (bm_is_set): Windows only: Check a bit is set in a mask. | |
| (bm_clear_bit): Windows only: Clear a bit in a mask. | |
| (bm_set_mask): Windows only: Set all bits in a mask. | |
| (bm_is_none): Windows only: Check if all bits are cleared. | |
| (caf_shmem_cond_wait): Windows only: Condition variable | |
| implemenation fro wait, | |
| (caf_shmem_cond_broadcast): Windows only: broadcast, and | |
| (caf_shmem_cond_signal): Windows only: signal on Windows. | |
| (caf_shmem_cond_update_count): Windows only: Need to know the | |
| images participating in a condition variable. | |
| (thread_support_cleanup): Windows only: Clean up the handles on | |
| exit. | |
| * caf/shmem/thread_support.h: Conditionally compile the types | |
| as required for Windows and other OSes. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * caf/shmem/allocator.c (next_power_of_two): Use sane clzl | |
| implementation or alternative. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| PR fortran/88076 | |
| * caf/libcaf.h (LIBCAF_H): Remove unused header inclusions. | |
| * caf/caf_error.c: New file. | |
| * caf/caf_error.h: New file. | |
| * caf/shmem.c: New file. | |
| * caf/shmem/alloc.c: New file. | |
| * caf/shmem/alloc.h: New file. | |
| * caf/shmem/allocator.c: New file. | |
| * caf/shmem/allocator.h: New file. | |
| * caf/shmem/collective_subroutine.c: New file. | |
| * caf/shmem/collective_subroutine.h: New file. | |
| * caf/shmem/counter_barrier.c: New file. | |
| * caf/shmem/counter_barrier.h: New file. | |
| * caf/shmem/hashmap.c: New file. | |
| * caf/shmem/hashmap.h: New file. | |
| * caf/shmem/shared_memory.c: New file. | |
| * caf/shmem/shared_memory.h: New file. | |
| * caf/shmem/supervisor.c: New file. | |
| * caf/shmem/supervisor.h: New file. | |
| * caf/shmem/sync.c: New file. | |
| * caf/shmem/sync.h: New file. | |
| * caf/shmem/teams_mgmt.c: New file. | |
| * caf/shmem/teams_mgmt.h: New file. | |
| * caf/shmem/thread_support.c: New file. | |
| * caf/shmem/thread_support.h: New file. | |
| 2026-02-26 Andre Vehreschild <vehre@gcc.gnu.org> | |
| * caf/libcaf.h (_gfortran_caf_failed_images): Team attribute is | |
| used now in some libs. | |
| (_gfortran_caf_image_status): Same. | |
| (_gfortran_caf_stopped_images): Same. | |
| * caf/single.c (caf_internal_error): Use correct printf function | |
| to handle va_list. | |
| 2026-01-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/123012 | |
| * io/list_read.c (read_character): Add new check after | |
| get_string and provide better comments. | |
| 2026-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/123012 | |
| * io/list_read.c (read_character): Add new check when no | |
| quate is provided and the character string is digits only. | |
| 2026-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> | |
| * io/io.h: Change type of self to intptr_t. | |
| * io/async.h (LOCK_UNIT): Cast __gthread_self () to intptr_t. | |
| (TRYLOCK_UNIT): Likewise. | |
| (OWN_THREAD_ID): Likewise. | |
| 2026-01-08 Thomas Koenig <tkoenig@gcc.gnu.org> | |
| * io/async.h: DEBUG_ASYNC needs gtreads support. | |
| (LOCK_UNIT): Only lock when there is pthreads support and it is active. | |
| Otherwise, just set unit->self to 1. | |
| (UNLOCK_UNIT): Only unlock when there is pthreads support and it is active. | |
| Otherwise, just set unit->self to 0. | |
| (TRYLOCK_UNIT): Only try locking when thee is pthreads support and it is | |
| active. Otherwise, return unit->self. | |
| (OWN_THREAD_ID): New macro. | |
| * io/io.h: gfc_unit's self is an int when there is no gthreads support. | |
| * io/unit.c (check_for_recursive): Check for equality of unit which | |
| locked to OWN_THREAD_ID. | |
| 2026-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> | |
| * io/async.h (UNLOCK_UNIT): New macro. | |
| (TRYLOCK_UNIT): New macro. | |
| (LOCK_UNIT): New macro. | |
| * io/io.h: Delete prototype for unused stash_internal_unit. | |
| (check_for_recursive): Add prototype for this new function. | |
| * io/transfer.c (data_transfer_init): Add call to new | |
| check_for_recursive. | |
| * io/unit.c (delete_unit): Fix comment. | |
| (check_for_recursive): Add new function. | |
| (init_units): Use new macros. | |
| (close_unit_1): Likewise. | |
| (unlock_unit): Likewise. | |
| * io/unix.c (flush_all_units_1): Likewise. | |
| (flush_all_units): Likewise. | |
| * runtime/error.c (translate_error): : Add translation for | |
| "Recursive I/O not allowed runtime error message. | |
| 2026-01-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| Revert: | |
| 2026-01-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/119136 | |
| * io/io.h: Delete prototype for unused stash_internal_unit. | |
| (check_for_recursive): Add prototype for this new function. | |
| * io/transfer.c (data_transfer_init): Add call to new | |
| check_for_recursive. | |
| * io/unit.c (delete_unit): Fix comment. | |
| (check_for_recursive): Add new function. | |
| * runtime/error.c (translate_error): Add translation for | |
| "Recursive I/O not allowed runtime error message. | |
| 2026-01-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
| PR libfortran/119136 | |
| * io/io.h: Delete prototype for unused stash_internal_unit. | |
| (check_for_recursive): Add prototype for this new function. | |
| * io/transfer.c (data_transfer_init): Add call to new | |
| check_for_recursive. | |
| * io/unit.c (delete_unit): Fix comment. | |
| (check_for_recursive): Add new function. | |
| * runtime/error.c (translate_error): Add translation for | |
| "Recursive I/O not allowed runtime error message. | |
| Copyright (C) 2026 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |