Issaquah Trip Report, day nine

day −1
day 0
days 1 and 2
day 3
general remarks about the meetings
days 4 to 6
days 7 and 8

2023-02-11 08:30-8:00:

Today begins my trip home, but that won’t start until this afternoon.  This morning is the final half day of the C++ standards committee, a plenary session where we take formal votes and wrap things up.

I lost a pair of glasses somewhere yesterday.  I was hoping that somebody would find them and turn them in, either to the front desk at the hotel or to one of the folks in charge of the meeting…no such luck.  Fortunately, what I lost are my “computer glasses” with the same prescription as the near prescription on my bifocals; and I can see my computer screen just fine as long as I’m only about a cubit from it.  I think I need to get some new glasses anyway because my eyes seem to be getting worse.

10:00:
Well, that was fast.  We finished our work and took the 32 formal votes in just an hour and a half.

The next two meetings will be in June in Varna, Bulgaria, and in Kona, HI, USA in November.  I’ll take Amtrak to the east and west coasts, respectively, and fly from there.

We have 2024 meetings tentatively scheduled for Japan, Sweden and Poland.  I’ll probably participate in the Japan meeting via Zoom since I refuse to sit in an airplane long enough to get there in person.

The hotel had no way to call me a taxi, but the very nice woman at the front desk called an Uber using her app; and I paid her the cash.  I have a cell phone, but I don’t have any special apps on it.  I guess this old dude needs to get with the program.

11:15:

After checking one bag to Chicago at the train station, I went to a restaurant in the Embassy Suites and had the Reuben sandwich.  It was edible, but I could detect no 1000 island dressing.  I guess the cook layed on hands and intoned “1000 island”.

12:00:

King Street Station has no place to sit at a table and work on a laptop; but on the third floor is some kind of arts and education council office, or something, which has a couple of such places; so here I sit, one of three folks doing a bit of writing.

Train 8 started boarding about 16:40 or so and departed on time.  I’m in room D this time, so the electrical outlet is near the window where I’ll be plugging in my power strip.  I’m riding backwards this time, but that doesn’t bother me, and I’m on the fireman’s side eastbound so I won’t have the sun in my eyes going through big sky country.

Like the westbound trip on train 7, this train has only one coach.  The TA said that it’s OK during the light travel season, but they’ll really need a second coach, and probably a second revenue sleeper, before long.

We were out of Wenatchee only about fifteen minutes late.  It turns out that Wenatchee is a crew change point for the engineers, but not for the conductors.  Normally, engineers and conductors work, not particular trains, but particular sections of track.  Why only the engineers change in Wenatchee I have no clue.

We have about a two hour dwell time in Minot, which I’ll talk more about tomorrow.  For now, I’ll try to use this time to post the report for day 9.  It might not be proofread as well as it should have been.

Issaquah Trip Report, days seven and eight

general remarks about the meetings
days 4 to 6

2023-02-09:

I didn’t get a good night’s sleep last night and felt pretty wiped out most of the day.  I spent a little time in the Evolution Working Group (EWG), the subgroup that considers changes to the core language.  All I remember is something called a “pipeline operator” which would inject arguments into following function calls.  I couldn’t figure out what it was good for or why anyone would want it.

Mostly I rested up for an evening session of the numerics study group where we continued the discussion of floating point rounding that slopped over from the evening session on Tuesday.  It turns out that there are quite a few cases where the behavior is not at all intuitive.

The last thing on the agenda was a paper of mine.  About a decade ago or so, I had in mind a database access library in C++ that would be the rough moral equivalent of the java.sql.stuff; but I soon had some medical issues and couldn’t pursue it, and so nothing ever came of it.

One thing I needed, and implemented, was a C++ type that could give me a round trip to and from SQL’s NUMERIC and DECIMAL types which are fixed point decimals.  A few years ago, the numerics folks were thinking about publishing a numbers TS.  The rational number in §7 of that paper was my work; and I thought that my “big decimal” type was a kind of number, too, and so maybe a more generally useful version of it (written against C++23, has NaNs and infinities, etc.) could also go into the TS.  It turns out that there’s not much interest in that any more, so I won’t be pursuing that any further.  I think that was the right decision since my target audience is good old “business data processing” which isn’t really the market for C++.

