User Tools

Site Tools


cs330_f2016:laby

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
cs330_f2016:laby [2018/09/26 17:55]
morse
cs330_f2016:laby [2018/09/27 19:48]
morse
Line 1: Line 1:
-** Temporarily under revision to fix errors ​-- don't use until completed and this message goes away. **+** Revised since first distributed ​-- please check for changes ​**
  
 ** Make sure you are working with the latest versions of the class code compatible with Julia 1.0. ** ** Make sure you are working with the latest versions of the class code compatible with Julia 1.0. **
Line 27: Line 27:
   * Your preferred text editor (look to see if it has Julia extensions) and command-line invocation of your programs, or   * Your preferred text editor (look to see if it has Julia extensions) and command-line invocation of your programs, or
   * Another IDE of your choice.   * Another IDE of your choice.
- 
-If you use Atom with Juno, I recommend looking at the ''​Revise''​ package in Julia, which you can install using Julia'​s package manager (''​Pkg''​ or using the Package Manager from within the Julia REPL.) 
  
 The instructor and TAs are prepared to help you with the first two (Juno and Jupyter), but you're on your own if you choose an arbitrary editor or IDE that we aren't familiar with. The instructor and TAs are prepared to help you with the first two (Juno and Jupyter), but you're on your own if you choose an arbitrary editor or IDE that we aren't familiar with.
Line 153: Line 151:
  
 <code julia> <code julia>
-using Revise+using Revise ​# make sure to load before the others
 using Error using Error
 using Lexer using Lexer
Line 161: Line 159:
 In order for your code to work with the solo-grader you will need to do following: In order for your code to work with the solo-grader you will need to do following:
   -Name your module ''​RudInt''​.   -Name your module ''​RudInt''​.
-  -Make sure the function stored in your binop are native ​Julia functions.+  -Make sure the function stored in your BinopNode is a Julia function, either a built-in one or one that you write.
   -Make sure the ''​julia''​ binary is in your executable path (like you did for ''​racket''​ previously)   -Make sure the ''​julia''​ binary is in your executable path (like you did for ''​racket''​ previously)
-  -Make sure the path for the Error and Lexer files are on you Julia path. To do this you can call ''​JULIA_LOAD_PATH=PATH python ....''​ or you can add ''​push!(LOAD_PATH,​pwd())''​ into your ''​.juliarc''​ file.+  -Make sure the path for the Error and Lexer files are on you Julia path. To do this you can add ''​push!(LOAD_PATH,​pwd())''​ into your ''​~/.julia/​config/​startup.jl''​ file, then just make sure to run the autograder from the same directory in which you have RudInt, Lexer, and Error.
   -Inside your module have the lines ''​using Error''​ and ''​using Lexer''​. ​ (These should already be in the base code we give you to start with.)   -Inside your module have the lines ''​using Error''​ and ''​using Lexer''​. ​ (These should already be in the base code we give you to start with.)
 +
 +====Change Log====
 +Changes since first given this semester:
 +  * Replaced "​type..."​ with "​struct..."​ in the abstract syntax definitions to be compatible with Julia 1.0
 +  * Changed "​Num"​ to "​NumNode"​ and "​Binop"​ to "​BinopNode"​ to be consistent with the in-class interpreters and the given base code in CI0.
 +  * Tweaked the Hints to be compatible with Julia 1.0, especially changing .juliarc to .startup.jl.
 +  * Changed the autograders accordingly.
cs330_f2016/laby.txt ยท Last modified: 2021/06/30 23:42 (external edit)