# FYI Code Review: interpreted sites

**URL:** <https://www.ruby-forum.com/t/fyi-code-review-interpreted-sites/146836>\
**Category:** IronRuby\
**Created:** [August 26, 2008, 3:30am UTC](https://www.ruby-forum.com/t/fyi-code-review-interpreted-sites/146836 "2008-08-26T03:30:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![grujildo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/94ad74/32.png) [@grujildo](https://www.ruby-forum.com/u/grujildo)\
**Post date:** [August 26, 2008, 3:30am UTC](https://www.ruby-forum.com/t/fyi-code-review-interpreted-sites/146836/1 "2008-08-26T03:30:52Z")

</div>

tfpt review “/shelveset:InterpretedSites7-PartI;REDMOND\tomat”

The first part of DLR interpreter improvements that has already been  
reviewed. The rest of the changes are awaiting DLR design review.

Ruby changes:

Removes usage of return statement from generated MetaObject  
expressions.

Replaces Debug.WriteLine with Utils.Log - unfortunately,  
Debug.WriteLine(string message, string category) ignores the category so  
it’s not possible to filter the messages by the category in trace  
listener. The other overload Debug.WriteLine(object message, string  
category) passes the category to the filter correctly :-/. So we use the  
latter.

Adds command line options: -ET\*, -DT\*, -ET , -DT   
that enable all, disable all, enable specified, disable specified  
Utils.Log messages, respectively.

Adds more time measurements.

DLR changes:

Various minor improvements in interpreter.

Debug only DLR options are no longer available in release mode. It was  
confusing that they were accepted but didn’t work.

Uses Snippets for generating dynamic methods in  
Interpreter.MatchCaller. This enables us to look at the generated code  
in the Snippets assembly (and more importantly, to see how much IL is  
emitted).

Changes EmptyStatement and ConstantExpression.True, False, Null, Zero  
factories to return singleton instances.
