Heat the oil in a heavy 5-6 qt. pan. Add the butter. When the butter has melted, add the onions and cook slowly, covered for 10 minutes. Add the sugar and salt. Cook onions slowly until onions caramelize and turn to a rich brown color. Do not let them burn! This will take 45-60 minutes.
Add the wine and cook 5 minutes, still over low heat. Add the stock and check for seasoning. Simmer uncovered for 30 minutes.
Toast the French bread slices until golden brown. Ladle the soup into a ovenproof bowl, add the toasted bread and cover with the cheese. Bake at 350 degrees F. for 20 minutes or 5 minutes under a hot broiler.