Compiling Metadata Consumer

Upgrading to new version of metadata consumer
State Action Result

old ec (uses old mc, generates old rt)
old mc (uses old rt)
old md (uses old mc)
old rt

Update compiler sources, except md, compile ec. intermediate ec (uses old mc, generates new rt)

intermediate ec (uses old mc, generates new rt)
old mc (uses old rt)
old md (uses old mc)
old rt

Update metadata consumer sources, compile mc using intermediate ec. new mc (uses new rt)

intermediate ec (uses old mc, generates new rt)
new mc (uses new rt)
old md (uses old mc)
old rt

Update metadata consumer access library sources, make md. new md (uses new mc)

intermediate ec (uses old mc, generates new rt)
new mc (uses new rt)
new md (uses new mc)
old rt

Relink intermediate ec with new md. new ec (uses new mc, generates new rt)

new ec (uses new mc, generates new rt)
new mc (uses new rt)
new md (uses new mc)
old rt

Update run-time sources, make rt. new rt

new ec (uses new mc, generates new rt)
new mc (uses new rt)
new md (uses new mc)
new rt

Copy all binaries to appropriate directories. Upgrade completed.

Legend:

  • ec - compiler ec.exe
  • mc - metadata consumer EiffelSoftware.MetadataConsumer.dll
  • md - metadata consumer access library $(EIFFEL_SRC)\Eiffel\library\cli_writer\Clib
  • rt - .NET run-time EiffelSoftware.Runtime.dll