Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Object Arts
    @objectarts
    Showing the splash hits a C Runtime assertion (probably in the Large Integer code but I can't be sure). I don't seem to have symbols available for DolphinVM7 for some reason.
    You can also trigger this failure by evaluating: 200 factorial
    which is slightly more convenient than bringing the splash screen up and having it get in the way.
    James Foster
    @jgfoster
    I can take a look at this. You don't say whether this in the main branch or in my debug branch. I'll try in the main first...
    Also, I'm trying to guess whether GC.cpp(542) is a typo or a joke...
    Object Arts
    @objectarts
    By setting the symbol load directory I can debug in DolphinVM7 now. The offending few lines are in largeintprimp.cpp lines 796, 802-803.
    product->m_digits[innerSize - 1] = (LowLimb(accum) & 0xFF);
    product->m_digits[innerSize] = (HighSLimb(accum) & 0xFF);
    those & 0xFF are my addition which still fails
    James Foster
    @jgfoster
    In my Debug configuration I have enabled a check for loss of data when going from a larger container to a smaller container. Did you hit an assertion check in the Debug VM configuration?
    Object Arts
    @objectarts
    Yes
    James Foster
    @jgfoster
    And is this in my pull request? If so, then we can either disable that check or fix it. Then the question is whether how much we need to get working in order to merge.
    Object Arts
    @objectarts
    This is in your PR. How do you disable that check. The boxes seem greyed out.
    James Foster
    @jgfoster
    In addition to this runtime check, I've had to modify GC.cpp(37) to set ignoreRefCountErrors to true. With that, I'm almost through a boot of DCORE.
    Object Arts
    @objectarts
    BTW, I have also foundd the file vmref.cpp that was missing and contains the AdVMReference() functions that were missing in the DBG build.
    James Foster
    @jgfoster
    For one thing, when the dialog pops up I unchecked the "break on this error" and clicked continue. Then it just went on. I'll look for the place where I set that check.
    Object Arts
    @objectarts
    Ignoring ref count errors doesn't sound like a good idea. I think we'll need to look at that.
    James Foster
    @jgfoster
    Your review of the things I edited would be most helpful, like that AddVMReference.
    Keep in mind that we have already put out the release version. The Debug version (which wasn't working before) has additional checks. The fact that it builds and we can actually look at problems is a significant step forward. Yes, we need to look at it but the first pass is just to ask how broken it is.
    I suspect that if we get back the AddVMReference code then we might be able to turn that check back on (the check is just a few lines after the code I commented out).
    Object Arts
    @objectarts
    Ok, it'll have to be tomorrow now though. I'll push up that vmref code to the master branch now but we'll need to find where to add it. I tried just adding to the VMLib and got duplicate refs in other places.
    James Foster
    @jgfoster
    To find the Smaller Type Check flag (/RTCc), select a project (e.g., Launcher), Look at the Property Pages, Select C/C++, then Code Generation, and the fourth line is Smaller Type Check. You can turn it off and avoid that issue.
    I realize it is getting late there! I'm happy to keep digging on things. If you put up the file I can try to find a place to add it...
    Object Arts
    @objectarts
    I've added that file to the jgfoster-debug branch.
    James Foster
    @jgfoster
    I see it. Thanks. I'll keep poking along...
    Object Arts
    @objectarts
    It is presumably only necessary for the debug builds (and the member variables in the header file should be suitably excluded from release builds I think).
    James Foster
    @jgfoster
    Sounds reasonable. Clearly the Release configuration works pretty well without it!
    Object Arts
    @objectarts
    Ok, so disabling those checks gets DPRO working and the splash screen. But the GC occasionally gets those ref count errors you saw. I reckon if we can add the vmref.cpp it will fix this and we'll be there! However, now I must abed.
    James Foster
    @jgfoster
    I've got the Release passing the tests again and some progress on the Debug avoiding the assign to smaller variable error. I'll check again after some sleep...
    James Foster
    @jgfoster
    I'm able to build the Debug configuration and it runs BootAll without error (though the Task Manager shows that it grows to over a GB in size!). Running TestDPRO goes for a while, with occasional reports of it being unresponsive, until it finally hits a HARDASSERT() in Process.cpp(1106) during ProcessList::remove().
    One complication is that trying to start Dolphin7.exe from the debugger has some actions that look for things in the Resources directory below the executable. Since the executable is in a Debug VM directory under DolphinVM, it doesn't see the Resources. This prevents the splash screen from coming up and causes some early tests walkback as well. I'm not sure how to address this. Perhaps copying the Resources directory into the Debug VM directory as part of the build process.
    fxgallego
    @fxgallego
    Hi James, I believe that copying the resources folder is the best solution because Debug is git ignored so no changes are reflected.
    Object Arts
    @objectarts
    @jgfoster, I don't think you should copy the Resources folder. Simply set the debug options to start Dolphin7.exe from the Dolphin folder and to set the working directory to the same place. This works for me and you can start Dolphin by hitting go on the VS toolbar. You'll be able t see the symbols in Dolphin7.exe right away but to be able to load the DolphinVM7.pdb file you'll need to tell the symbol loader to look in DolphinVM\VM Debug. After that I could set breakpoints and step through the VM code.
    James Foster
    @jgfoster
    @objectarts, okay. I'll try that.
    Object Arts
    @objectarts
    I'm not sure if the symbol location gets saved with the project or whether it would have to be set each time but even so I think it's a better option. There are other things that are referenced using the #installRelative FileLocators and these will likely get messed up if Dolphin7.exe is in the wrong place.
    fxgallego
    @fxgallego
    @objectarts where you set the symbol loader? In VS Options?
    James Foster
    @jgfoster
    Each time I try to run from Visual Studio I'm told that three projects are out-of-date. Most of what I've found by searching the web is that there are references to missing files. I've found and removed all the missing files that are reported by the build process but still get the false-positive. Does anyone else see this? I wonder if it is related to this: "warning MSB8028: The intermediate directory (Release) contains files shared from another project".
    fxgallego
    @fxgallego
    @jgfoster Yes, same here and think the same as you
    Object Arts
    @objectarts
    Hi @jgfoster, is that current PL ready to go?
    Object Arts
    @objectarts
    Sorry, PR
    James Foster
    @jgfoster
    @objectarts, yes, I think so. It seems to run fine in Release configuration and we can keep working on the VMDebug configuration.
    Object Arts
    @objectarts
    ok, will check it an merge in a while
    James Foster
    @jgfoster
    Thanks. I'll keep at the cleanup tasks.
    Object Arts
    @objectarts
    @jgfoster, good job with getting debug working. You might want to hold off doing any more changes to the VM for the moment. I have a change on top of your PR that touches a lot of files. Will check both in at some point tomorrow.
    James Foster
    @jgfoster
    Thanks. I'll keep my new changes separate and we'll see how good Git is with merging. I'm currently testing a fix for the shared intermediate directory warning.
    James Foster
    @jgfoster
    Also, while the VM Debug configuration does build and run, there are still issues, including my edits marked with // JGFoster. I expect that a priority will be to remove those comments once the situation is better understood.
    James Foster
    @jgfoster
    I've just completed a run of the test suite with the Debug configuration and although Dolphin stopped with a few asserts and other error checks (which I've noted and will address directly or by filing a new issue), proceeding from the break resulted in 1799 of 1800 tests passing. The single failure (PackageBrowserTest>>#testRepackagedClasses) passed when rerun.
    Object Arts
    @objectarts
    @jgfoster, I merged your debug build PR and my changes that removed a whole bunch of unnecessary ifdefs into master.
    James Foster
    @jgfoster
    I'm not sure what the long-term vision is for Dolphin, but now that there is an enhancement request for 64-bit (DolphinVM #22), should we add one for Unicode?
    Object Arts
    @objectarts
    Sure. The issues are just there as reminders for what needs to be done. There is no implication that Object Arts will attempt any of these. They are starting points for discussion and, more importantly, contribution from others.
    brickviking
    @brickviking
    I was wondering if anyone uses this gitter any more? The last activity I've found was from 30 Jan, 2016. What are people using instead? comp.lang.smalltalk.dolphin?