From dc8ceb06ecb1d680900ca0b3dfab5eb8d6619a06 Mon Sep 17 00:00:00 2001 From: Cody Permann Date: Mon, 13 Nov 2023 15:45:43 -0700 Subject: [PATCH 1/3] More unity By default lump all source at each top level directory into single unity files. This is a departure from before when we did one unity file per directory. closes #26028 --- framework/app.mk | 12 +++++++----- framework/moose.mk | 5 +++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/framework/app.mk b/framework/app.mk index 4c7672576c17..41dc232d4260 100644 --- a/framework/app.mk +++ b/framework/app.mk @@ -79,14 +79,16 @@ $(eval $(call unity_dir_rule, $(unity_src_dir))) # The idea here is that if all they have is src then it's a big jumble of stuff # that won't benefit from unity building # Also, exclude the base directory by default because it's another big jumble -# of unrelated stuff -non_unity_dirs := %.libs %/src %src/base $(app_non_unity_dirs) +# of unrelated stuff. +# Note: If a top-level directory is excluded from being built with unity, we +# ignore contents of all subdirectories under that folder. +non_unity_dirs := %.libs %/src $(app_non_unity_dirs) -# Find all of the individual subdirectories +# Find all of the top-level subdirectories in our src folder(s) # We will create a Unity file for each individual subdirectory # The idea is that files grouped withing a subdirectory are closely related # and will benefit from a Unity build -srcsubdirs := $(shell find $(APPLICATION_DIR)/src -type d -not -path '*/.libs*') +srcsubdirs := $(shell find $(APPLICATION_DIR)/src -maxdepth 1 -type d -not -path '*/.libs*') # Filter out the paths we don't want to Unity build unity_srcsubdirs := $(filter-out $(non_unity_dirs), $(srcsubdirs)) @@ -96,7 +98,7 @@ non_unity_srcsubdirs := $(filter $(non_unity_dirs), $(srcsubdirs)) # Loop over the subdirectories, creating a rule to create the Unity source file # for each subdirectory. To do that we need to create a unique name using the # full hierarchy of the path underneath src -$(foreach srcsubdir,$(unity_srcsubdirs),$(eval $(call unity_file_rule,$(call unity_unique_name,$(unity_src_dir),$(APPLICATION_DIR),$(srcsubdir)),$(shell find $(srcsubdir) -maxdepth 1 \( -type f -o -type l \) -regex "[^\#~]*\.C"),$(srcsubdir),$(unity_src_dir)))) +$(foreach srcsubdir,$(unity_srcsubdirs),$(eval $(call unity_file_rule,$(call unity_unique_name,$(unity_src_dir),$(APPLICATION_DIR),$(srcsubdir)),$(shell find $(srcsubdir) \( -type f -o -type l \) -regex "[^\#~]*\.C"),$(srcsubdir),$(unity_src_dir)))) # This creates the whole list of Unity source files so we can use it as a dependency app_unity_srcfiles := $(foreach srcsubdir,$(unity_srcsubdirs),$(call unity_unique_name,$(unity_src_dir),$(APPLICATION_DIR),$(srcsubdir))) diff --git a/framework/moose.mk b/framework/moose.mk index c44c80c50b88..b469633de4a0 100644 --- a/framework/moose.mk +++ b/framework/moose.mk @@ -229,7 +229,8 @@ moose_LIBS := $(moose_LIB) $(pcre_LIB) $(hit_LIB) ### Unity Build ### ifeq ($(MOOSE_UNITY),true) -srcsubdirs := $(shell find $(FRAMEWORK_DIR)/src -type d -not -path '*/.libs*') +# Top level source directories in MOOSE +srcsubdirs := $(shell find $(FRAMEWORK_DIR)/src -mindepth 1 -maxdepth 1 -type d -not -path '*/.libs*') # This folder does not build with unity moose_non_unity := %/utils_nonunity @@ -293,7 +294,7 @@ unity_unique_name = $(1)/$(subst /,_,$(patsubst $(2)/%,%,$(patsubst $(2)/src/%,% # 4. Now that we have the name of the Unity file we need to find all of the .C files that should be #included in it # 4a. Use find to pick up all .C files # 4b. Make sure we don't pick up any _Unity.C files (we shouldn't have any anyway) -$(foreach srcsubdir,$(unity_srcsubdirs),$(eval $(call unity_file_rule,$(call unity_unique_name,$(unity_src_dir),$(FRAMEWORK_DIR),$(srcsubdir)),$(shell find $(srcsubdir) -maxdepth 1 \( -type f -o -type l \) -name "*.C"),$(srcsubdir),$(unity_src_dir)))) +$(foreach srcsubdir,$(unity_srcsubdirs),$(eval $(call unity_file_rule,$(call unity_unique_name,$(unity_src_dir),$(FRAMEWORK_DIR),$(srcsubdir)),$(shell find $(srcsubdir) \( -type f -o -type l \) -name "*.C"),$(srcsubdir),$(unity_src_dir)))) app_unity_srcfiles := $(foreach srcsubdir,$(unity_srcsubdirs),$(call unity_unique_name,$(unity_src_dir),$(FRAMEWORK_DIR),$(srcsubdir))) From 28971df7fb75f7fc79a0f94a60de2adee4404889 Mon Sep 17 00:00:00 2001 From: Cody Permann Date: Wed, 20 Dec 2023 11:58:25 -0700 Subject: [PATCH 2/3] More tweaks to unity logic Here we want to ensure that we pickup source files of subdirectories of non_unity directories. To do that, we'll run a separate find to get all subdirectories of a location to filter against. refs #26028 --- framework/app.mk | 5 ++--- framework/moose.mk | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/app.mk b/framework/app.mk index 41dc232d4260..b3b8199310b6 100644 --- a/framework/app.mk +++ b/framework/app.mk @@ -80,8 +80,6 @@ $(eval $(call unity_dir_rule, $(unity_src_dir))) # that won't benefit from unity building # Also, exclude the base directory by default because it's another big jumble # of unrelated stuff. -# Note: If a top-level directory is excluded from being built with unity, we -# ignore contents of all subdirectories under that folder. non_unity_dirs := %.libs %/src $(app_non_unity_dirs) # Find all of the top-level subdirectories in our src folder(s) @@ -89,10 +87,11 @@ non_unity_dirs := %.libs %/src $(app_non_unity_dirs) # The idea is that files grouped withing a subdirectory are closely related # and will benefit from a Unity build srcsubdirs := $(shell find $(APPLICATION_DIR)/src -maxdepth 1 -type d -not -path '*/.libs*') +allsrcsubdirs := $(shell find $(APPLICATION_DIR)/src -type d -not -path '*/.libs*') # Filter out the paths we don't want to Unity build unity_srcsubdirs := $(filter-out $(non_unity_dirs), $(srcsubdirs)) -non_unity_srcsubdirs := $(filter $(non_unity_dirs), $(srcsubdirs)) +non_unity_srcsubdirs := $(filter $(non_unity_dirs), $(allsrcsubdirs)) # This is a biggie # Loop over the subdirectories, creating a rule to create the Unity source file diff --git a/framework/moose.mk b/framework/moose.mk index b469633de4a0..0c807650b91a 100644 --- a/framework/moose.mk +++ b/framework/moose.mk @@ -231,6 +231,7 @@ ifeq ($(MOOSE_UNITY),true) # Top level source directories in MOOSE srcsubdirs := $(shell find $(FRAMEWORK_DIR)/src -mindepth 1 -maxdepth 1 -type d -not -path '*/.libs*') +allsrcsubdirs := $(shell find $(FRAMEWORK_DIR)/src -type d -not -path '*/.libs*') # This folder does not build with unity moose_non_unity := %/utils_nonunity @@ -244,7 +245,7 @@ endif unity_src_dir := $(FRAMEWORK_DIR)/build/unity_src unity_srcsubdirs := $(filter-out $(moose_non_unity), $(srcsubdirs)) -non_unity_srcsubdirs := $(filter $(moose_non_unity), $(srcsubdirs)) +non_unity_srcsubdirs := $(filter $(moose_non_unity), $(allsrcsubdirs)) define unity_dir_rule $(1): From 95176f84555cd6fc4fee657f4a058db9d5abc69f Mon Sep 17 00:00:00 2001 From: Jason M Miller Date: Mon, 8 Jan 2024 16:40:54 -0700 Subject: [PATCH 3/3] Update UIUC training Added addition information about training venue. Closes #26509 --- .../more_detail/MOOSE_2024_10_15-17_UIUC.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/doc/content/training/more_detail/MOOSE_2024_10_15-17_UIUC.md b/modules/doc/content/training/more_detail/MOOSE_2024_10_15-17_UIUC.md index 6a1d12d2df52..7fcaff3812b0 100644 --- a/modules/doc/content/training/more_detail/MOOSE_2024_10_15-17_UIUC.md +++ b/modules/doc/content/training/more_detail/MOOSE_2024_10_15-17_UIUC.md @@ -6,4 +6,23 @@ !include training/more_detail/generic_moose_training.md +#### Location Details + +- Towneplace Suites, Marriott Champaign + + - Recommended. About a 15 minute walk to venue and it is in a more central location to campus town. + +- Hampton Inn + + - About 5 minute walk to the venue. + + +#### Directions to venue: + +!style! halign=left +Room 1040, National Center for Supercomputing Applications (1205 W Clark St, Urbana, IL 61801) +Parking is available at both hotels, which are a close walk to venue. Most of the other parking +nearby is for the university (permits are required). +!style-end! + [Back](training/index.md)