2023-11-22T00:33:02Z - 2024-11-22T00:33:02Z
Overview
142 Pull requests merged by 7 users
Merged
#554 Implement abstractions over Structs and NDArray
Merged
#553 Terminate both binary operator branches with *_end basic blocks
Merged
#552 Pass kernel return alongside attributes writeback
Merged
#551 Treat not
operator as logical not
Merged
#550 refactor/lazylock
Merged
#548 Add support for global variables without type annotation
Merged
#547 Fix several issues with global variables
Merged
#546 Implement support for global variables in nac3standalone
Merged
#540 Async RPC support
Merged
#544 Update dependencies and Inkwell
Merged
#534 core: Miscellaneous fixes.
Merged
#525 Fix several missing i1/i8 casts
Merged
#527 Fix RPC of ndarrays from host to device
Merged
#511 standalone & artiq: remove class_names from resolver
Merged
#510 core/typecheck: add missing typecheck in matmul
Merged
#508 ndstrides: Allow multi-file IRRT + Exceptions in IRRT
Merged
#497 core: allow calling parent methods
Merged
#507 [core] Fix resolution of exception names in raise short form
Merged
#505 [core] Add codegen_unreachable
Merged
#503 Implement support for string and tuple equality comparison
Merged
#499 [artiq] Set private linkage for constants
Merged
#410 core: Add more creator functions for ProxyType
Merged
#395 Implement negative indices for ndarrays
Merged
#485 Implement partial support for variadic parameters
Merged
#477 Fix codegen issues for 32-bit targets
Merged
#481 Updates to 32-bit codegen
Merged
#463 Miscellanous ARTIQ fixes
Merged
#401 Implement numpy.{min,minimum,max,maximum}, fix missing TVar lowering
Merged
#456 core: add np_argmax/np_argmin functions
Merged
#426 Implement RPC for NDArrays
Merged
#445 Refactor List into TObj, Implement __add__, __mul__, __eq__ and __ne__ for lists
Merged
#478 add nalgebra::linalg methods
Merged
#440 core: Fix crashes on invalid subscripting & iterating over non-iterables.
Merged
#439 core: improve binop and cmpop error messages
Merged
#434 core: support tuple and int32 input for np_empty, np_ones, and more
Merged
#386 Implement ndarray.fill
and ndarray.copy
, miscellaneous bugs
Merged
#387 Add miscellaneous abstraction
Merged
#414 core: refactor to use TypeVarId
and TypeVar
Merged
#390 Implement ndarray binary, unary and compare operators
Merged
#393 Fix several internal errors
Merged
#394 Improvements to unary operators
Merged
#398 ndarray: Implement 2D-2D matrix multiplication
Merged
#400 Allow numpy functions to accept scalars or ndarrays
Merged
#454 Miscellanous fixes
Merged
#403 ndarray: Add support for slicing syntax
Merged
#413 Add cargo clippy and cargo fmt to pre-commit hooks
Merged
#412 Implement ndarray.array
Merged
#408 core: Refactor PrimitiveDefinitionIds into an enum + refactor get_builtins()
Merged
#374 Miscellaneous Fixes to IRRT and Standalone Tests
Merged
#331 standalone: Add output_bool in demo library
Merged
#318 Add command-line parser and some debug options
Merged
#319 Use LLVM New Pass Manager
Merged
#321 Use i8 for stack boolean variable allocation
Merged
#322 Meta changes from #321
Merged
#325 Meta Changes from #321
Merged
#328 Demote dead code into a stdout warning
Merged
#333 Fix restoration of stack address after invoking function with struct-typed arguments
Merged
#334 Move more alloca to the beginning of function
Merged
#335 Improvements to List Comprehension Codegen
Merged
#339 Implement NumPy math functions
Merged
#340 Fix thread safety with LLVM library
Merged
#341 Minor improvements to multithreaded compilation in Standalone
Merged
#343 ld: Fix remapping of FDEs with multiple CFIs
Merged
#347 Fix behavior of with parallel
Merged
#353 Implement several unimplemented integer operations and fix casting-related bugs
Merged
#357 Prefix all NumPy/SciPy functions
Merged
#360 Implement const-generics
Merged
#363 Cleanup const generics implementation
Merged
#364 Miscellaneous Code Cleanup
Merged
#369 Temporarily disable multiple literal bounds
Merged
#371 Implement ndarray class, constructor and creation functions
Merged
#373 Fix for several compilation/test regressions
Merged
#375 Add LLVM value abstractions for List, Range and NDArray
Merged
#376 Disallow return of non-primitive values
Merged
#377 Allow return of tuple of primitives
Merged
#381 Implement indexing for ndarray
Merged
#382 Update dependencies, apply clippy changes, and extract LLVM intrinsic functions
Merged
#383 Use TObj to represent NDArrays and remove TNDArray
Merged
#316 Fix #284
Merged
#104 Polymorphism Fixes
Merged
#126 len support for list and range (#103)
Merged
#155 Add file name to error messages (#70)
Merged
#168 Error Message Improvement for Host Variables (#116)
Merged
#174 Tuple by value (#172)
Merged
#181 Exception and RPC implementation
Merged
#195 Better error messages
Merged
#213 Unsigned Integer Support
Merged
#216 min, max, abs support (#201, #206)
Merged
#218 builtin errors
Merged
#238 Fixed typevar with fixed range
Merged
#247 Tuple Fix (#246)
Merged
#317 Improve IR variable naming
Merged
#252 Default Parameter
Merged
#255 Add bound check for list and range (#185)
Merged
#259 Get llvm value with expected type (#256)
Merged
#261 Optimize Kernel Invariant on Unwrap and Tuple
Merged
#267 Debug Location Info
Merged
#2 basic type inference
Merged
#292 Replace ld.lld with nac3ld for non-host targets
Merged
#295 Fix Call Type Error of Inheritance
Merged
#495 [artiq] Fix RPC of ndarrays to host
Merged
#493 [artiq] Fix LLVM representation of strings
Merged
#492 core: Add compile-time feature to disable escape analysis
Merged
#488 Implement core_log
and rtio_log
to ARTIQ
Merged
#489 core: Implement len()
on tuples.
Merged
#490 core/typecheck: fix np_array ndmin bug
Merged
#483 core: reimplement assignment type inference and codegen + other minor changes & refactor
Merged
#479 Cleanup PrimDef
Merged
#462 standalone: fix __nac3_raise def in demo.c
Merged
#455 core: support raise exception short form
Merged
#453 core: reduce code duplication in codegen/extern_fns
Merged
#450 core: reduce code duplication in codegen/llvm_intrinsic
Merged
#452 Make range a type so that it can be used as parameters
Merged
#449 meta: use clang -x c++ instead of clang++
Merged
#448 core: use C++ for irrt source
Merged
#447 core/llvm_intrinsic: use llvm.rint for rounding
Merged
#446 core: workaround inkwell on llvm.stackrestore
Merged
#428 core/llvm_intrinsics: remove llvm.roundeven call from call_float_roundeven (issue 396)
Merged
#442 core: fix __nac3_ndarray_calc_size crash due to incorrect typing
Merged
#437 core: improve function call errors
Merged
#438 standalone: prettify TopLevelComposer error reporting
Merged
#425 core: add support for class attributes (issue-102)
Merged
#433 core: name codegen worker threads
Merged
#429 Implement/Fix support for tuple-indexing into ndarrays
Merged
#422 core: reduce code duplication in codegen/builtin_fns
Merged
#423 Add handling for np.bool_ and np.str_
Merged
#416 nac3artiq: add support string attributes in classes
Merged
#419 Run Clippy on test sources as well in pre-commit hook
Merged
#409 core: Refactor class abstractions
Merged
#406 nac3core: add assertion message in TopLevelComposer::new
Merged
#407 core: Refactor to get LLVM intrinsics via Intrinsics::find
Merged
#405 flake: add llvmPackages_14.llvm to devShells linux default
Merged
#388 Use sequenced collection for VarMap
Merged
#380 core: Fix typo in error message
Merged
#379 core: Fix Literal use in variable type annotation
Merged
#378 core: Use Display output for locations
Merged
#367 Require const generic literals to be wrapped in Literal
Merged
#368 Minor formatting cleanup
Merged
#366 Refactor to use more let-else bindings
Merged
#351 artiq, core: Return HashSet of error messages for analysis
Merged
#362 Simplify get_builtins
to only return top-level built-in declarations
Merged
#361 Use {filename}:{row}:{col}
for location output
18 Pull requests proposed by 4 users
Proposed
#424 core: implement np.any()
& np.all()
Proposed
#451 meta: Use mold as linker
Proposed
#509 ndstrides: [1] Introduce models
Proposed
#512 ndstrides: [2] {Any,Tuple,List}Object
+ Implement np_{zeros,ones,full,empty}
and len()
Proposed
#513 ndstrides: [3] Implement indexing/slicing
Proposed
#514 ndstrides: [4] Implement np_array()
Proposed
#515 ndstrides: [5] Implement np_{identity,eye,shape,strides,size}
and ndarray.{fill.copy}
Proposed
#516 ndstrides: [6] Implement np_reshape()
Proposed
#517 ndstrides: [7] implement broadcasting & np_broadcast_to()
Proposed
#518 ndstrides: [8] implement np_transpose()
(with no axes argument)
Proposed
#519 ndstrides: [9] Implement ndarray subscript assignment
Proposed
#520 ndstrides: [10] Reimplement binops, unary ops, and cmpops.
Proposed
#521 ndstrides: [11] Implement general matmul & np_dot()
Proposed
#522 ndstrides: [12] Reimplement builtins
Proposed
#523 ndstrides: [13] Enhance ndarray.py
tests
Proposed
#524 ndstrides: [14] Final cleanups
Proposed
#535 refactor_composer
Proposed
#555 nac3artiq: support kernels sent by content
52 Issues closed from 4 users
Closed
#101 pass return value of kernels to host
Closed
#541 globals support in nac3standalone
Closed
#182 async RPC support
Closed
#537 remove llvm-nac3 from buildInputs
Closed
#494 nac3artiq bloat
Closed
#536 unittest runner blows up
Closed
#502 initialization of large int64 attribute fails
Closed
#496 RPC of ndarray from host to device results in garbage data
Closed
#467 wrong error message on matrix multiplication type error
Closed
#466 incorrect ndarray indexing crashes compiler
Closed
#133 fields broken with inheritance
Closed
#501 Various ARTIQ crashes with get_llvm_type
on TFunc
Closed
#504 Add utility function for emitting code location if unreachable code
error is encountered
Closed
#500 Crash with list[tuple] comparison
Closed
#498 nac3artiq.CompileError: Linking globals named '..._const': symbol multiply defined!
Closed
#465 print_rpc of ndarray freezes
Closed
#384 list might not need a specific type category
Closed
#470 [nac3standalone 32-bit error] ./loop_try_break.py
without --lli
: Executable segfault and output is corrupted
Closed
#472 [nac3standalone 32-bit error] ./classes.py
without --lli
: Executable segfault and output is corrupted
Closed
#473 [nac3standalone 32-bit error] ./lists.py
: Bad LLVM codegen
Closed
#474 [nac3standalone 32-bit error] ./demo_test.py
without --lli
: Executable segfault and output is corrupted
Closed
#476 [nac3standalone 32-bit error] ./ndarray.py
: Bad LLVM codegen
Closed
#431 support precompilation in ARTIQ
Closed
#491 Cannot pass str
into kernels from outside
Closed
#464 Cannot type-annotate ndarray RPC parameter in ARTIQ
Closed
#297 support core_log and rtio_log
Closed
#484 core: Implement len()
on tuples.
Closed
#482 core: Inferencer should treat item assignments differently than direct assignments
Closed
#460 core: Inferencer fold_stmt()
on StmtKind::Assign
should not force unify value_ty
with target_ty
for __setitem__
assignments.
Closed
#480 remaining issues from PR #477
Closed
#471 [nac3standalone 32-bit error] ./loop_try_break.py
WITH --lli
: Executable segfault and output is corrupted
Closed
#475 [nac3standalone 32-bit error] ./demo_test.py
WITH --lli
: Executable segfault and output is corrupted
Closed
#469 [nac3standalone 32-bit error] ./list_slice_issue315.py
without --lli
: Executable segfault and output is corrupted
Closed
#457 Bug: nac3standalone: __nac3_raise
produces different outputs depending on optimization level
Closed
#396 do not use roundeven
Closed
#194 support "raise Exception" short form
Closed
#432 type inferencer crash on artiq_sinara_tester
Closed
#436 Improve type error messages for operator functions.
Closed
#441 ndarray crash in ARTIQ
Closed
#427 Allow numpy factories to take in shape parameter as tuple
Closed
#435 unify_call()
has imprecise error report.
Closed
#102 support class attributes
Closed
#337 string attributes
Closed
#280 ndarray: Elementwise negation for bool arrays
Closed
#420 Type Error for equality between a subscripted ndarray and a scalar
Closed
#385 Refactor PrimitiveDefinitionIds
into an enum
Closed
#404 get rid of nac3core/src/codegen/demo_fns.rs
Closed
#399 Add numpy functions for max/min
Closed
#277 ndarray comparisons
Closed
#391 Collapse all assertions into one fail block
Closed
#342 NAC3 on OpenBSD
Closed
#190 deterministic error message
31 Issues created by 4 users
Opened
#358 tests crash with CLANG64 MSYS2
Opened
#359 module cannot be loaded into Anaconda Python
Opened
#365 deterministic warnings
Opened
#370 Implement support for Literal
with multiple bounds
Opened
#372 NDArray Generic Functions
Opened
#389 Make TObj::fields lazy
Opened
#392 Chained Comparison Operators for ndarrays
Opened
#397 ndarray 1D matrix multiplication
Opened
#411 Implement subscript-assignment for NDArrays
Opened
#421 Missing string equality operator
Opened
#430 support subkernels
Opened
#443 compilation of empty kernel emits undefined llvm.stackrestore.p0i8
Opened
#444 Genericize unifier implementation to remove all special case handling for lists and ndarrays
Opened
#458 Add add_global
and add_array_global
to ProxyValue
classes
Opened
#459 Assignment with list patterns does not work.
Opened
#461 Allow passing, returning, storing function pointers
Opened
#486 core: Generalize ExprKind::Slice
and Constant::Ellipsis
.
Opened
#487 core: Generalize __setitem__
and __getitem__
Opened
#526 Refactor demo.c to C++ or Rust
Opened
#528 test_embedding.DefaultArgTest fails
Opened
#529 test_embedding.ListTupleTest fails
Opened
#530 test_embedding.AssertTest fails
Opened
#531 assorted exception bugs
Opened
#532 test_pulse_rate fails
Opened
#533 support passing keyword arguments to RPC
Opened
#538 using nac3core externally is way too much boilerplate
Opened
#539 KernelInvariant suggestions
Opened
#542 ndarray subscript assignment has to be implemented
Opened
#543 implement np.linspace and np.arange
Opened
#545 remove all knowledge of "rpc" from nac3core
Opened
#549 nac3ld rustc 1.81.0 incompatibility
14 Unresolved Conversations
Open
#226
support experiments submitted by content in ARTIQ
Open
#74
define parallel/sequential in nac3artiq Rust side
Open
#40
module type support
Open
#137
support user-defined iterators
Open
#135
implement enumerate()
Open
#278
ndarray: Implement reshaping
Open
#136
implement super()
Open
#7
make output deterministic
Open
#279
ndarray: all/any for bool arrays
Open
#51
escape analysis
Open
#52
Objects with non-primitive fields
Open
#149
implement numpy arrays, math functions, and matrix math
Open
#338
ARTIQ DMA broken
Open
#356
WIP: Run standalone demos as part of Cargo Test