2023-02-10:

I spent today in EWG where it was “safety Friday”.  We spent the morning talking about various ways to mitigate the problem of uninitialized local variables on a function’s call stack.  There seems to be consensus for the rule that local variables without explicit initializers should be zero-initialized (like globals are), but it turns out that there are corner cases where that could change the meaning of some code, and static analysis tools would no longer be able to flag the potential bug.  We’ll need to think about this some more.

Just before lunch, we took the customary group photo.  As I write this, it’s not online yet; but I’ll embed it when it is.  I’ll be which is the bottom picture among these three.  I’m the old fart on the right of the first row who’s sitting on his walker wearing a St. Louis Cardinals baseball cap and an N95 mask (because COVID isn’t over yet).

After lunch, we talked about “type and resource safety”.  From the paper by Bjarne Stroustrup:

  • every object is accessed according to the type with which it was defined
  • every object is properly constructed and destroyed
  • every pointer either points to a valid object or is the nullptr
  • every reference through a pointer is not through the nullptr
  • every access through a subscripted pointer is in-range

Those are informal rules that C++ coders have always been expected to follow, but it’s not really possible for static analysis tools to enforce them completely.  There seems to be a strong consensus for some kind of framework that would improve the situation.

Tomorrow morning will be a plenary session where we take formal votes.  That should end by noon, probably before; and then I’ll be on my way back to King Street Station where I’ll board Amtrak’s Empire Builder for the first leg home.

Issaquah Trip Report, days four to six

general remarks about the meetings

First, a caveat emptor:  the Hilton Garden Inn in Issaquah, Washington lacks a proper restaurant.  Instead, they have a bar that has limited menus for breakfast and supper…no lunch at all.  Also, they don’t send out laundry or dry cleaning, so I’ll be a mess on my trip home (not dirty or smelly, but definitely unpressed).

2023-02-06:
The plenary session where we took care of administrivia only lasted until the morning break.

For the rest of the day, I hung out in the Library Evolution Working Group (LEWG) where we dealt with eleven papers.  Four answered national body comments, one fixed a bug (for which there was no NB comment), and one answered a comment from the Core (language) Working Group (CWG).  That completed our high priority business, so the other five papers were suggestions for new standard library features.  We’ll be talking mostly about new features for the rest of the week since that’s what LEWG is about anyway.

2023-02-07:
This old dude was happy to catch up on his sleep and write the blog post I linked to above.  I’m pretty sure that nobody on the committee missed me. 😎

The hotel doesn’t have all the meeting rooms that we need, so some groups have evening sessions.  I attended an evening session of the Numerics Study Group where we considered three papers, one suggesting additional statistics functions, one about an extension to the random number business, and one claiming that more math functions could be declared constexpr (“constant expression”).  There was a fourth paper that dealt with deprecating and replacing the fsetround and fgetround functions in the floating point environment that C++ inherits from C.  We got through the rationale for deprecating the functions, but we ran out of time before we could talk about what to replace them with.  We’ll have another evening session on Thursday when, if we have the time, we might also talk about my paper.  (The floating point stuff is very much more important.)

2023-02-08:
LEWG spent the whole day talking about SIMD stuff (“single instruction, multiple data”).

<aside>
The committee can publish three kinds of documents, an international standard (IS), a technical specification (TS) which is a kind of warning about possible future standardization (“Hey, vendors and users, try this out and let us know if we made any mistakes.”), and a technical report (TR) which is basically “Here’s something we thought you might find interesting.”
</aside>

We have a TS that defines a class called simd that provides a mechanism for doing parallel processing of vectorizable data on multicore machines, which is a Really Big Deal for the numerics folks.  As expected, “mistakes were made;” and fixing them has lots of subtle ramifications.  This took lots of discussion among numerics experts, most of which went over my head.  (One of the reasons that I participate in the committee is that I can learn lots of stuff just by keeping my mouth shut and my ears open.  I hope I never stop learning.)

