Commit Graph

145 Commits

Author SHA1 Message Date
whitequark 2f37b1d1c0 compiler: support methods defined on singleton instances.
Fixes #638.
2017-01-30 10:10:21 +00:00
whitequark 68de724554 compiler: monomorphize int64(round(x)) to not lose precision.
This applies to any expression with an indeterminate integer type
cast to int64(), not just round().
2016-12-02 15:02:44 +00:00
whitequark 55ea68da7f compiler: unbreak casts to int32/int64. 2016-11-21 14:20:28 +00:00
whitequark 35f4449ef2 inferencer: significantly improve the op-assignment diagnostic.
Before this commit, it displayed incorrect output if an error
appeared on 2nd run and beyond, and displayed messages for trying
to do "num32 -= num64" that made very little sense.
2016-11-21 14:20:24 +00:00
whitequark 009d396740 Move mu_to_seconds, seconds_to_mu to Core. 2016-11-21 05:37:30 +00:00
whitequark 7af41bd29c llvm_ir_generator: handle no-op coercions. 2016-11-21 02:25:34 +00:00
David Nadlinger bfbdba9205 compiler: Emit all-kernel_invariant objects as LLVM constants
This enables constant propagation optimisations, as verified by
the included test case. This is only a first stop-gap measure, though;
we should support optimisation based on kernel invariants on a more
fine-grained level.
2016-11-09 14:50:48 +00:00
David Nadlinger 7dcc987dd7 compiler: Fix break/continue targets in loop else blocks
Previously, they would still target the respective labels in the
just-exited loop.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-05 02:35:01 +00:00
whitequark cd68577dbc compiler: add support for async RPCs. 2016-10-30 00:57:31 +00:00
whitequark feeb089505 compiler: warn about unused kernel_invariant entries.
Fixes #543.
2016-09-14 23:28:55 +00:00
whitequark 1a518ea7eb compiler.embedding: implement string concatenation.
Fixes #526.
2016-08-08 04:05:52 +00:00
whitequark 5a79fcf9ba embedding: reimplement 373578bc properly.
The core of the problem that 373578bc was attempting to solve is
that diagnostics sometimes should be chained; one way of chaining
is the loc.expanded_from feature, which handles macro-like expansion,
but another is providing context.

Before this commit, context was provided using an ad-hoc override
of a diagnostic engine, which did not work in cases where diagnostic
engine was not threaded through the call stack. This commit uses
the newly added pythonparser context feature to elegantly handle
the problem.
2016-07-07 11:49:21 +00:00
whitequark 933ea53c77 compiler: add basic numpy array support (#424). 2016-07-06 09:51:57 +00:00
whitequark fa71b40c80 compiler: print the builtin type int(width=...) as np.int... 2016-07-06 04:22:51 +00:00
whitequark 6155f65366 compiler: remove now()/at().
Fixes #490.
2016-06-28 04:39:14 +00:00
whitequark 33e8e59cc7 compiler: implement min()/max() as builtins.
Fixes #239.
2016-06-22 01:09:41 +00:00
whitequark 77d47c2fdd transforms.artiq_ir_generator: split out finally→reraise control flow.
This makes it accessible to introspect by local access validator,
making some previously rejected code valid.

Fixes #331.
2016-06-22 00:57:32 +00:00
whitequark f2ae24da39 compiler: add support for Python modules.
Fixes #408.
2016-06-21 23:35:07 +00:00
whitequark c0e42bbfc8 compiler.embedding: always do one final inference pass.
Fixes #477.
2016-06-16 14:18:43 +00:00
whitequark 355af3e569 embedding: specialize inherited functions.
Fixes #414.
2016-05-16 15:59:26 +00:00
whitequark 0826ceb8ba Commit missing parts of a5bb4a24. 2016-05-10 02:12:57 +00:00
whitequark a5bb4a24af compiler: support short form of raise.
Fixes #240.
2016-05-10 01:41:40 +00:00
whitequark 4e5d752951 compiler: fix quoting of methods (fixes #423). 2016-05-09 12:25:57 +00:00
Sebastien Bourdeauducq 5efa5f5265 style 2016-05-03 16:24:01 +08:00
whitequark f7d83e9bdf compiler: make kernel_invariant an instance, not class, property.
Fixes #409.
2016-04-29 13:06:11 +00:00
whitequark 1464bae6b7 compiler: don't typecheck RPCs except for return type.
Fixes #260.
2016-04-26 01:12:36 +00:00
whitequark 9cc9e8b276 embedding: s/kernel_constant_attributes/kernel_invariants/g
Requested in #359.
2016-04-06 22:38:31 +00:00
whitequark 330b232672 test: relax lit/embedding/syscall_flags.
We currently have broken debug info. In either case, debug info
is irrelevant to this test.
2016-03-29 13:34:37 +00:00
whitequark 1038f1321f compiler: allow specifying per-function "fast-math" flags.
Fixes #351.
2016-03-28 21:44:08 +00:00
whitequark f31249ad1c Commit missing parts of 6f5332f8. 2016-03-28 20:28:08 +00:00
whitequark f4e6b18690 compiler: implement kernel constant attributes.
Part of #322.
2016-03-27 16:10:07 +00:00
whitequark 8d0566661a compiler: quote functions directly instead of going through a local. 2016-03-25 22:35:55 +00:00
whitequark ac5061c205 validators.escape: track region of arguments.
Fixes #232.
2016-03-18 03:08:14 +00:00
whitequark 7e16da4a77 transforms.llvm_ir_generator: ignore assignments of None (fixes #309). 2016-03-01 12:26:42 +00:00
whitequark 63e0c7c07c Revert wrong parts of 6bd16e44. 2016-02-27 13:15:49 +00:00
whitequark 6bd16e448e Commit missing parts of 919a49b6. 2016-02-25 20:02:31 +00:00
whitequark 18274a09a1 Commit missing parts of 4426730. 2016-02-25 02:05:44 +00:00
whitequark bc81be1345 Implement dumb 'with parallel' (#265). 2016-02-22 13:51:08 +00:00
whitequark 51a5910002 Rename 'with parallel' to 'with interleave' (#265). 2016-02-22 13:24:43 +00:00
whitequark b0e7fddc32 lit: unbreak on non-conda. 2016-02-22 13:16:43 +00:00
whitequark f28b259b5f Commit missing parts of 74a75841. 2016-02-15 19:36:19 +00:00
Sebastien Bourdeauducq 9ca8b48bf9 assume 'import artiq' works before running tests 2016-02-02 21:52:33 +01:00
whitequark 0acc86b3b3 transforms.iodelay_estimator: make diagnostics much more clear. 2016-01-27 02:10:15 +00:00
whitequark 3573a8750a transforms.inferencer: give a suggestion on "raise Exception". 2016-01-20 03:20:25 +00:00
Robert Jördens d7e4783cae lit-test: move to artiq/test 2016-01-18 15:28:24 -07:00