Commit graph

75 commits

Author SHA1 Message Date
Justin Ethier
f091d0267e Unsafe (length) 2019-11-26 23:06:01 -05:00
Justin Ethier
0651716196 Unsafe vector-set 2019-11-26 22:58:24 -05:00
Justin Ethier
c30bf50b5d Fix unsafe car/cdr 2019-11-26 16:11:57 -05:00
Justin Ethier
5f42a06601 More unsafe prims 2019-11-26 16:03:06 -05:00
Justin Ethier
537e8bc975 Experimenting with unsafe prims 2019-11-26 15:37:52 -05:00
Justin Ethier
e6c23e25c1 Issue #337
Added `open-binary-input-file` and `open-binary-output-file` from R7RS.
2019-09-15 10:40:06 -04:00
Justin Ethier
1edb877c5f Speed up vector for five args or less 2019-08-02 12:13:30 -04:00
Justin Ethier
f64d429ab8 WIP 2019-02-28 09:43:58 -05:00
Justin Ethier
c564400f5a Classify apply functions as mutators
We don't know if the functions they call will mutate or not, so err on the side of caution. Not sure this is really necessary since they receive a cont and therefore cannot be inlined anyway.
2018-12-21 21:48:57 -05:00
Justin Ethier
58e2809330 Use hashsets 2018-12-19 14:24:20 -05:00
Justin Ethier
9727e9f86c Use memq instead of member
We are looking up symbols so memq can be used instead, which is must faster at scale.
2018-12-18 22:01:27 -05:00
Justin Ethier
d54a0130c0 Issue #284 - Fix how udf:prims are compiled 2018-12-14 14:04:19 -05:00
Justin Ethier
c625e8b0e6 Second try with fast list 2018-12-05 17:39:09 -05:00
Justin Ethier
1a586b188c Disable fast list functions
Having problems getting macros to work in a safe way with Cyc-seq. Since these functions were never a big win anyway, we are going to disable them for now.
2018-12-04 17:51:35 -05:00
Justin Ethier
c65977a6a2 Cut over list_2 to new macro 2018-12-04 14:51:03 -05:00
Justin Ethier
f7d76bd90a Do not use make_cell 2018-12-03 18:06:59 -05:00
Justin Ethier
01a73839ac Cut cons over to new expr-safe code
Want to ensure cons can be used safely as part of a Cyc-seq. This cannot happen if the cons used the previous make_pair macro as that can only be called at the top of a function as part of a declaration.
2018-12-03 13:17:17 -05:00
Justin Ethier
69a35f7d2e Revert I/O changes for now 2018-11-30 17:50:34 -05:00
Justin Ethier
f5b7c75184 Temporarily revert previous changes for cons 2018-11-30 17:26:45 -05:00
Justin Ethier
8ccd2b3525 WIP, seq safe allocation/assignment of pairs 2018-11-30 13:38:10 -05:00
Justin Ethier
e6e6527be7 WIP 2018-11-29 18:51:08 -05:00
Justin Ethier
a918f2cb2d issue #282 - Put numeric operations in body
This avoids ordering issues. But I think we still have trouble with other primtives. Is there ever a legitimate need to declare a c var for a prim??? I am not seeing it, especially with our changes now for Cyc-seq.
2018-11-29 13:36:07 -05:00
Justin Ethier
b0e6c42eb1 Added prim->c-func-uses-alloca? 2018-11-22 17:33:06 -05:00
Justin Ethier
4824fc50ed Increased alloca support 2018-10-26 13:03:54 -04:00
Justin Ethier
be5a5f1c6b WIP - optionally emit alloca-based prims 2018-10-24 13:17:44 -04:00
Justin Ethier
f2704eb5e4 Experimenting with faster versions of (list) 2018-06-19 13:18:14 -04:00
Justin Ethier
df0f325c00 Issue #55 2018-05-16 14:15:45 -04:00
Justin Ethier
4a3c68a7d3 Prevent a compiler error when there is only one argument to + or *. 2018-02-01 17:42:05 -05:00
Justin Ethier
be8ad49ac4 Issue #76
Compile a faster version of `apply` when only two arguments are received.
2018-01-04 18:36:44 -05:00
Justin Ethier
94df8603c6 Issue #217 - Use primitives directly if possible 2017-09-05 17:44:25 -04:00
Justin Ethier
8f2a918283 Issue #217 - Optional port arg for peek-char 2017-09-04 18:38:15 -04:00
Justin Ethier
12c91b86a5 Issue #217 2017-09-02 18:49:41 -04:00
Justin Ethier
945c171892 Issue #215 2017-08-29 13:52:20 +00:00
Justin Ethier
fc49dbb52a Issue #215 - Added (->dyadic) and some conversions 2017-08-28 19:02:11 -04:00
Justin Ethier
856f201eb0 Optimize negation 2017-07-12 12:07:41 +00:00
Justin Ethier
7cdabc02b6 WIP 2017-05-25 17:46:41 -04:00
Justin Ethier
d533cf6910 Use double_type as ptr type for UDF inlines
Cannot use common_type as it leads to segfaults when running the gcbench benchmark. There must be an alignment problem or such that seems to work most of the time but is ultimately unstable.
2017-05-09 21:44:26 +00:00
Justin Ethier
27bacda445 Use car instead of cell_get
car is much faster since there is no function overhead.
2017-05-09 15:33:56 +00:00
Justin Ethier
10fb038c37 Added (prim:udf?) 2017-04-04 07:54:39 +00:00
Justin Ethier
742c55bf45 Take udf-prims into account 2017-04-04 07:45:24 +00:00
Justin Ethier
0b76fbc8b2 Use new function from prim library 2017-04-04 05:41:45 +00:00
Justin Ethier
99bb171bb1 Added prim:func->prim 2017-04-04 05:30:51 +00:00
Justin Ethier
acef00a5b6 WIP 2017-04-04 19:00:50 -04:00
Justin Ethier
0e092da703 WIP 2017-04-04 18:47:05 -04:00
Justin Ethier
ca68ab358a Added fast char cmp prims 2017-03-20 18:17:40 -04:00
Justin Ethier
e78b336b78 Issue #102 - Pass data parameter to Cyc_display() 2016-12-22 00:14:53 -05:00
Justin Ethier
f60fed7344 Issue #102 - Added a data parameter to Cyc_write() 2016-12-21 23:47:39 -05:00
Justin Ethier
3985544a0f Designated more primitives dealing with immutables 2016-12-14 17:31:46 -05:00
Justin Ethier
44bd8986d7 WIP 2016-12-14 03:35:15 +00:00
Justin Ethier
c3b31e0181 Added (prim:immutable-args/result? sym) 2016-12-13 18:48:54 -05:00