Issaquah Trip Report, the reason for the trip

Here begins the part of my trip report that talks about the reason for the trip.  I’ll probably combine several days into single posts since I might not have much to say that would be of interest to a general audience.

This week I’m attending meetings of ISO/IEC JTC1 SC22 WG21 and INCITS/C++, the standards committees for the C++ programming language.  (It’s not a joint meeting, but the two committees meet at the same place at the same time.  Ask the lawyers, I don’t understand it.)

I’ll begin by briefly describing how these meetings work, and then “below the fold” I’ll have a bunch of geeky info for folks who really like organizational charts (although I won’t have any actual charts).

We meet in full committee three times per year, although it was pretty much all Zoom during COVID.  The first post-COVID face-to-face meeting was in November in Kailua-Kona, Hawaii (which I missed).  This week we’re meeting in Issaquah, Washington, a suburb of Seattle.  The summer meeting will be in June in Varna, Bulgaria.

We meet for five and a half days.  Monday morning is a plenary session where we handle a bunch of administrivia (approve the agenda, approve the previous meeting’s minutes, stuff like that).  After lunch, we break into subgroups where most of the actual work gets done.  Saturday morning is another plenary session where we take formal votes.  By the time we get to Saturday, everything is pretty much a done deal; and with the odd exception here and there, all motions pass by unanimous consent.

A couple hundred people from around the world show up at the meetings, and we’d never get anything done if we tried to do the real work in plenary sessions.  Also, nobody knows everything, so we tend to gravitate to smaller groups where we might have some useful input.  I, for example, will probably participate mostly in the Library Evolution Working Group which considers changes to the standard library.

We’ve adopted a very aggressive schedule of publishing a new version of the C++ standard every three years; and since C++11, we’ve published C++14, C++17 and C++20.  Our main focus this week will be answering national body comments that were part of the result of the C++23 final committee draft (FCD) ballot.  We hope to instruct the WG21 convenor (the person in charge, kind of like a chair) to send the draft international standard (DIS) out for ballot on Saturday.  We’ll know the results of that ballot in a few months, at which time we might have more national body comments to answer, or the document might go straight to being published as an international standard (IS).  We’ll see…

OK, now for the boring organizational stuff:

[Read more…]

Issaquah trip report, day 3

day −1
day 0
days 1 & 2

2023-02-05 04:30-8:00

I had gone to bed early last night, so I woke up early this morning feeling as refreshed as I ever do these days.

And I didn’t have to wonder what to do with myself since the answer was obvious:  get my day 1 & 2 trip report in order and posted.  That was basically my job for this morning except for the complimentary breakfast buffet at 07:00.

10:30:  checked out of the Embassy Suites, taxi to Issaquah, checked in at the meeting hotel.

My room at the Garden Inn in Issaquah is not as awesome, but it has an alarm clock by the bed and a place to plug in my laptop right there at the desk where I’m using it…things that one expects at even three-star places but were lacking at the Embassy Suites.

The hotel restaurant won’t open until 16:00 for supper, so I got a couple of bags of Cheez-It and a diet Coke to tide me over until I can get some real food.  The meeting host (Microsoft this time) will graciously provide catered breakfast and lunch buffets Monday through Friday, and I expect breakfast on Saturday as well.

So I’m starting on my day 3 report.  Since I have nothing else to say about today yet, I’m back in sync. 😎

16:15:  I’m all caught up on my e-mail and FtB reading except for a couple of videos that Abe Drayton posted.  I might pass on swamp critters and slime molds. 😎  For now, this old fart wants to take a nap.

18:00:  there was an informal meeting in the lobby for new folks on the committee.  I didn’t see any of the old-timers whom I knew well, so I didn’t join in.  Instead, I went to the hotel’s “restaurant”, which is really a bar.  They had kickboxing on one TV and Tucker Carleson on the other.  Not my kind of place as you might imagine.  I had their fish and chips for supper, which was acceptable; but I think I’ll have to look for another place nearby to have my evening meal.

Tomorrow begins a week of meetings.

Issaquah trip report, days 1 and 2

day −1
day 0

