<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 20 Oct 2015, at 23:28, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" class="">eliot.miranda@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">On Tue, Oct 20, 2015 at 1:35 PM, Esteban Lorenzano<span class="Apple-converted-space">&nbsp;</span><span dir="ltr" class="">&lt;<a href="mailto:estebanlm@gmail.com" target="_blank" class="">estebanlm@gmail.com</a>&gt;</span><span class="Apple-converted-space">&nbsp;</span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">&nbsp;<br class=""><div style="word-wrap: break-word;" class="">well… I solve the problem.&nbsp;<div class="">Everything is about the first issue report (comparison is always true).&nbsp;</div><div class="">I changed first from “unsigned long” to “sqLong” but then I realised sqLong is defined as “long long” so this expression:&nbsp;</div><div class=""><br class=""></div><div class=""><span style="white-space: pre-wrap;" class="">        </span>intValue bitXor: (intValue &lt;&lt; 1)) &gt;= 0</div><div class=""><br class=""></div><div class="">since number fitted in "long long”, was also always true. Then of course it was converting into a SmallInteger a number that should be a LongPositiveInteger.&nbsp;</div><div class=""><br class=""></div><div class="">my fix: just to change #maybeInlinePositive32BitIntegerFor: and around to ensure parameter is “sqInt”.&nbsp;</div><div class="">That works.&nbsp;</div></div></blockquote><div class=""><br class=""></div><div class="">No, you can't cast within &nbsp;maybeInlinePositive32BitIntegerFor:.&nbsp; That will break its use on long long values.</div></div></div></blockquote><div><br class=""></div><div>but now does not work, because compiler says it is always true (any unsigned comparison to &gt;= 0 will always evaluate to true for clang).&nbsp;</div><div>Unsigned long is always &gt;= 0.</div><div>And with long long values (sqLong) always fit, so is also always true.&nbsp;</div><div><br class=""></div><div>I can of course ensure the type of parameter passed to maybeInlinePositive32BitIntegerFor before (not in the method). That will fulfil your requirement of not cast the function.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><br class=""></div><div class="">Now, I have this doubts:&nbsp;</div><div class=""><br class=""></div><div class="">- how is possible this was working before? maybe this is a change in clang 7 (apple)?</div></div></blockquote><div class=""><br class=""></div><div class="">Unless we look in the debugger we won't know.</div></div></div></blockquote><div><br class=""></div><div>I spent last 3 days doing it. #maybeInlinePositive32BitIntegerFor: was always “inlining”.&nbsp;</div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class="">- now I have a lot of complains of “comparison of unsigned expression is always true” all around the image. Should we take care about them?</div></div></blockquote><div class=""><br class=""></div><div class="">Looks like it.</div></div></div></blockquote><div><br class=""></div><div>So this is a major problem, I think… I will check.</div><div><br class=""></div><div>Esteban</div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><br class=""></div><div class="">I will do some tests and commit to VMMaker tomorrow.&nbsp;</div></div></blockquote><div class=""><br class=""></div><div class="">Don't just blindly commit a fix that makes clang 7 work.&nbsp; It could easily break everything elsewhere.&nbsp; Instead, we need to understand the issues first.</div><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><br class=""></div><div class="">cheers,</div><div class="">Esteban</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 19 Oct 2015, at 18:31, Esteban Lorenzano &lt;<a href="mailto:estebanlm@gmail.com" target="_blank" class="">estebanlm@gmail.com</a>&gt; wrote:</div><br class=""><div class=""><div style="word-wrap: break-word;" class=""><div class="">Hi,&nbsp;</div><div class=""><br class=""></div><div class="">Does anyone tested Alien on Spur and "El capitan"? specifically callbacks?</div><div class="">For me, a completely broken :(</div><div class=""><br class=""></div><div class="">1) this structure (in maybeInlinePositive32BitIntegerFor: and others):&nbsp;</div><div class=""><br class=""></div><div class=""><div class=""><span style="white-space: pre-wrap;" class="">        </span>(integerValue &gt;= 0</div><div class=""><span style="white-space: pre-wrap;" class="">        </span><span class="Apple-converted-space">&nbsp;</span>and: [objectMemory isIntegerValue: integerValue]) ifTrue:</div><div class=""><span style="white-space: pre-wrap;" class="">                </span>[^objectMemory integerObjectOf: integerValue].</div></div><div class=""><br class=""></div><div class="">Does not works if “integer value” is an unsigned long, because compiler assumes it will always be true, then remove the if, then answers a wrong value.&nbsp;</div><div class=""><br class=""></div><div class="">2)&nbsp;<span style="color: rgb(120, 73, 42); font-family: Menlo; font-size: 11px;" class="">assertCStackWellAligned&nbsp;</span>always fail. No idea why because if does not says anything, just jmp back to the regular flow.&nbsp;</div><div class=""><br class=""></div><div class="">3) finally,&nbsp;<span style="color: rgb(79, 129, 135); font-family: Menlo; font-size: 11px;" class="">ceCaptureCStackPointers&nbsp;</span>also fails… this can be because (2) or because other reasons (it also jmps back so no clue) (method generateCaptureCStackPointers: clarifies is a hack, so I suppose it stopped to work).&nbsp;</div><div class=""><br class=""></div><div class="">I guess solution of (1) is easy: argument number just has to be a sqLong instead an unsigned long.&nbsp;</div><div class=""><br class=""></div><div class="">But for 2 and 3 I have no idea where to start.</div><div class=""><br class=""></div><div class="">Does anyone has an idea?</div><div class=""><br class=""></div><div class="">Esteban</div><div class=""><br class=""></div></div></div></blockquote></div><br class=""></div></div><br class=""></blockquote></div><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br clear="all" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space">&nbsp;</span></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_signature" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr" class=""><div class=""><span style="font-size: small; border-collapse: separate;" class=""><div class="">_,,,^..^,,,_<br class=""></div><div class="">best,&nbsp;Eliot</div></span></div></div></div></div></blockquote></div><br class=""></body></html>