| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
@Shaikh-Ubaid , there is a small issue occurring here. Because we are directing calls to FileRead, input() itself is not having a return type and value. So, an expression like n: i32 = i32(int(input("Enter a number: ")))) leads to an exception. A simple program: name: str = input("Your name: ")
print("Hello,", name)gives the following output (base) saurabh-kumar@Awadh:~/Projects/System/lpython$ ./src/bin/lpython ./examples/example.py
Your name: Segmentation fault (core dumped)I request you to see if the implementation is correct. Instead of a separate function create_Input() with a call inside if (call_name == "input"), I am using the complete piece of code here. |
Sorry, something went wrong.
|
@kmr-srbh the following works: % cat examples/expr2.py
name: str = " "
name = input("Your name: ")
print("Hello,", name)
% python examples/expr2.py
Your name: John
Hello, John
% lpython examples/expr2.py
Your name: John
Hello,JohnWe just needed name to have initial length/space so that we could write to it the string read from stdin. |
Sorry, something went wrong.
|
We need to see what other better alternative approaches can be for the workaround (for name length) in #2655 (comment). |
Sorry, something went wrong.
You are right @Shaikh-Ubaid. How do we go about working a fix for the return type issue? This is a real problem. I am new to this area of the code-base and learning. |
Sorry, something went wrong.
|
Let's modify the semantics of the FileRead ASR node: if the "value" expr argument is an allocatable string, then the backend (LLVM/WASM, etc.) implementation of the FileRead node will allocate the string to hold the whole input, and assign it to it. |
Sorry, something went wrong.
@certik Do you mean handling String_t here? lpython/src/libasr/codegen/asr_to_llvm.cpp Lines 7493 to 7510 in fce0b35 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
No description provided.