Skip to content

Commit

Permalink
Adapting to new List type (part 20).
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardoejp committed May 16, 2024
1 parent 46c9158 commit b5f799e
Show file tree
Hide file tree
Showing 45 changed files with 931 additions and 917 deletions.
22 changes: 11 additions & 11 deletions lux-c++/source/program.lux
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
["[0]" utf8]]]
[collection
["[0]" array
["[1]" \\unsafe (.only Array)]]]]
["[1]" \\unsafe]]]]
[math
[number
["n" natural]
Expand Down Expand Up @@ -78,10 +78,10 @@
Any)

(import cppyy
"[1]::[0]"
("static" cppdef [Text] "io" "try" Bit)
("static" cppexec [Text] "io" "try" Bit)
("static" gbl Globals))
"[1]::[0]"
("static" cppdef [Text] "io" "try" Bit)
("static" cppexec [Text] "io" "try" Bit)
("static" gbl Globals))

(ffi.import (getattr [Any Text] Any))

Expand Down Expand Up @@ -138,8 +138,8 @@
(|> (array.empty 3)
(array.has! 0 lefts)
(array.has! 1 (if right?
[]
(.python_object_none#)))
[]
(.python_object_none#)))
(array.has! 2 choice)
[] ..tuple))

Expand All @@ -158,10 +158,10 @@
(loop (next [member 0
output (array.empty arity)])
(if (n.< arity member)
(next (++ member)
(array.has! member (lux_value @ (tuple::member @ member input))
output))
output))))
(next (++ member)
(array.has! member (lux_value @ (tuple::member @ member input))
output))
output))))

(the (lux_value @ it)
(-> Runtime Value
Expand Down
114 changes: 57 additions & 57 deletions lux-cl/source/program.lux
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
["%" \\injection]
["[0]" encoding]]
[collection
["[0]" array (.only Array)]]]
["[0]" array]]]
[macro
["[0]" template]]
[math
Expand Down Expand Up @@ -68,93 +68,93 @@
["[1][0]" static]]])

(ffi.import java/lang/String
"[1]::[0]")
"[1]::[0]")

(ffi.import (java/lang/Class a)
"[1]::[0]"
("static" forName [java/lang/String] "try" (java/lang/Class java/lang/Object)))
"[1]::[0]"
("static" forName [java/lang/String] "try" (java/lang/Class java/lang/Object)))

(ffi.import java/lang/Object
"[1]::[0]"
(toString [] java/lang/String)
(getClass [] (java/lang/Class java/lang/Object)))
"[1]::[0]"
(toString [] java/lang/String)
(getClass [] (java/lang/Class java/lang/Object)))

(ffi.import java/lang/Long
"[1]::[0]"
(intValue [] java/lang/Integer))
"[1]::[0]"
(intValue [] java/lang/Integer))

(ffi.import java/lang/Integer
"[1]::[0]"
(longValue [] long))
"[1]::[0]"
(longValue [] long))

(ffi.import java/lang/Number
"[1]::[0]"
(intValue [] java/lang/Integer)
(longValue [] long)
(doubleValue [] double))
"[1]::[0]"
(intValue [] java/lang/Integer)
(longValue [] long)
(doubleValue [] double))

(ffi.import org/armedbear/lisp/LispObject
"[1]::[0]"
(length [] int)
(NTH [int] org/armedbear/lisp/LispObject)
(SVREF [int] org/armedbear/lisp/LispObject)
(elt [int] org/armedbear/lisp/LispObject)
(execute [org/armedbear/lisp/LispObject org/armedbear/lisp/LispObject] "try" org/armedbear/lisp/LispObject))
"[1]::[0]"
(length [] int)
(NTH [int] org/armedbear/lisp/LispObject)
(SVREF [int] org/armedbear/lisp/LispObject)
(elt [int] org/armedbear/lisp/LispObject)
(execute [org/armedbear/lisp/LispObject org/armedbear/lisp/LispObject] "try" org/armedbear/lisp/LispObject))

