From 2de79279a0f7157a41c0f32674ba96f56cb1b02f Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Thu, 10 Aug 2017 22:18:33 +0200 Subject: [PATCH 01/16] Used invokelatest to work around world age issue. --- README.md | 4 ++-- src/forth.jl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 123f3c4..6f30a15 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ install it, you will therefore need to use the following command: julia> Pkg.clone("https://github.com/tgvaughan/forth.jl") -Currently, forth.jl **requires** Julia 0.5. (Incompatabilities between 0.4 and 0.5 -mean that I cannot support both versions.) +Currently, forth.jl **requires** Julia 0.6. (Incompatabilities exist between +0.6 and previous versions of julia, particularly the handling of [world age](https://github.com/JuliaLang/julia/pull/17057).) ## Usage diff --git a/src/forth.jl b/src/forth.jl index 947aafb..4c81dc3 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1,6 +1,6 @@ module forth -import Base.REPLCompletions +import Base.REPLCompletions, Base.invokelatest # VM mem size size_mem = 1000000 # 1 mega-int @@ -123,7 +123,7 @@ function callPrim(addr::Int64) if addr >=0 || -addr>length(primitives) error("Attempted to execute non-existent primitive at address $addr.") else - primitives[-addr]() + invokelatest(primitives[-addr]) end end getPrimName(addr::Int64) = primNames[-addr] -- 2.20.1 From 2cda7c0f280f83e34d3404817224d8bc70812b3e Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Fri, 29 Sep 2017 00:15:24 +0200 Subject: [PATCH 02/16] Improved error reporting. --- src/forth.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/forth.jl b/src/forth.jl index 4c81dc3..3882a53 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -677,6 +677,10 @@ READ_LINE_CFA = defPrimWord("READ-LINE", () -> begin maxSize = popPS() addr = popPS() + if !(fid in keys(openFiles)) + error(string("Invalid FID ", fid, ".")) + end + fh = openFiles[fid] line = readline(fh, chomp=false) @@ -1336,6 +1340,7 @@ function run(fileName=nothing; initialize=true) jmp = callPrim(jmp) catch ex + println(string("Error in primitive '", getPrimName(jmp), "' at address ", jmp)) showerror(STDOUT, ex) println() -- 2.20.1 From 43cd7e6d8968a85ee9250033080268caafef5a47 Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Mon, 3 Sep 2018 11:58:56 +0200 Subject: [PATCH 03/16] Working on compatibility with julia 0.7 --- src/forth.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/forth.jl b/src/forth.jl index 3882a53..3e043f8 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1,6 +1,6 @@ module forth -import Base.REPLCompletions, Base.invokelatest +import REPL.REPLCompletions, Base.invokelatest # VM mem size size_mem = 1000000 # 1 mega-int @@ -34,7 +34,7 @@ mem[CURRENT] = FORTH_LATEST-1 # Compile words to system dict initially DICT = mem[H] # Save bottom of dictionary as constant # VM registers -type Reg +mutable struct Reg RSP::Int64 # Return stack pointer PSP::Int64 # Parameter/data stack pointer IP::Int64 # Instruction pointer @@ -114,7 +114,7 @@ stringAsInts(str::AbstractString) = [Int(c) for c in collect(str)] function defPrim(f::Function; name="nameless") push!(primitives, f) - push!(primNames, replace(name, "\004", "EOF")) + push!(primNames, replace(name, "\004" => "EOF")) return -length(primitives) end @@ -722,7 +722,7 @@ EMIT_CFA = defPrimWord("EMIT", () -> begin end) function raw_mode!(mode::Bool) - if ccall(:jl_tty_set_mode, Int32, (Ptr{Void}, Int32), STDIN.handle, mode) != 0 + if ccall(:jl_tty_set_mode, Int32, (Ptr{Nothing}, Int32), STDIN.handle, mode) != 0 throw("FATAL: Terminal unable to enter raw mode.") end end @@ -1341,7 +1341,7 @@ function run(fileName=nothing; initialize=true) catch ex println(string("Error in primitive '", getPrimName(jmp), "' at address ", jmp)) - showerror(STDOUT, ex) + showerror(stdout, ex) println() # QUIT -- 2.20.1 From 3fc4b0ecf89a6325cb0492135f2a83cc02e447c5 Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Mon, 3 Sep 2018 13:29:17 +0200 Subject: [PATCH 04/16] Now compatible with 0.7. --- src/forth.jl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/forth.jl b/src/forth.jl index 3e043f8..97e9c4b 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1,6 +1,6 @@ module forth -import REPL.REPLCompletions, Base.invokelatest +import REPL.REPLCompletions, Base.invokelatest, Pkg # VM mem size size_mem = 1000000 # 1 mega-int @@ -12,9 +12,9 @@ size_TIB = 1000 # Terminal input buffer size size_FIB = 1000 # File input buffer size # Memory arrays -mem = Array{Int64,1}(size_mem) -primitives = Array{Function,1}() -primNames = Array{AbstractString,1}() +mem = Array{Int64,1}(undef,size_mem) +primitives = Array{Function,1}(undef, 0) +primNames = Array{AbstractString,1}(undef, 0) # Memory geography and built-in variables @@ -682,7 +682,7 @@ READ_LINE_CFA = defPrimWord("READ-LINE", () -> begin end fh = openFiles[fid] - line = readline(fh, chomp=false) + line = readline(fh, keep=true) eofFlag = endswith(line, '\n') ? 0 : -1 line = chomp(line) @@ -722,14 +722,14 @@ EMIT_CFA = defPrimWord("EMIT", () -> begin end) function raw_mode!(mode::Bool) - if ccall(:jl_tty_set_mode, Int32, (Ptr{Nothing}, Int32), STDIN.handle, mode) != 0 + if ccall(:jl_tty_set_mode, Int32, (Ptr{Nothing}, Int32), stdin.handle, mode) != 0 throw("FATAL: Terminal unable to enter raw mode.") end end function getKey() raw_mode!(true) - byte = read(STDIN, 1)[1] + byte = read(stdin, 1)[1] raw_mode!(false) if byte == 0x0d @@ -837,7 +837,7 @@ NUMBER_CFA = defPrimWord("NUMBER", () -> begin s = getString(wordAddr, wordLen) - pushPS(parse(Int64, s, mem[BASE])) + pushPS(parse(Int64, s, base=mem[BASE])) return NEXT end) @@ -1364,7 +1364,7 @@ TRACE_CFA = defPrimWord("TRACE", () -> begin end) function dump(startAddr::Int64; count::Int64 = 100, cellsPerLine::Int64 = 10) - chars = Array{Char,1}(cellsPerLine) + chars = Array{Char,1}(undef, cellsPerLine) lineStartAddr = cellsPerLine*div((startAddr-1),cellsPerLine) + 1 endAddr = startAddr + count - 1 -- 2.20.1 From 6a34e447b5d32310f63850a794816e30e350cc5c Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Tue, 4 Sep 2018 10:25:02 +0200 Subject: [PATCH 05/16] REPL character substitution now working again. --- src/forth.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forth.jl b/src/forth.jl index 97e9c4b..ead0bbc 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -750,9 +750,9 @@ function getLineFromSTDIN() function getFrag(s) chars = collect(s) - slashIdx = findlast(chars, '\\') + slashIdx = findlast(isequal('\\'), chars) - if slashIdx > 0 + if slashIdx != nothing return join(chars[slashIdx:length(chars)]) else return nothing -- 2.20.1 From b10ceb9040d2a15490408e0d0a75931d80e259cf Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Tue, 4 Sep 2018 10:36:55 +0200 Subject: [PATCH 06/16] Updated readme. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a6e0645..18ba803 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,12 @@ high-level grounding, but that will have to wait for another time. ## Installation forth.jl is not (and probably will never be) a registered julia package. To -install it, you will therefore need to use the following command: +install it, you will therefore need to use the following command from the +Julia package manager (accessed using the `]` key): - julia> Pkg.clone("https://github.com/tgvaughan/forth.jl") + (v1.0) pkg> add https://github.com/tgvaughan/forth.jl -Currently, forth.jl **requires** Julia 0.6. (Incompatabilities exist between +Be aware that **forth.jl requires Julia 1.0**. (Incompatabilities exist between 0.6 and previous versions of julia, particularly the handling of [world age](https://github.com/JuliaLang/julia/pull/17057).) ## Usage -- 2.20.1 From 9f54a8570974a780f4f6c53f37b7f3ec00b3b25f Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Tue, 4 Sep 2018 10:43:18 +0200 Subject: [PATCH 07/16] Removed old statement from readme. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 18ba803..09c124f 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,7 @@ Julia package manager (accessed using the `]` key): (v1.0) pkg> add https://github.com/tgvaughan/forth.jl -Be aware that **forth.jl requires Julia 1.0**. (Incompatabilities exist between -0.6 and previous versions of julia, particularly the handling of [world age](https://github.com/JuliaLang/julia/pull/17057).) +Be aware that **forth.jl requires Julia 1.0**. ## Usage -- 2.20.1 From a914fb765622b7311425a89694c05a1976cdcc6a Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Wed, 5 Sep 2018 15:55:36 +0200 Subject: [PATCH 08/16] Removed use of deprecated Pkg.dir. --- src/forth.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forth.jl b/src/forth.jl index ead0bbc..d80d7e2 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1270,7 +1270,7 @@ oldCWD = "" SETLIBCWD_CFA = defPrimWord("SETLIBCWD", () -> begin global oldCWD = pwd() if !isfile("lib.4th") # Exception for debugging. - cd(Pkg.dir("forth","src")) + cd(@__DIR__) # Macro expands to CWD at compile time end return NEXT end) -- 2.20.1 From 71a2b49135aa4ebb85e8050df0030ede456bc9db Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Wed, 5 Sep 2018 16:09:50 +0200 Subject: [PATCH 09/16] Removed use of deprecated parse() in favour of Meta.parse(). --- src/forth.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forth.jl b/src/forth.jl index d80d7e2..c298b72 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1164,7 +1164,7 @@ CREATE_PRIM_CFA = defPrimWord("CREATE-PRIM", () -> begin getString(addr, len), "\n", "return NEXT\n", "end") - func = eval(parse(exprString)) + func = eval(Meta.parse(exprString)) pushPS(defPrim(func)) return NEXT -- 2.20.1 From 5535d94778eef190b83d7ae246bf932d7dabd50b Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Sat, 15 Sep 2018 00:42:36 +0200 Subject: [PATCH 10/16] Added time primitive. --- src/forth.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/forth.jl b/src/forth.jl index c298b72..a7425ae 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -1434,4 +1434,9 @@ DUMP = defPrimWord("DUMP", () -> begin return NEXT end) +TIME = defPrimWord("TIME", () -> begin + pushPS(Int64(time_ns())) + return NEXT +end) + end -- 2.20.1 From 0ae27ce16f957d80b16fe54d275a14debf384d6e Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Wed, 3 Jun 2020 18:29:36 +0200 Subject: [PATCH 11/16] Added project description file for Julia 1.4. --- Project.toml | 4 ++++ REQUIRE | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Project.toml delete mode 100644 REQUIRE diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..289a7fb --- /dev/null +++ b/Project.toml @@ -0,0 +1,4 @@ +name = "forth" +uuid = "b854209b-e968-4163-975a-3ef17cc01beb" +authors = ["Tim Vaughan "] +version = "1.0.0" diff --git a/REQUIRE b/REQUIRE deleted file mode 100644 index 94237c0..0000000 --- a/REQUIRE +++ /dev/null @@ -1 +0,0 @@ -julia 0.5 -- 2.20.1 From 00eec3d38fcb88f6ffbd141024d894c4ef514adb Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Thu, 24 Feb 2022 11:00:18 +0100 Subject: [PATCH 12/16] Added REQUIRE. --- REQUIRE | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 REQUIRE diff --git a/REQUIRE b/REQUIRE new file mode 100644 index 0000000..0650e01 --- /dev/null +++ b/REQUIRE @@ -0,0 +1,2 @@ +julia 0.5 +REPL -- 2.20.1 From 154518d74e66d8ed281494a9e364a468ecfe39fb Mon Sep 17 00:00:00 2001 From: plugd Date: Fri, 7 Oct 2022 10:47:57 +0200 Subject: [PATCH 13/16] Updating for Julia 1.8. --- Manifest.toml | 26 +++++++++ Project.toml | 7 ++- README.md => README | 138 ++++++++++++++++++++++++-------------------- REQUIRE | 2 - 4 files changed, 106 insertions(+), 67 deletions(-) create mode 100644 Manifest.toml rename README.md => README (60%) delete mode 100644 REQUIRE diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..d31ff75 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,26 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.8.2" +manifest_format = "2.0" +project_hash = "206f4376ca4fb9378de05ed1a9ca3725b6697123" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" diff --git a/Project.toml b/Project.toml index 289a7fb..64e1fea 100644 --- a/Project.toml +++ b/Project.toml @@ -1,4 +1,7 @@ name = "forth" -uuid = "b854209b-e968-4163-975a-3ef17cc01beb" +uuid = "5d94d4ce-a281-4022-9146-f8be3647edb1" authors = ["Tim Vaughan "] -version = "1.0.0" +version = "0.1.0" + +[deps] +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" diff --git a/README.md b/README similarity index 60% rename from README.md rename to README index 09c124f..3b391bc 100644 --- a/README.md +++ b/README @@ -1,51 +1,58 @@ -# forth.jl - -A hobby implementation of a forth system atop the Julia scientific computing -language. It will almost certainly never be useful for any purpose besides -that which it has already fulfilled: forcing me to think quite carefully about -how forth works. - -This package owes a massive debt to the existence of the literate programming -project [JonesForth](https://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/), -which was an amazing read. To a large degree my package is simply a port of -that project from x86 assembly + forth to julia + forth, although the mapping -is in a few places non-trivial due to the fact that julia is a high level -language. During the bootstrapping process, a huge proportion (say 80%) of the -library code in src/lib.4th was directly copied from JonesForth. (The fact -that it was possible to reuse this code was satisfying in its own right!) Since -that time I've added a significant number of core definitions and modified some -of the others with the eventual aim of F83 compliance (discussed below). - -There's quite a lot to say about the implementation, especially due to its -high-level grounding, but that will have to wait for another time. - -## Installation - -forth.jl is not (and probably will never be) a registered julia package. To -install it, you will therefore need to use the following command from the -Julia package manager (accessed using the `]` key): - - (v1.0) pkg> add https://github.com/tgvaughan/forth.jl +forth.jl +======== + +A hobby implementation of a forth system atop the Julia scientific +computing language. It will almost certainly never be useful for any +purpose besides that which it has already fulfilled: forcing me to +think quite carefully about how forth works. + +This package owes a massive debt to the existence of the literate +programming project JonesForth +(https://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/), +which was an amazing read. To a large degree my package is simply a +port of that project from x86 assembly + forth to julia + forth, +although the mapping is in a few places non-trivial due to the fact +that julia is a high level language. During the bootstrapping +process, a huge proportion (say 80%) of the library code in +src/lib.4th was directly copied from JonesForth. (The fact that it +was possible to reuse this code was satisfying in its own right!) +Since that time I've added a significant number of core definitions +and modified some of the others with the eventual aim of F83 +compliance (discussed below). + +There's quite a lot to say about the implementation, especially due to +its high-level grounding, but that will have to wait for another time. + +Installation +------------ + +forth.jl is not (and probably will never be) a registered julia +package. To install it, you will therefore need to use the following +command from the Julia package manager (accessed using the `]` key): + + (v1.0) pkg> add git://thelambdalab.xyz/forth.jl.git Be aware that **forth.jl requires Julia 1.0**. -## Usage +Usage +----- -To start the interpreter/compiler running, simply enter the following at -the julia prompt: +To start the interpreter/compiler running, simply enter the following +at the julia prompt: julia> import forth julia> forth.run() -The first thing the interpreter will do is compile the core definitions in -the library file. Once this is complete you can start entering forth commands: +The first thing the interpreter will do is compile the core +definitions in the library file. Once this is complete you can start +entering forth commands: : star 42 emit ; ok star * ok -There's an example Mandelbrot Set drawing program included in the examples -directory. To run it, use the `INCLUDE-LIB` word to open the file and compile its -definitions: +There's an example Mandelbrot Set drawing program included in the +examples directory. To run it, use the `INCLUDE-LIB` word to open the +file and compile its definitions: include-lib ../examples/mandelbrot.4th Enter 'mandel' to draw the Mandelbrot Set. ok @@ -81,43 +88,48 @@ definitions: ** ok -(`INCLUDE-LIB` is exactly like INCLUDE, but includes files relative to thte -platform-dependent forth.jl src/ directory.) To exit, enter ^D on a blank line -or use the `BYE` word. - -## FORTH-83 Compliance - -One of my goals has been to have forth.jl contain as much of the -[F83 required word set](http://forth.sourceforge.net/standard/fst83/fst83-12.htm) -as makes sense given the underlying VM. (Actually, my main goal goes a bit -beyond this: I want to forth.jl to be, with a couple of exceptions, compatible -with the description of forth contained in the second edition of Leo Brodie's -book "Starting Forth".) I'm fairly happy with my progress so far. Of the -131 required F83 words, only 20 remain unimplemented. These words fall into -two categories: those I may possibly implement at some point, and those that I -do not intend to ever implement for reasons of obsolescence or incompatibility -with the design of the VM. +(`INCLUDE-LIB` is exactly like INCLUDE, but includes files relative to +thte platform-dependent forth.jl src/ directory.) To exit, enter ^D on +a blank line or use the `BYE` word. + +FORTH-83 Compliance +------------------- + +One of my goals has been to have forth.jl contain as much of the F83 +required word set +(http://forth.sourceforge.net/standard/fst83/fst83-12.htm) as makes +sense given the underlying VM. (Actually, my main goal goes a bit +beyond this: I want to forth.jl to be, with a couple of exceptions, +compatible with the description of forth contained in the second +edition of Leo Brodie's book "Starting Forth".) I'm fairly happy with +my progress so far. Of the 131 required F83 words, only 20 remain +unimplemented. These words fall into two categories: those I may +possibly implement at some point, and those that I do not intend to +ever implement for reasons of obsolescence or incompatibility with the +design of the VM. ### F83 Words that may be implemented someday # #> #S -TRAILING <# -These words all have to do with number to string conversion, something I've -not been interested in enough yet to get on top of. +These words all have to do with number to string conversion, something +I've not been interested in enough yet to get on top of. ### F83 Words that won't be implemented D+ D< DNEGATE U< UM* UM/MOD BLOCK BUFFER FLUSH SAVE-BUFFERS UPDATE BLK HOLD LOAD FORTH-83 -These words don't make sense to implement. The double-length integer words are -useless because the smallest unit of memory in our VM is a full 64 bit -integer. For the same reason, there's no point in dealing with unsigned values -just to gain access to another bit. The block I/O words don't make sense because -we have access to a filesystem via the OS. +These words don't make sense to implement. The double-length integer +words are useless because the smallest unit of memory in our VM is a +full 64 bit integer. For the same reason, there's no point in dealing +with unsigned values just to gain access to another bit. The block +I/O words don't make sense because we have access to a filesystem via +the OS. -## License +License +------- -This package is free software and is distributed under version 3.0 of the GNU -General Public License, which may be found in the file LICENSE in this -directory. +This package is free software and is distributed under version 3.0 of +the GNU General Public License, which may be found in the file LICENSE +in this directory. diff --git a/REQUIRE b/REQUIRE deleted file mode 100644 index 0650e01..0000000 --- a/REQUIRE +++ /dev/null @@ -1,2 +0,0 @@ -julia 0.5 -REPL -- 2.20.1 From d490558f158557225506f7c1c5ff0e7681d94444 Mon Sep 17 00:00:00 2001 From: plugd Date: Fri, 7 Oct 2022 10:54:17 +0200 Subject: [PATCH 14/16] Added missing dependency to toml files. --- Manifest.toml | 108 +++++++++++++++++++++++++++++++++++++++++++++++++- Project.toml | 3 +- 2 files changed, 109 insertions(+), 2 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index d31ff75..47b0c89 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,25 +2,131 @@ julia_version = "1.8.2" manifest_format = "2.0" -project_hash = "206f4376ca4fb9378de05ed1a9ca3725b6697123" +project_hash = "d86bb041504c13b704ee4eeaeee17dc3b45053ec" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.3" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "7.84.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.10.2+0" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.0+0" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.2.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.8.0" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.12+3" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.48.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" diff --git a/Project.toml b/Project.toml index 64e1fea..830ad34 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,8 @@ name = "forth" uuid = "5d94d4ce-a281-4022-9146-f8be3647edb1" -authors = ["Tim Vaughan "] +authors = ["Tim Vaughan "] version = "0.1.0" [deps] +Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -- 2.20.1 From 0c9894ddaba49194dd57c1f67c2d2149f189b04d Mon Sep 17 00:00:00 2001 From: plugd Date: Fri, 7 Oct 2022 11:00:06 +0200 Subject: [PATCH 15/16] Updated readme. --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 3b391bc..2f88835 100644 --- a/README +++ b/README @@ -30,9 +30,9 @@ forth.jl is not (and probably will never be) a registered julia package. To install it, you will therefore need to use the following command from the Julia package manager (accessed using the `]` key): - (v1.0) pkg> add git://thelambdalab.xyz/forth.jl.git + (v1.8) pkg> add git://thelambdalab.xyz/forth.jl.git -Be aware that **forth.jl requires Julia 1.0**. +Be aware that **forth.jl requires Julia 1.8 or later**. Usage ----- -- 2.20.1 From 2a9a2c3237b41e941fc6ed65743aacbfe464bb56 Mon Sep 17 00:00:00 2001 From: plugd Date: Fri, 7 Oct 2022 11:17:04 +0200 Subject: [PATCH 16/16] Removed silly stuff from readme. --- README | 3 --- 1 file changed, 3 deletions(-) diff --git a/README b/README index 2f88835..ca4de93 100644 --- a/README +++ b/README @@ -20,9 +20,6 @@ Since that time I've added a significant number of core definitions and modified some of the others with the eventual aim of F83 compliance (discussed below). -There's quite a lot to say about the implementation, especially due to -its high-level grounding, but that will have to wait for another time. - Installation ------------ -- 2.20.1