Dev tools & IDEs?

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Dev tools & IDEs?

tuzmusic
What is the fastest way to iterate in Jack development? I'm still in the planning and design stages of my project, but from the videos it sounds like every time I want to run, I'll have to compile the folder, and then open it in the VME? And then hit run and wait for the OS to load every time?

Is there anything out there that makes this faster, better? I know it's obviously not going to be anything close to, say, web development with hot reload, but hopefully there's something people use to iterate at a pace that's less than painful.

And has anyone come up with any testing or automation tools? In the video he says you need a testing strategy, and I'd love for that to be something more than a list of things I'm going to remember to do each time I run the program to make sure it's working right!

Excited to get to work :) I'm writing a clone of the relatively obscure NAMCO game, Mappy.
Reply | Threaded
Open this post in threaded view
|

Re: Dev tools & IDEs?

WBahn
Administrator
If you change the Jack code, you will need to recompile it.

But you can write a Python script or a batch file (or choose your favorite suitable tool) to automate this process and you can have that same script run a VM Emulator test script.

I don't know what you mean about waiting for the OS to load. The OS is part of your program and/or built into the VM emulator.
Reply | Threaded
Open this post in threaded view
|

Re: Dev tools & IDEs?

tuzmusic
This post was updated on .
With the OS loading I guess I was thinking of running the Pong program at
the end of Part I. I imagine you’re right about the VME.

What would a test script be though? Is there a way to test things besides
the contents of RAM locations (as all the other tst files do)?

On Thu, Mar 18, 2021 at 9:44 PM WBahn [via Nand2Tetris Questions and
Answers Forum] <ml+s32033n4035857h12@n3.nabble.com> wrote:

> If you change the Jack code, you will need to recompile it.
>
> But you can write a Python script or a batch file (or choose your favorite
> suitable tool) to automate this process and you can have that same script
> run a VM Emulator test script.
>
> I don't know what you mean about waiting for the OS to load. The OS is
> part of your program and/or built into the VM emulator.
>
Reply | Threaded
Open this post in threaded view
|

Re: Dev tools & IDEs?

WBahn
Administrator
Testing RAM is the primary means, though you can also output things like the PC, the clock, the A and D registers (at least with the CPU Emulator -- not so sure about the VM Emulator -- in principle it doesn't know about any of these things). Not much else. But you can get creative with how you use these. For instance, you can have your program hardcode some memory locations and then have the test script monitor them (again, that may only be a trick you can play with the CPU Emulator).

Also, I've removed your personal information from the bottom of your post. This is not an appropriate place to be advertising yourself or your services.
 
Reply | Threaded
Open this post in threaded view
|

Re: Dev tools & IDEs?

tuzmusic
This post was updated on .
Thanks. Sorry I responded via email so that was my signature.

Sounds very roundabout to go so many levels down (from high level Jack all
the way to specific absolute memory locations) to observe values but I can
see that it may be the only way to do it.

I guess another way could be to hijack part of your program’s UI and use it
basically as a console, to show calculations or testing output.
--
Reply | Threaded
Open this post in threaded view
|

Re: Dev tools & IDEs?

WBahn
Administrator
The tools are very basic as they are only meant to support the specific projects for this course and not to support app development. The point of Chapter 9 isn't to develop any kind of a fancy app, but merely to gain familiarity with Jack to the point that you have a sufficient feel for the language so as to understand the grammar and how it relates to the syntax and the semantics to facilitate writing the compiler and the OS libraries.