Releases: lcompilers/lpython
Releases · lcompilers/lpython
v0.22.0
What's Changed
- LLVM: Fix prototype declaration for _lpython_get_argc() by @Shaikh-Ubaid in #2650
- WASM: Use release build by @anutosh491 in #2653
- Fix bug in printing a list by @advikkabra in #2654
--jit
option to execute without creation of executable file by @Vipul-Cariappa in #2564- Make running JIT tests configurable by @Shaikh-Ubaid in #2662
- Add builtin functions by @farah-salama in #2651
- Updated test_gruntz.py by @anutosh491 in #2656
- CI: Fixes for MacOS 14 by @Shaikh-Ubaid in #2671
- Detect unhashable object types at the ASR level by @kmr-srbh in #2664
- Fix symbolic pass for handling
IntrinsicElementalFunction
inprint()
by @kmr-srbh in #2665 - Add compile-time support for
dict.keys
by @kmr-srbh in #2660 - Add compile-time support for
dict.values
by @kmr-srbh in #2661 - Docs: Document built-in functions by @kmr-srbh in #2589
- Remove stray executable
expr
by @kmr-srbh in #2673 - Support string repeat with non constant integer by @kmr-srbh in #2675
- Fixed scoping issues of for loops in global scope by @tanay-man in #2672
- Add compile-time support for
list.pop
by @kmr-srbh in #2659 - Add support for
dict
methods withConst
by @kmr-srbh in #2567 - Add support for item access from
Const
data-structures by @kmr-srbh in #2579 - Introducing Symbolic Infinity constant by @anutosh491 in #2683
- Function Default Arguments by @assem2002 in #2618
- Adding support for is_integer attribute by @anutosh491 in #2686
- Add support for
tuple
andset
in intrinsictype(object)
by @kmr-srbh in #2687 - Add support for is_positive attribute by @anutosh491 in #2689
- ASR -> CPython: Add visitors for
ListConstant
,TupleConstant
&SetConstant
by @kmr-srbh in #2690 - ASR -> CPython: Add
DictConstant
visitor by @kmr-srbh in #2693 - Added support for subs attribute by @anutosh491 in #2695
- Combine
global_init
andglobal_stmts
functions intoglobal_stmts
by @Vipul-Cariappa in #2696 - ASR -> CPython: Add
list
method visitors by @kmr-srbh in #2694 - Fix LLVM code generation error in List comparsion by @hankluo6 in #2697
- Interactive shell implementation by @Vipul-Cariappa in #2617
- avoiding name mangling while interactive is true by @Vipul-Cariappa in #2701
- removing _lfortran_caimag and _lfortran_zaimag functions by @Vipul-Cariappa in #2704
- Fixes complex datatype's symbol duplication bug while using interactive by @Vipul-Cariappa in #2707
- Initialize empty value to dictionaries without type given by @advikkabra in #2705
- Fix logical comparsion for string by @hankluo6 in #2699
- Supporting Logical Binop cases through symbolic pass by @anutosh491 in #2709
- Initial test for Interactive by @Vipul-Cariappa in #2713
- Printing top-level Expressions by @Vipul-Cariappa in #2716
- Support to print
u32
andu64
in REPL by @Vipul-Cariappa in #2717 - Support to print
i8
,u8
,i16
andu16
in Interactive mode by @Vipul-Cariappa in #2719 - REPL
str
support by @Vipul-Cariappa in #2724 - combining duplicated function into a single templated function by @Vipul-Cariappa in #2727
- Fix ASR verify pass error while using Interactive by @Vipul-Cariappa in #2706
- Improved CLI experience for REPL by @Vipul-Cariappa in #2729
- support printing
boolean
in REPL by @Vipul-Cariappa in #2728 - CI: Upgrade SymEngine to 0.12.0 by @anutosh491 in #2714
- Implement symbolic sign function by @anutosh491 in #2715
- Add membership checks in dictionaries and sets by @advikkabra in #2711
- refactor (asr): rename symbol
StructType
toStruct
and ttypeStruct
toStructType
by @kmr-srbh in #2740 StructType
node update by @tanay-man in #2743- Add looping over dictionaries and sets by @advikkabra in #2710
- Added debug capabilities for lists and sets by @advikkabra in #2733
- Add clear method to dictionary and set by @advikkabra in #2747
- Set deepcopy by @advikkabra in #2738
- Add
set.pop
method by @advikkabra in #2749 - Default constructors by @tanay-man in #2750
- fix array symbol duplication in interactive mode by @Vipul-Cariappa in #2734
- CI: pin exact package versions by @certik in #2760
- Jupyter Kernel by @Vipul-Cariappa in #2764
- CI: pin all package versions by @certik in #2765
- CI: Pin the rest of the packages by @certik in #2766
- Gruntz Demo by @anutosh491 in #2688
- Minor docs & env updates on the Jupyter kernel by @anutosh491 in #2767
New Contributors
- @assem2002 made their first contribution in #2618
Full Changelog: v0.21.2...v0.22.0
v0.21.2
What's Changed
- CI: Make script executable by @Shaikh-Ubaid in #2648
Full Changelog: v0.21.1...v0.21.2
v0.21.1
What's Changed
- Add tag triggers to CI configuration by @anutosh491 in #2647
Full Changelog: v0.21.0...v0.21.1
v0.21.0
What's Changed
- Added support for functions to accept symbolic variables by @anutosh491 in #2331
- Implemented
visit_SubroutineCall
for the symbolic pass by @anutosh491 in #2335 - Add support for base in
int()
by @AkshayWarrier in #2338 - Adding support for executing attribute/query calls without assigning to a prior variable by @anutosh491 in #2337
- Implemented Str.Count() method by @SudhanshuJoshi09 in #2342
- CI: Upgrade SymEngine to 0.11.1 by @certik in #2346
- Implementing Symbolic Has Query Method by @anutosh491 in #2336
- Sync Libasr for Runtime Stacktrace by @Thirumalai-Shaktivel in #2350
- Fix Unused warning by @sainivedh in #2352
- Add join method in str by @Agent-Hellboy in #2354
- mentioned
generate_default_tag.sh
in the readme by @abhi-glitchhg in #2358 - Added MacOS warning in readme file by @OculusMode in #2361
- Throw Exception for wrong argtype in join method by @Agent-Hellboy in #2364
- Run integration tests with the Latest Python version in the CI by @Thirumalai-Shaktivel in #2281
- Support floor division as intrinsic function by @Shaikh-Ubaid in #2372
- Added support for comparing symbolic expressions by @anutosh491 in #2374
- Add isspace API in str by @Agent-Hellboy in #2373
- Supporting assignment through
basic_assign
by @anutosh491 in #2378 - Add isalpha, istitle, and title APIs in str by @Agent-Hellboy in #2357
- Adding Support for symbolics in the list data structure by @anutosh491 in #2368
- Implement random.seed() by @OmarMesqq in #2318
- Added Support for Symbolic
func
attribute by @anutosh491 in #2367 - Fixed printing elements from a symbolic list by @anutosh491 in #2383
- Implemented query method for log class by @anutosh491 in #2384
- Implemented symbolic constant E by @anutosh491 in #2387
- Implemented ASR checks for function dependencies by @arteevraina in #2167
- Remove spurious reference results by @certik in #2391
- Added query method for sin class by @anutosh491 in #2395
- Remove Python as prerequisite from README.md by @Shaikh-Ubaid in #2402
- Implementing get argument through design 1 by @anutosh491 in #2399
- Fix: Punctuation mistake in error message by @pnc009 in #2407
- Create temporary for IfExp outside LLVM loop by @czgdp1807 in #2408
- Added support for
visit_Assert
throughbasic_eq
by @anutosh491 in #2404 - refactor: check for dependency only in parent scope by @arteevraina in #2394
- Implemented visit_Return for freeing variables by @anutosh491 in #2412
- Sync
libasr
with LFortran by @czgdp1807 in #2410 - Port --dump-all-passes, --dump-all-passes-fortran from LFortran by @Shaikh-Ubaid in #2414
- Remove redundant code by @Shaikh-Ubaid in #2417
- Minor fixes related to Pass options by @Shaikh-Ubaid in #2418
- Removed redundant return node after processing an ASR through subroutine_from_function pass by @anutosh491 in #2421
- Added support for Out[S] by @anutosh491 in #2419
- Added explicit test for Out[S] by @anutosh491 in #2422
- [C] Simd changes from LFortran by @Thirumalai-Shaktivel in #2425
- SIMD: Changes from LFortran by @Shaikh-Ubaid in #2424
- [ASR Pass] Handle ArraySection and SIMDArray BinOp (LFortran Sync) by @Thirumalai-Shaktivel in #2426
- [Tutorials] Add LPython tutorial 1 by @Smit-create in #2415
- [ASR Pass] Symbolic: Simplify the symbolic handling by @Thirumalai-Shaktivel in #2431
- changes documentation to represent correct path for lpython on windows machine by @ujjwaltwitx in #2436
- Enable llvm tests for symbolics by @Thirumalai-Shaktivel in #2430
- [ASR Pass] Symbolic: Simplify the Functions by @Thirumalai-Shaktivel in #2433
- Adding initial test for gruntz by @anutosh491 in #2437
- Fixed ASR for test_gruntz.py by @anutosh491 in #2438
- Implement
str.split()
by @AkshayWarrier in #2445 - Implemented visit_AsyncFunctionDef in the AST->ASR visitor by @ujjwaltwitx in #2442
- Fixes SEGFAULT in integration_tests/elemental_01.py by @Kishan-Ved in #2452
- Don't load CPtr if the variable under consideration is an argument by @anutosh491 in #2453
- Fixed output through c_sym backend for test_gruntz.py by @anutosh491 in #2454
- UserOverride.cmake: fix native optflag for PowerPC by @barracuda156 in #2459
- stacktrace.cpp: include syslimits.h for PATH_MAX by @barracuda156 in #2461
- parser_stype.h: allow building for ppc by @barracuda156 in #2463
- Fix
random.random()
by @Shaikh-Ubaid in #2464 - Using basic_new_heap for assigning elements of symbolic list by @anutosh491 in #2465
- Fixing Symbolic List assignment by @anutosh491 in #2477
- Fixes empty string bug in str isalpha method by @advikkabra in #2484
- Fix const step in loop by @Shaikh-Ubaid in #2501
- fixes semantic error for int (Issue #1926) by @NishantBansal2003 in #2476
- Fixing symbolic compare for test_gruntz.py by @anutosh491 in #2488
- Fixed issue #1993 to improve readability of semantic error thrown by @tanay-man in #2507
- Fixed grammatical errors (Issue #2493) by @NishantBansal2003 in #2510
- CI: Disable C tests on macOS by @certik in #2517
- Fix a bug in Const[int] by @certik in #2514
- CI: Remove more tests on macOS by @certik in #2519
- CI: Enable LLVM and C backends on macOS by @certik in #2521
- Improving prefix-string parsing (fixes #2339) by @mrdaybird in #2511
- Ignored warnings for inbuilt pow test by @advikkabra in #2523
- Fix isspace edge case by @advikkabra in #2489
- Added case to support log instances in mrv function by @anutosh491 in #2525
- Added semantic error for float declaration. by @faze-geek in #2529
- Fixed visit_if for SymbolicCompare cases by @anutosh491 in #2535
- Docs: Added a step-by-step documentation for installing and building LPython by @kmr-srbh in #2537
- Docs: Update installation instructions by @kmr-srbh in #2538
- refine input file missing msg by @syheliel in #2536
- Improved str.count() algorithm using the Knuth-Morris-Pratt algorithm by @advikkabra in #2530
- refine testcase for random by @syheliel in #2543
- Config: Added
zstd-static
package to the conda environment configuration files by @kmr-srbh in #2540 - Refactor string attributes and add constant string implementations by @advikkabra in #2524
- Remove submodule
lpython
by @Thirumalai-Shaktivel in #2548 - Updated cmake version for windows by @Kishan-Ved in https://github.com/lcompilers/lp...
v0.20.0
What's Changed
- ASR: Support chained CompareOp by @Smit-create in #2213
- ASR: Fix expression as statement by @Shaikh-Ubaid in #2216
- Allow Const argument in
@lpython
by @Smit-create in #2218 - C: Fix ListConcat and ListSection by @Shaikh-Ubaid in #2224
- C: Support ListRepeat by @Shaikh-Ubaid in #2225
- Add a test for lpython emulation mode by @certik in #2226
- Revert "ASR: Support chained CompareOp" by @Smit-create in #2229
- CPP: Fix list repeat issue 2221 by @Shaikh-Ubaid in #2228
- ASR: Fix explicit iter variable by @Shaikh-Ubaid in #2237
- Correction in
list.pop
by @kabra1110 in #2235 - Update README by @certik in #2241
- Set separate chaining by @kabra1110 in #2198
- Add
reserve
forlist
by @kabra1110 in #2238 - WASM: Support visit_StringLen() by @Shaikh-Ubaid in #2243
- Accept
dtype
argument innumpy.array
by @czgdp1807 in #2118 - WASM: Support string comparison by @Shaikh-Ubaid in #2245
- Minor improvements by @Shaikh-Ubaid in #2247
- Shorter names for global_initializer() and global_statements() by @Shaikh-Ubaid in #2246
- Fix typo by @stupidcantor in #2249
- Refactor unique symbol pass by @Smit-create in #2251
- ASR: Fix Import as by @Smit-create in #2252
- README: add a star history graph by @certik in #2257
- Fix issues with nested
dict
s by @kabra1110 in #2253 - Extending Functionality of the Symbolic ASR pass by @anutosh491 in #2255
- Removed Redundant symbolic support through the C backend by @anutosh491 in #2260
- Refactoring the symbolic ASR pass by @anutosh491 in #2263
- Corrections to
dict
write and pop by @kabra1110 in #2261 - LLVM: Fix visit_IfExp() by @Shaikh-Ubaid in #2271
- Sync IntrinsicFunction from LFortran by @Thirumalai-Shaktivel in #2269
- CMAKE: Set linker language by @Smit-create in #2266
- Added support for freeing variables in the ASR symbolic pass by @anutosh491 in #2268
- Rename IntrinsicFunction to IntrinsicScalarFunction by @Thirumalai-Shaktivel in #2273
- Numpy: Support more dtypes by @Shaikh-Ubaid in #2278
- Initial support for lambda functions by @Shaikh-Ubaid in #2279
- Support field in dataclass member initialization by @Shaikh-Ubaid in #2280
- Fix integration tests with Python 3.11 by @Shaikh-Ubaid in #2275
- Fix FMA pass to use IntrinsicFunction by @Smit-create in #2282
- Syntactic sugar for Array annotation by @Shaikh-Ubaid in #2284
- Remove dataclass emulation by @Shaikh-Ubaid in #2285
- Instead of replacing the intrinsic function, use the compile-time value by @Thirumalai-Shaktivel in #2287
- C: Fixes from LFortran by @Shaikh-Ubaid in #2289
- CMake: support LLVM as a single shared library by @jschueller in #2291
- Refactor: Move test_modules folder to integration_tests by @Shaikh-Ubaid in #2295
- WASM: Initial support for const type by @Shaikh-Ubaid in #2297
- CI: Test integration_tests with Python 3.9, 3.10 and 3.11 by @Shaikh-Ubaid in #2298
- TEST: Enable integration_tests/expr_16.py for LLVM by @Shaikh-Ubaid in #2300
- ASR: Merge create_CPtrToPointerFromArgs() and create_CPtrToPointer() by @Shaikh-Ubaid in #2299
- PASS: Update FlipSign pass to use Intrinsic Function by @Smit-create in #2301
- Refactor: ASR: Handle c_p_pointer() in visit_Call() by @Shaikh-Ubaid in #2302
- Refactor: Convert long macro to function by @Shaikh-Ubaid in #2304
- Merge call in visit_Expr() with visit_Call() by @Shaikh-Ubaid in #2306
- Support/Enforce dtype for empty() by @Shaikh-Ubaid in #2294
- Add error tests for mismatch in empty dtype by @Shaikh-Ubaid in #2307
- Improve dims error message format by @Shaikh-Ubaid in #2308
- CMake: Fix node version compare by @Shaikh-Ubaid in #2309
- Rename tensor to array by @certik in #2311
- Update FMA/flip_sign pass by @Smit-create in #2313
- Changes from LFortran by @Shaikh-Ubaid in #2315
- fix: 🐛 create default version value for forked repos by @OmarMesqq in #2303
- Further Refactoring for the ASR Symbolic Pass by @anutosh491 in #2320
- Sync
libasr
from LFortran by @czgdp1807 in #2319 - [numpy] add trunc by @khushi-411 in #2316
- Rename
m_global_scope
and fix typo by @Shaikh-Ubaid in #2322 - Handle functions returning arrays/structs in
subroutine_from_function
pass by @czgdp1807 in #2325 - [small] tidy up warnings by @khushi-411 in #2323
- Changes from lfortran by @Shaikh-Ubaid in #2326
- Setup online lpython by @Shaikh-Ubaid in #2328
- C: Fix passing array elements as reference by @Shaikh-Ubaid in #2329
- [numpy] add fix by @khushi-411 in #2330
- Dftatom: Changes from lfortran LibASR by @Shaikh-Ubaid in #2334
New Contributors
- @stupidcantor made their first contribution in #2249
- @jschueller made their first contribution in #2291
- @OmarMesqq made their first contribution in #2303
- @khushi-411 made their first contribution in #2316
Full Changelog: v0.19.0...v0.20.0
v0.19.0
What's Changed
- Unsigned integers no wrap II by @Shaikh-Ubaid in #2189
- Added test based on basic_new_heap function by @anutosh491 in #2190
- Support ccall() for symengine and other libs by @Shaikh-Ubaid in #2196
- CI: make bash fail on errors by @Shaikh-Ubaid in #2194
- Handle reshape intrinsic initialization with FixedSizeArray by @Thirumalai-Shaktivel in #2197
- Added the
llvm_sym
backend for testing symbolic operations through the llvm backend by @anutosh491 in #2192 - Added tests based on basic_new_stack function by @anutosh491 in #2199
- C: Fix complex types by @Smit-create in #2193
- Synchronizing generics by @ansharlubis in #2181
- Use optimisation flags for C compiler in lpython decorator by @czgdp1807 in #2201
- Support different integers in chr() by @Shaikh-Ubaid in #2203
- Support function with no return type as callback by @Shaikh-Ubaid in #2207
- Add Callable type by @Smit-create in #2209
- Add
dict.keys
by @kabra1110 in #2023 - LLVM: Initial CPython Interop example by @Shaikh-Ubaid in #2211
- CI: Provide release flags, exclude -march=native by @Shaikh-Ubaid in #2212
- Add
get_builder0
macro to declare auxiliary variables at entry point of functions by @czgdp1807 in #2205
Full Changelog: v0.18.4...v0.19.0
v0.18.4
v0.18.3
What's Changed
- Fix inner struct passed as an argument to a function by @Shaikh-Ubaid in #2180
- C: Support callbacks by @Smit-create in #2175
- Fix unsigned to signed int cast by @Smit-create in #2178
- C_CPP: Visit the expression in construct_call_args() by @Shaikh-Ubaid in #2185
- Fix a bug in cptr_to_u64 in emulation by @ronnuriel in #2186
Full Changelog: v0.18.2...v0.18.3
v0.18.2
What's Changed
- Sync
libasr
from LFortran by @czgdp1807 in #2148 - CI: Check for warnings by @Shaikh-Ubaid in #2145
- Support unsigned bitshift operators by @Shaikh-Ubaid in #2152
- Avoid verifying
IntrinsicFunction
ifcheck_external
isFalse
by @czgdp1807 in #2155 - Add
cumulative
flag for pass by @Smit-create in #2156 - Support array comparison by @Shaikh-Ubaid in #2157
- Minor improvements by @Shaikh-Ubaid in #2158
- fix: added initial implementation for supporting internal function definitions by @arteevraina in #2119
- Set data structure by @kabra1110 in #2122
- ASR pass for unique symbols by @Smit-create in #2149
- Refactor: Several Improvements by @Shaikh-Ubaid in #2160
- Fix scoping issue by @Shaikh-Ubaid in #2161
- LLVM: Support global unsigned integer variable by @Shaikh-Ubaid in #2164
- LLVM: Support Unsigned Int in visit_Variable by @Smit-create in #2171
Full Changelog: v0.18.1...v0.18.2
v0.18.1
What's Changed
- Add
list
comparison by @kabra1110 in #2025 - Add a test for a struct from a C pointer by @certik in #2126
- Add an error message for non-C-interoperable structs by @certik in #2133
- C: Fix struct deepcopy by @Smit-create in #2137
- Implement lcompilers_unique_ID global variable by @certik in #2138
- Only emit the error for Structs for now by @certik in #2140
- Remove global variables by @certik in #2143
- Give a C interoperability error for module structs also by @certik in #2144
Full Changelog: v0.18.0...v0.18.1