2023-02-03 07:00-7:00

I had the scrambled eggs and pork sausage for breakfast.  That was good.

08:58:  we had an emergency brake application due to low air pressure again.  It seems to be a problem with the air hose on the lead engine.  Moving again at 09:20.

10:04:  now 4:30 late departing Grand Forks.

10:11:  emergency application again.  The engineer was complaining about the Siemens engine in the lead (#304).  She said that she seems to have problems with that one every time.

This time the conductor reporting seeing deer remains under the engine.  He guessed that we had hit a deer and that knocked apart the air hoses between the first two units.  We’re now 4:44 late departing Devils Lake.

I had the Angus burger for lunch at noon.  That met expectations.

At Minot, the conductor announced that they we’re now having problems the “the third engine” (that would be the GE #44) which was “making a strange noise”.  It turns out that we’re going to have to set out the third unit.

16:32:  we finally departed Minot with just the two Siemens units, now 6:41 late.  I guess that BNSF’s rule about the Builder having at least three working engine units only applies at departure from the initial terminal…or something.

Sorry for all the geeky stuff so far.  I’ll try to include more about the travel experience later.  This newbie blogger is still getting the hang of it.

Marcus Ranum had mentioned that he’d like to see photos along the way, but I was too discombulated to pack a proper camera.  Imagine vast expanses of pure white snow.

There’s a reason they call North Dakota “big sky country.”  I remember a PA announcement by the café attendant on my first trip on the Builder:  “Ladies and gentlemen, if you look out the train on the right side, you’ll see a house…”  That was the whole announcement. 😎

22:23:  we made the usual fuel stop just east of Havre, Montana, then pulled into the station at 22:44.  Havre is a crew change stop where we get new engineers and conductors who work, not particular trains, but particular sections of track; so there’s usually a long dwell time.  We departed Havre at 22:51, now 6:36 late.

2023-02-04 07:00-8:00

I had the “railroad french toast” with a side of pork sausage for breakfast.  That was quite good.  I guess my first experience with Amtrak’s “new” food service on the western long-distance trains was an outlier; but it’s still not up to the standards that I remember from only about a decade ago.

08:57:  We stayed just under 7 hours late all the way to Spokane, Washington.  This is the first time I’ve seen the Spokane station in daylight since the Builder usually does its work here around midnight westbound and in the wee hours of the morning eastbound.

Spokane is where the train splits into the Seattle and Portland sections.  They set out the Siemens 302 which will eventually pull train 27, the last four cars on the combined train, to Portland, Oregon.  Train 7 now has just the Siemens 304; but it has only five cars to pull, the baggage car, the crew sleeper, the regular sleeper, the diner, and the only coach.

They were able to shorten the usual dwell time in Spokane a bit, and we departed at 09:17, now 5:53 late.

12:00:  they served us lunch in the diner because of the train’s lateness.  I had the Angus burger again.

They still allow only sleeper passengers in the diner, but train 7 between Spokane and Seattle uses the half of the diner nearer the coach as what they call a “mini café” which has a variety of plastic-wrapped stuff that folks can eat.  That’s probably minimally acceptable for breakfast since they’ll have a variety of cereals and breakfast pastries.  I gather that they had only breakfast stuff available for lunch, which is not normally served on this train.

15:43:  we stayed just under six hours late to Everett, Washington, where we head south along Puget Sound.  Since my room is on the fireman’s side, I didn’t get to see much of the Sound; but I got to see all the homes up on the bluff just east of the tracks.  I always marvel at the designs:  lots of balconies, lots of windows, small bits jutting out here and there.  They must be “interesting” to live in.

In Seattle, we enter a long tunnel that eventually discharges the train into King Street Station where we made our final stop at 16:35, just 5:06 late thanks to about half an hour of padding in the schedule.

I’m using a walker this trip because my old back doesn’t want me to remain vertical for more than a few minutes without something to lean on.  It’s one that I bought for my mother years ago; and it has four wheels and a seat to sit on.  I was hoping that the seat would hold my two bags, one with most of the clothes that I’ll need, and a large laptop case with room for another change of clothes; but they didn’t quite fit, at least not in a way that wasn’t awkward, so I checked the larger bag in Chicago.

After claiming my checked bag, I walked half a block to the Embassy Suites where I’ll spend my first night.  Its advantage is proximity to the train station; its disadvantage is that it seems to have been designed by marketeers instead of by hospitality folks.  For example, my room has a very attractive desk where I can work on my laptop, but nowhere nearby to plug it in.  Fortunately, I have my power strip with a nice long extension cord which I used on the train.

After getting my day zero post more or less in order, I went for supper.  I didn’t want a big meal, so I had just the grilled cheese sandwich and tomato soup.  Taking their cue from the hotel, the restaurant gave me a sandwich that was more pretentious than tasty.  The soup was quite good.

After supper, I finished proofreading and posting the day zero post; and that was about all I was good for that day.  I went to bed around 20:00 or so and had a good night’s sleep.

Issaquah trip report, day zero

day minus one

2023-02-02 06:37-6:00

Well, that was a revolting development; and it was totally my fault.  I got up too late because I had forgotten how long it takes
to pack, the result being that I was effectively a newbie who missed the time when they shut down boarding for train 302 by a couple of minutes.

I switched the first leg of my trip to train 22, the Texas Eagle, which, for some reason, is starting out in St. Louis today, so it’ll depart on time.  The bad news is that I’ll have only about an hour and a quarter to make my connection in Chicago. If the train loses time on the way, which can happen just south of Joliet and between Joliet and Chicago, I could miss the Empire Builder as well.  I can still hope for the best, though.

I popped for a roomette on 22, so I’ll be comfortable on the train.

So here I sit in the first class lounge wondering what to do with myself.  They’ll probably start boarding in about 40 minites.

08:03:
We’re pulling only 8 minutes late.

The map and GPS location on the little screen on my cell phone really isn’t very good at all.  I really need to get a new GPS receiver that I can plug into my laptop.

10:00:
They served an early lunch because of the scheduled arrival time in Chicago, but that was fine with me because I had had an early breakfast.  I had the meatballs and baked ziti which I guess could be called food.  I wish they’d restore a proper diner on the Texas Eagle, but the chances of that are probably nill.

We were as close to on time as makes no difference almost all the way into Chicago.  There was a danger of having to wait a while for cross traffic just south of Joliet, but that didn’t happen today.

The Joliet station now has an island platform…that’s new since the last time I was on a train that stopped there.

We’re on Canadian National tracks from Joliet to Chicago, and there’s always the danger of getting stopped there.  We did have some cross traffic to wait for at 13:00, but that lasted only about five minutes.

One thing I noticed is that UP’s trackside detectors don’t go through the whole spiel any more if there’s nothing to report.  CN’s detectors do.

We crossed the bridge onto amtrak property at 13:22 and made our final stop at 13:32.  I’ll definitely make my connection to the Empire Builder.

15:00:
Just five minutes before my next train’s scheduled departure, we were advised that boarding would be delayed one hour due to mechanical issues (I’m guessing the Siemens engines).  We’ll see how long the delay really is.

We started boarding around 16:00.  This train has three engine units, two Siemens Chargers, numbers 302 and 304, and one General Electric Genesis unit, number 44.  The Seattle section has a baggage car, a crew sleeper with several roomettes sold as revenue space, one regular sleeper, a diner, and just one coach.  The Portland section has an accessible coach, a coach-bag, a “cross country café” instead of the usual Sightseer Lounge, and the Portland sleeper.

I’m in room C in the Seattle sleeper, and the bedrooms are on the fireman’s side (the left side of the train), so I’ll have the sun in my eyes and have to close the curtains during parts of the day depending on the time of day and our actual direction of travel at the moment.

We finally got out from under the station at 16:48, so we’re on our way, but METRA and CP/Soo Line are treating us very badly, crossing us over between tracks and giving us lots of stop and restricting signals.

17:43:
We’re already 2:14 minutes late at the first stop of Glenview, IL.

18:05:
We’re stopped again due to “low MR pressure.”  (“MR” is “main reservoir”, an air tank for the brakes.)  That caused an emergency brake application, so the conductor needs to walk the train because such a brake application can cause a derailment…not expected for shorter passenger trains, but they have to make sure.

18:22:
We started moving but almost immediately got another emergency application, and the conductor needed to walk the train again.

18:28:
Moving again.

It’s time for my dinner reservation.  The Empire Builder has a proper diner, and I was looking forward to it.  Unfortunately, I was underwhelmed.  It’s a lot better than the “cross-country café” on the Texas Eagle, but it’s not nearly up to the standards of the diners that Amtrak ran a decade or so ago.

I had the flatiron steak with mashed potatoes and a mix of green and wax beans.  The steak was OK, but everything else was cold by the time I got it.  Also, the beans were cooked in that style where, I guess, the chef lays on hands and intones the magic word, “steam.”  I grew up with what I’ve learned is German style cooking, and I really don’t like tough vegetables.

We didn’t lose any additional time into St. Paul.


As I said here, I’m now in my Seattle hotel and I’m a little wiped out from the trip, so this is about all I can accomplish tonight.  I should be able to get in sync with the reports for days 1 through 3 tomorrow.

Trip Reports Delayed

Planning to do a post every day while on the train turned out to be a bad idea.  I can hardly even type, let alone craft prose that I’d want to read myself, with the train bounding around as it is.  I now hope to be able to produce a report for three days, or maybe three reports, when I get to the hotel in Seattle on Saturday.

Trip Report, day minus 1

I’m headed to a meeting of the C++ standards committee in Issaquah, Washington, a suburb of Seattle.  This will be my first train ride, and my first face-to-face WG21 meeting, since COVID; and I’m looking forward both of them.

Itinerary

I’m allowing an extra day westbound just in case the Builder gets stuck in a snowdrift…or something.  That also gives me a chance to do some touristy things in Seattle where I haven’t been in ages.  I’ll also spend the last night of the return trip at a hotel just three blocks south of Chicago’s Union Station because the Builder often runs late, and there’s the danger of missing the connection to the next train home.

Between Chicago and St. Louis, I’ll take a couple of corridor trains.  Prior to COVID, we had four “Lincoln Service” round trips per day, two of which would run through St. Louis, where they would change their names to “Missouri River Runner”, and continue to Kansas City.  COVID was an excuse for Amtrak to cut service; so we now have just three daily Lincoln Service round trips, and only one Missouri River Runner per day.

The Lincoln Service trains typically have four cars, three coaches and a café car with very comfortable 2-1 business-class seating.  I’ll have biz.-class seats between Chicago and St. Louis which will also get me one complimentary non-alcoholic beverage.

St. Louis is also served by an overnight train, the Texas Eagle, that runs daily between Chicago and San Antonio.  Three days per week, one coach and one sleeper from the Eagle get switched in San Antonio to or from another train called the Sunset Limited that runs between New Orleans and Los Angeles.  I might change my mind and get a roomette on the Eagle for the last leg home.  I’ll decide when I get back to Chicago.

Between Chicago and Seattle, I’ll be riding on the Empire Builder.  Trains 7 and 27 run as a single train to Spokane, Washington, where they split in two, train 7 going to Seattle, and train 27 going to Portland, Oregon.  Trains 8 and 28 recombine in Spokane.  Train 7 turns south around Everett, Washington, and then runs down along the ocean, eventually along Puget Sound, and then into a tunnel that leads to Seattle’s King Street Station.  Train 27 heads down to Pasco, Washington, and then along the northern bank of the Columbia River to Vancouver, Washington, where it crosses the river and heads back east a bit to Portland Union Station.

The Builder uses Superliners as expected.  The Seattle section usually has a baggage car, a crew sleeper, two revenue sleepers, a diner, and two accessible coaches.  The Portland section is typically just four cars long, a Sightseer Lounge, an accessible coach, a coach-bag, and a sleeper.

More detailed timetables for the trains I’ll be taking can be found here and here.

Tomorrow I’ll begin a series of posts about the trip which might read something like a live blog, but won’t be live.  I plan on a single post per day, probably around bedtime.