Using a mandoline or sharp knife, thinly slice the onions lengthwise and set aside.
In a large pot like a French oven, melt the butter and oil over medium-low heat.
Add the onions and cover, stirring every now and then until they are soft, cooked down, and slightly caramelized. Add in the sugar, salt, and pepper to taste as you stir. This will take 30-40 min.
Add the juices and turn the heat to high. Cook for about 10 minutes, or until the juice is reduced by half. Add the beef stock and turn the heat down to medium-low. Let the soup simmer uncovered for about 45 minutes, until it is dark, flavorful and rich. If it tastes too strong, add a little water and cover to continue cooking.
Just before serving, toast the bread.
Ladle the soup into ovenproof bowls and place on a rimmed baking sheet. Top with the toasted bread and cheese. Place the soup bowls under the broiler until the cheese is bubbly, about 10 minutes.