Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2276.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2276 Author: eem Time: 10 November 2017, 6:33:10.564346 pm UUID: 4ada0ebf-5c79-45d6-a0d4-80660c1b5575 Ancestors: VMMaker.oscog-eem.2275
Simplify flushLog in the logging framework by providing fflush on WriteStream.
Slang: Now that scavengeLog is typed isFunctionalIn: must accept FILE * as an acceptable return type of a functional method.
=============== Diff against VMMaker.oscog-eem.2275 ===============
Item was changed: ----- Method: TMethod>>isFunctionalIn: (in category 'inlining') ----- isFunctionalIn: aCodeGen "Answer if the receiver is a functional method. That is, if it consists of a single return statement of an expression that contains no other returns, or an assert or flag followed by such a statement.
Answer false for methods with return types other than the simple integer types to work around bugs in the inliner."
parseTree statements size = 1 ifFalse: [(parseTree statements size = 2 and: [parseTree statements first isSend and: [parseTree statements first selector == #flag: or: [(aCodeGen isAssertSelector: parseTree statements first selector) and: [parseTree statements first selector ~~ #asserta:]]]]) ifFalse: [^false]]. parseTree statements last isReturn ifFalse: [^false]. parseTree statements last expression nodesDo: [ :n | n isReturn ifTrue: [^false]]. ^#(int #'unsigned int' #long #'unsigned long' #'long long' #'unsigned long long' sqInt usqInt #'sqIntptr_t' #'usqIntptr_t' sqLong usqLong #'int *' #'unsigned int *' #'sqInt *' #'usqInt *' #'sqLong *' #'usqLong *' #'char *' + #'CogMethod *' #'AbstractInstruction *' + #'FILE *') includes: returnType! - #'CogMethod *' #'AbstractInstruction *') includes: returnType!
Item was changed: ----- Method: VMClass>>flushLog (in category 'printf logging') ----- flushLog "Log via printf-style format strings. Subclasses must implement logStream to answer their log stream/file." <inline: #always> self logStream ifNotNil: + [:s| s fflush]! - [self cCode: [self logStream fflush] inSmalltalk: [self logStream flush]]!
Item was added: + ----- Method: WriteStream>>fflush (in category '*VMMaker-logging') ----- + fflush + "compatibility to map the stdio fflush(FILE *) routine onto flush" + self flush!
vm-dev@lists.squeakfoundation.org