... The org/armedbear/lisp/Interpreter must be imported before the
... other ones, because there is an order dependency in their static initialization.
(ffi.import org/armedbear/lisp/Interpreter
"[1]::[0]"
("static" getInstance [] org/armedbear/lisp/Interpreter)
("static" createInstance [] "?" org/armedbear/lisp/Interpreter)
(eval [java/lang/String] "try" org/armedbear/lisp/LispObject))
"[1]::[0]"
("static" getInstance [] org/armedbear/lisp/Interpreter)
("static" createInstance [] "?" org/armedbear/lisp/Interpreter)
(eval [java/lang/String] "try" org/armedbear/lisp/LispObject))

(ffi.import org/armedbear/lisp/Symbol
"[1]::[0]"
("static" T org/armedbear/lisp/Symbol))
"[1]::[0]"
("static" T org/armedbear/lisp/Symbol))

(ffi.import org/armedbear/lisp/DoubleFloat
"[1]::[0]"
(new [double])
(doubleValue [] double))
"[1]::[0]"
(new [double])
(doubleValue [] double))

(ffi.import org/armedbear/lisp/SimpleString
"[1]::[0]"
(new [java/lang/String])
(getStringValue [] java/lang/String))
"[1]::[0]"
(new [java/lang/String])
(getStringValue [] java/lang/String))

(ffi.import org/armedbear/lisp/LispInteger
"[1]::[0]")
"[1]::[0]")

(ffi.import org/armedbear/lisp/Bignum
"[1]::[0]"
(longValue [] long)
("static" getInstance [long] org/armedbear/lisp/LispInteger))
"[1]::[0]"
(longValue [] long)
("static" getInstance [long] org/armedbear/lisp/LispInteger))

(ffi.import org/armedbear/lisp/Fixnum
"[1]::[0]"
(longValue [] long)
("static" getInstance [int] org/armedbear/lisp/Fixnum))
"[1]::[0]"
(longValue [] long)
("static" getInstance [int] org/armedbear/lisp/Fixnum))

(ffi.import org/armedbear/lisp/Nil
"[1]::[0]"
("static" NIL org/armedbear/lisp/Symbol))
"[1]::[0]"
("static" NIL org/armedbear/lisp/Symbol))

(ffi.import org/armedbear/lisp/SimpleVector
"[1]::[0]")
"[1]::[0]")

(ffi.import org/armedbear/lisp/Cons
"[1]::[0]")
"[1]::[0]")

(ffi.import org/armedbear/lisp/Closure
"[1]::[0]")
"[1]::[0]")

(ffi.interface LuxADT
(getValue [] java/lang/Object))
(getValue [] java/lang/Object))

(ffi.import program/LuxADT
"[1]::[0]"
(getValue [] java/lang/Object))
"[1]::[0]"
(getValue [] java/lang/Object))

(template.with [<name>]
[(exception.the (<name> object)
Expand Down Expand Up @@ -253,14 +253,14 @@
(loop (again [idx 0
output (as (Array Any) (array.new size))])
(if (n.< size idx)
... TODO: Start using "SVREF" instead of "elt" ASAP
(when (read (org/armedbear/lisp/LispObject::elt (.integer idx) host_object))
{try.#Failure error}
{try.#Failure error}
... TODO: Start using "SVREF" instead of "elt" ASAP
(when (read (org/armedbear/lisp/LispObject::elt (.integer idx) host_object))
{try.#Failure error}
{try.#Failure error}

{try.#Success member}
(again (++ idx) (array.write! idx (as Any member) output)))
{try.#Success output}))))
{try.#Success member}
(again (++ idx) (array.write! idx (as Any member) output)))
{try.#Success output}))))

(the (read host_object)
(Reader org/armedbear/lisp/LispObject)
Expand All @@ -283,8 +283,8 @@
(when (ffi.is org/armedbear/lisp/Symbol host_object)
{.#Some host_object}
(if (same? (org/armedbear/lisp/Symbol::T) host_object)
{try.#Success true}
(exception.throw ..unknown_kind_of_object (as java/lang/Object host_object)))
{try.#Success true}
(exception.throw ..unknown_kind_of_object (as java/lang/Object host_object)))

{.#None})
... else
Expand Down
Loading

0 comments on commit b5f799e

Please sign in to comment.