"Here are some doits to get Slang to generate a single method to the transcript"
					
[Transcript show: [| sel vmm s cg |
	sel := #primitiveVoidVMStateForMethod.
	vmm := (VMMaker forPlatform: 'Cross')
				interpreterClass: CoInterpreter"MT";
				cogitClass: Cogit chooseCogitClass.
	cg := [vmm buildCodeGeneratorForInterpreter]
			on: Notification
			do: [:ex|
				ex tag == #getVMMaker
					ifTrue: [ex resume: vmm]
					ifFalse: [ex pass]].

	cg removeUnneededBuiltins.
	cg vmClass preGenerationHook: cg.
	cg inferTypesForImplicitlyTypedVariablesAndMethods.
	cg retainMethods: { sel }.
	cg prepareMethods.
	((sel beginsWith: 'bytecode') or: [sel endsWith: 'Bytecode'])
		ifTrue: [cg doBasicInlining: true]
		ifFalse: [cg doInlining: true].
	s := ReadWriteStream on: String new.
	(cg methodNamed: sel)
		halt;
		emitCCodeOn: s generator: cg.
	s contents] value].

[Transcript show: [| sel s vmm cg |
	sel := #compileEntry.
	vmm := VMMaker forPlatform: 'Cross'.
	cg := [vmm
				interpreterClass: CoInterpreter;
				cogitClass: Cogit chooseCogitClass;
				buildCodeGeneratorForCogit]
			on: Notification
			do: [:ex|
				ex tag == #getVMMaker
					ifTrue: [ex resume: vmm]
					ifFalse: [ex pass]].
	cg removeUnneededBuiltins.
	cg vmClass preGenerationHook: cg.
	cg inferTypesForImplicitlyTypedVariablesAndMethods.
	cg retainMethods: { #compactCogCompiledCode. sel }.
	cg prepareMethods.
	cg doInlining: cg vmClass doInlining.
	s := ReadWriteStream on: String new.
	(cg methodNamed: sel)
		halt;
		emitCCodeOn: s generator: cg.
	s contents] value].

[Transcript show: [| tm s vmm cg |
	vmm := VMMaker forPlatform: 'Cross'.
	cg := [vmm
				interpreterClass: StackInterpreter;
				buildCodeGeneratorForInterpreter]
			on: Notification
			do: [:ex|
				ex tag == #getVMMaker
					ifTrue: [ex resume: vmm]
					ifFalse: [ex pass]].
	cg removeUnneededBuiltins.
	cg vmClass preGenerationHook: cg.
	tm := (StackInterpreter compile: 'foo self cppIf: ''ARBITRARY'' ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']. self cppIf: (self cCode: ''ARBITRARY'') ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']' classified: nil notifying: nil trailer: CompiledMethodTrailer empty ifFail: []) node asTranslationMethodOfClass: cg translationMethodClass.
	cg addMethod: tm.
	cg inferTypesForImplicitlyTypedVariablesAndMethods.
	cg retainMethods: { #foo }.
	cg prepareMethods.
	cg doInlining: true.
	s := ReadWriteStream on: String new.
	(cg methodNamed: #foo)
		halt;
		emitCCodeOn: s generator: cg.
	s contents] value].
