1/2 stick unsalted butter
3 large onions, halved lengthwise, then thinly sliced lengthwise
3/4 teaspoon salt
2 garlic cloves, minced
2 teaspoons all-purpose flour
3/4 cup dry sherry
8 cups beef broth (48 ounces)
3 sprigs fresh thyme
1 bay leaf
1/2 teaspoon black pepper
4 (1/2-inch-thick) diagonal slices of baguette
8 ounces (1/2 pound ) Gruyère cheese, sliced thinly
2 tablespoons Parmigiano-Reggiano, grated
Melt butter a 4- to 5-quart heavy pot over medium heat. Add onions and salt and cook, uncovered, until onions are soft and nicely browned, about 30 minutes. Cover sand reduce temperature to medium-low. Don't stir for about 15 more minutes. Open the pot and there should be a nice deep brown crust starting to form on the bottom of the pan. Using a wooden or silicone spatula, scrape the bottom of the pan and mix the darkened bottom into the onions. Add garlic and continue to cook uncovered for 15 more minutes. Add flour and cook, stirring, 1 minute. Stir in sherry and cook for about 2 minutes, continuing to stir. Stir in broth, thyme and bay leaf and pepper and simmer, uncovered, stirring occasionally, 30 minutes. Season to taste.
While soup is simmering, put oven rack in the middle and preheat oven to 350°F.
Place bread in 1 layer on a baking sheet and toast, turning over once for about 5-7 minutes per side.
Remove bread from oven and preheat broiler. Put crocks in a shallow baking pan.
Discard bay leaf and thyme from soup and ladle soup into crocks. Top soup with a slice of bread in each and place enough Gruyère to cover tops of crocks, then sprinkle with Parmigiano-Reggiano.
Broil 4 to 5 inches from heat until cheese is melted and bubbly, 1-2 minutes. Watch carefully so it doesn't burn!