Hey Sean, thanks for taking the time to respond.
Here is working code that can be called after Quit[]
for:
11.3.0 for Microsoft Windows (64-bit) (March 7, 2018)
10.1.0 for Microsoft Windows (64-bit) (March 24, 2015)
11.3.0 for macOS
(I'm running 12.0.0 ATM so I can't get the old version string.)
Module[{name="ABC",exts={"*.abc"}},Quiet@Import["__FAKE FILE__",""];
ImportExport`RegisterExport[name,Function[Print[{"export args:",##}];Export[#1,#2,"Byte"]],"Extensions"->exts];
ImportExport`RegisterImport[name,Function[Print[{"import args:",##}];Import[#1,"Byte"]],"Extensions"->exts];
If[!MemberQ[FileFormatDump`$FILEFORMATS,name],AppendTo[FileFormatDump`$FILEFORMATS,name]];
FileFormatDump`$FILEFORMATMATRIX[name]={name,True,False,False,False,False,exts,{},None,{}};
file=CreateFile[]<>".abc";
Print[file];
out={1,2,3};
Export[file,out];
Import[file]===out]
This code errors in 12.0.0
.
I understand this is undocumented code so I kept my post kinda vague. I was more concerned that code executed in the front end depends on the liveliness of the associated kernel. This was just the first example I found where I got bit by this behavior.