Ubaid Shaikh (ba45f9d2) at 03 May 00:31
Ubaid Shaikh (ba45f9d2) at 02 May 20:49
Add Fortran Discourse and Twitter Links
... and 115 more commits
Ubaid Shaikh (ec6f5958) at 02 May 20:13
Ubaid Shaikh (0f59d83e) at 31 Oct 16:18
Ubaid Shaikh (025b977c) at 31 Oct 16:09
Remove extra heading in dftatom blog
Create a separate section for Progress towards beta
On this particular benchmark, platform and compiler versions, LFortran is about 2.1x faster to compile. A significant amount of LFortran's total compilation time is spent in LLVM (which in Debug mode just emits a binary with no optimizations), so our plan is to experiment with a custom faster backend for Debug builds to speedup compilation even further.Is the sentence "You can read more information and link to an article explaining how it works in the README, see the project link above" perfect?
@certik I was thinking about this list. I'd like to suggest listing me after Gagandeep because I deeply respect and look up to him. He has been a source of inspiration and guidance. I admire both Gagandeep and you (and also other members of the team). What do you think about this change? Thanks!
mentioned the number of integration and reference tests we currently have with each backend. I haven't removed the TODO so that you can verify it once.
The number of tests for wasm and julia look correct as per the current lfortran main branch. The number of wat reference tests is 27 (obtained by running ./run_tests.py -b wat and then searching for substring START TEST:
For llvm, it seems we have 416 integration_tests (I obtained this count by running ./integration_tests/run_tests.py -b llvm) and 143 reference tests (count obtained by running ./run_tests.py -b llvm and then searching for substring START TEST:)
For wasm_x64, we currently have 23 integration_tests at lpython.
For cpp, from CMakeLists.txt, it seems we have 52 integration_tests. Also, from ./run_tests.py -b cpp, it seems we have 31 reference tests.
PS: The above tests information only includes the tests present in integration_tests and tests.toml. It does not include/count the tests present in src/lfortran/tests (I am unsure if we should include them).
I created an issue about it at #773
Code:
program test_c_interface
integer , parameter :: i_max = 600
integer , parameter :: j_max = 450
integer :: image_t(j_max, i_max)
interface
subroutine show_img(n, m, A) bind(c)
integer, intent(in) :: n, m
integer, intent(in) :: A(3,n,m)
end subroutine
end interface
call show_img(j_max, i_max, image_t)
end program mandelbrot
output:
$ lfortran --show-wat b.f90
(module
(type (;0;) (func (param i32) (result)))
(type (;1;) (func (param i64) (result)))
(type (;2;) (func (param f32) (result)))
(type (;3;) (func (param f64) (result)))
(type (;4;) (func (param i32 i32) (result)))
(type (;5;) (func (param) (result)))
(type (;6;) (func (param i32) (result)))
(type (;7;) (func (param i32 i32 i32) (result)))
(type (;8;) (func (param) (result)))
(import "js" "print_i32" (func (;0;) (type 0)))
(import "js" "print_i64" (func (;1;) (type 1)))
(import "js" "print_f32" (func (;2;) (type 2)))
(import "js" "print_f64" (func (;3;) (type 3)))
(import "js" "print_str" (func (;4;) (type 4)))
(import "js" "flush_buf" (func (;5;) (type 5)))
(import "js" "set_exit_code" (func (;6;) (type 6)))
(import "js" "memory" (memory (;0;) 100 100))
(import "js" "show_img" (func (;8;) (type 7)))
(func $8 (type 8) (param) (result)
(local i32 i32 i32)
i32.const 600
local.set 0
i32.const 0
local.set 1
i32.const 450
local.set 2
local.get 2
local.get 0
local.get 1
call 7
i32.const 0
call 6
return
)
(export "_lcompilers_main" (func $8))
)
Bug:
We should have (import "js" "show_img" (func (;7;) (type 7)) with 7 instead of 8,