diff options
| author | Eduardo Julian | 2018-07-31 18:36:18 -0400 | 
|---|---|---|
| committer | Eduardo Julian | 2018-07-31 18:36:18 -0400 | 
| commit | eea58ee669f69fddf2cef9e1675c41959e2e0a55 (patch) | |
| tree | 5424dab3ef26190958fe4371f3f50995025d31cf /new-luxc/source/luxc/lang/translation/r | |
| parent | 748c868680683df1949f62aac274040ac5bf43da (diff) | |
Now implementing atom functionality in stdlib instead of the compiler.
Diffstat (limited to '')
4 files changed, 0 insertions, 74 deletions
diff --git a/new-luxc/source/luxc/lang/translation/r/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/r/procedure/common.jvm.lux index c17eb6738..d8f4f4662 100644 --- a/new-luxc/source/luxc/lang/translation/r/procedure/common.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/r/procedure/common.jvm.lux @@ -350,27 +350,6 @@            (install "current-time" (nullary (function (_ _)                                               (runtimeT.io//current-time! runtimeT.unit))))))) -## [[Atoms]] -(def: atom//new -  Unary -  (|>> [runtimeT.atom//field] (list) r.named-list)) - -(def: atom//read -  Unary -  (r.nth (r.string runtimeT.atom//field))) - -(def: (atom//compare-and-swap [atomO oldO newO]) -  Trinary -  (runtimeT.atom//compare-and-swap atomO oldO newO)) - -(def: atom-procs -  Bundle -  (<| (prefix "atom") -      (|> (dict.new text.Hash<Text>) -          (install "new" (unary atom//new)) -          (install "read" (unary atom//read)) -          (install "compare-and-swap" (trinary atom//compare-and-swap))))) -  ## [[Box]]  (def: box//new    Unary @@ -420,7 +399,6 @@            (dict.merge text-procs)            (dict.merge array-procs)            (dict.merge io-procs) -          (dict.merge atom-procs)            (dict.merge box-procs)            (dict.merge process-procs)            ))) diff --git a/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux index fd4adfb1a..ee46836cb 100644 --- a/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux @@ -764,21 +764,6 @@        @@array//get        @@array//put)) -(def: #export atom//field Text "lux_atom") - -(runtime: (atom//compare-and-swap atom old new) -  (let [atom//field (r.string atom//field)] -    (r.if (|> (@@ atom) (r.nth atom//field) (r.= (@@ old))) -      ($_ r.then -          (r.set-nth! atom//field (@@ new) atom) -          (r.bool #1)) -      (r.bool #0)))) - -(def: runtime//atom -  Runtime -  ($_ r.then -      @@atom//compare-and-swap)) -  (runtime: (box//write value box)    ($_ r.then        (r.set-nth! (r.int 1) (@@ value) box) @@ -859,7 +844,6 @@        runtime//frac        runtime//text        runtime//array -      runtime//atom        runtime//box        runtime//io        runtime//process diff --git a/new-luxc/source/luxc/lang/translation/ruby/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/ruby/procedure/common.jvm.lux index ba6a1241a..96d42a4a9 100644 --- a/new-luxc/source/luxc/lang/translation/ruby/procedure/common.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/ruby/procedure/common.jvm.lux @@ -391,27 +391,6 @@            (install "exit" (unary io//exit))            (install "current-time" (nullary io//current-time))))) -## [[Atoms]] -(def: atom//new -  Unary -  (|>> [(ruby.string runtimeT.atom//field)] (list) ruby.dictionary)) - -(def: atom//read -  Unary -  (ruby.nth (ruby.string runtimeT.atom//field))) - -(def: (atom//compare-and-swap [atomO oldO newO]) -  Trinary -  (runtimeT.atom//compare-and-swap atomO oldO newO)) - -(def: atom-procs -  Bundle -  (<| (prefix "atom") -      (|> (dict.new text.Hash<Text>) -          (install "new" (unary atom//new)) -          (install "read" (unary atom//read)) -          (install "compare-and-swap" (trinary atom//compare-and-swap))))) -  ## [[Box]]  (def: box//new    Unary @@ -461,7 +440,6 @@            (dict.merge text-procs)            (dict.merge array-procs)            (dict.merge io-procs) -          (dict.merge atom-procs)            (dict.merge box-procs)            (dict.merge process-procs)            ))) diff --git a/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux index 49f5d9d79..32ab5b10c 100644 --- a/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux @@ -222,19 +222,6 @@    (format @@array//get            @@array//put)) -(def: #export atom//field Text "_lux_atom") - -(runtime: (atom//compare-and-swap atom old new) -  (let [atom//field (ruby.string atom//field)] -    (ruby.if! (ruby.= old (ruby.nth atom//field atom)) -              (ruby.block! (list (ruby.set-nth! atom//field new atom) -                                 (ruby.return! (ruby.bool #1)))) -              (ruby.return! (ruby.bool #0))))) - -(def: runtime//atom -  Runtime -  (format @@atom//compare-and-swap "\n")) -  (runtime: (box//write value box)    (ruby.block! (list (ruby.set-nth! (ruby.int 0) value box)                       (ruby.return! ..unit)))) @@ -263,7 +250,6 @@            runtime//bit "\n"            runtime//text "\n"            runtime//array "\n" -          runtime//atom "\n"            runtime//box "\n"            runtime//process "\n"            ))  | 
