include env fix, decode-universal-time added
This commit is contained in:
parent
3ca189a78c
commit
0260c74e7f
|
|
@ -66,7 +66,6 @@ utils/local_install.sh
|
||||||
|
|
||||||
|
|
||||||
### KNOWNN BUGS
|
### KNOWNN BUGS
|
||||||
- in (include "file.lsp") are not available stdlib.lsp finctions like (string-trim ..) etc
|
|
||||||
- (read-url "https://api.nasdaq.com/api/calendar/dividends/") ; hangs in sslclient.cpp line 132
|
- (read-url "https://api.nasdaq.com/api/calendar/dividends/") ; hangs in sslclient.cpp line 132
|
||||||
|
|
||||||
### TODO
|
### TODO
|
||||||
|
|
@ -96,8 +95,6 @@ utils/local_install.sh
|
||||||
- string functions
|
- string functions
|
||||||
- compare - needed for sorting, cmp ignore case
|
- compare - needed for sorting, cmp ignore case
|
||||||
- regexp match, regexp tokens
|
- regexp match, regexp tokens
|
||||||
- date support
|
|
||||||
- decode-universal-time (http://www.lispworks.com/documentation/HyperSpec/Body/f_dec_un.htm)
|
|
||||||
- env functions
|
- env functions
|
||||||
- get-env, set-env; set-env cannot be implemented in stdlib.lsp, because popen is in fact subshell
|
- get-env, set-env; set-env cannot be implemented in stdlib.lsp, because popen is in fact subshell
|
||||||
- macros and then loop, let etc
|
- macros and then loop, let etc
|
||||||
|
|
|
||||||
6
ml.cpp
6
ml.cpp
|
|
@ -1393,16 +1393,12 @@ MlValue tcp_client(std::vector<MlValue> args, MlEnvironment &env) {
|
||||||
|
|
||||||
// Read a file and execute its code
|
// Read a file and execute its code
|
||||||
MlValue include(std::vector<MlValue> args, MlEnvironment &env) {
|
MlValue include(std::vector<MlValue> args, MlEnvironment &env) {
|
||||||
// Import is technically not a special form, it's more of a macro.
|
|
||||||
// We can evaluate our arguments.
|
|
||||||
eval_args(args, env);
|
eval_args(args, env);
|
||||||
|
|
||||||
if (args.size() != 1)
|
if (args.size() != 1)
|
||||||
throw MlError(MlValue("include", include), env, args.size() > 1 ? TOO_MANY_ARGS : TOO_FEW_ARGS);
|
throw MlError(MlValue("include", include), env, args.size() > 1 ? TOO_MANY_ARGS : TOO_FEW_ARGS);
|
||||||
|
|
||||||
MlEnvironment e;
|
MlValue result = run(read_file_contents(args[0].as_string()), env);
|
||||||
MlValue result = run(read_file_contents(args[0].as_string()), e);
|
|
||||||
env.combine(e);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
(defn end-of-prev-month (datetime) (date-add (end-of-month datetime) -1 "month"))
|
(defn end-of-prev-month (datetime) (date-add (end-of-month datetime) -1 "month"))
|
||||||
(defn start-of-year (datetime) (str-to-date (+ (date-to-str datetime "%Y") "-01-01 00:00:00") "%Y-%m-%d %H:%M:%S"))
|
(defn start-of-year (datetime) (str-to-date (+ (date-to-str datetime "%Y") "-01-01 00:00:00") "%Y-%m-%d %H:%M:%S"))
|
||||||
(defn end-of-year (datetime) (str-to-date (+ (date-to-str datetime "%Y") "-12-31 23:59:59") "%Y-%m-%d %H:%M:%S"))
|
(defn end-of-year (datetime) (str-to-date (+ (date-to-str datetime "%Y") "-12-31 23:59:59") "%Y-%m-%d %H:%M:%S"))
|
||||||
|
(defn decode-universal-time (time) (map (lambda (x) (int x)) (string-split (date-to-str time "%S %M %H %d %m %Y %w") "\s+")))
|
||||||
|
|
||||||
; from list of lists creates csv string
|
; from list of lists creates csv string
|
||||||
; (print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))
|
; (print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@
|
||||||
(ut::define-test "result of (end-of-prev-month)" '(ut::assert-equal 1619827199 (end-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
(ut::define-test "result of (end-of-prev-month)" '(ut::assert-equal 1619827199 (end-of-prev-month (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
||||||
(ut::define-test "result of (start-of-year)" '(ut::assert-equal 1609459200 (start-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
(ut::define-test "result of (start-of-year)" '(ut::assert-equal 1609459200 (start-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
||||||
(ut::define-test "result of (end-of-year)" '(ut::assert-equal 1640995199 (end-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
(ut::define-test "result of (end-of-year)" '(ut::assert-equal 1640995199 (end-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
||||||
|
(ut::define-test "result of (decode-universal-time 0)" '(ut::assert-equal '(0 0 0 1 1 1970 4) (decode-universal-time 0)))
|
||||||
|
|
||||||
(ut::define-test "result of (read-file-lines \"/tmp/f.txt\" counter)" '(ut::assert-equal 3 (read-file-lines "/tmp/f.txt" counter)))
|
(ut::define-test "result of (read-file-lines \"/tmp/f.txt\" counter)" '(ut::assert-equal 3 (read-file-lines "/tmp/f.txt" counter)))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue