I also agree the default Serial should have buffering. Maybe MODSERIAL is a bit overkill, it has more options than you would normally need, but some kind of non-blocking library would be good to have. For memory footprint you could I guess either make it a seperate library, or put some ifdef into the class, where the larger devices have it by default enabled, and smaller ones the user can manually enable it if he wants. Although that also has some downsides.
When thinking anyway about stuff you could add to Serial, how about a parity/frame error callback thingie?
Something else I wonder, how is mbed planning to handle changes to the C++ API which would also require changes to the C APIs? Especially ports made by 3rd parties, if they are slow with changing it, or just simply not interested anymore in making the required changes. Remove those ports from the mbed library and tell people (+ the compiler if applicable) to use an older revision?
I'd like to see an official option for enabling RTS/CTS flow control on Serial objects. Right now I'm enabling it on an LPC11U35 with the following code:
I think that's all there is to it, and I can confirm that Auto-CTS is working at least... I'm unable to test Auto-RTS due to the way my board is set up.