Skip to content

Commit

Permalink
Merge branch '__rultor'
Browse files Browse the repository at this point in the history
  • Loading branch information
rultor committed Aug 14, 2024
2 parents 9941274 + 30c34b4 commit 73e8b15
Show file tree
Hide file tree
Showing 49 changed files with 1,855 additions and 1,175 deletions.
53 changes: 18 additions & 35 deletions .codacy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,38 +25,21 @@
# package name contains capital letter and such names are conventional.
---
exclude_paths:
- "eo-runtime/src/main/java/EOorg/EOeolang/EOio/EOconsole$EOread$EOread_bytes.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOio/EOconsole$EOwrite$EOwritten_bytes.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOio/EOconsoleTest.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOsys/EOuname$EOφ.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOsys/package-info.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOnumberTest.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/package-info.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/DispatchedNativeMethod.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/DispatchedUnixSyscall.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOsys/EOposixTest.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOsys/EOosTest.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/DispatchedNativeDefault.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOsys/DispatchedUnixSyscallTest.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/EOposix.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/CStdLib.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOdir$EOmade$EOmkdir.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOdir$EOtmpfile$EOtouch.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOdir$EOwalk.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOdeleted$EOdelete.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOexists.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOis_directory.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOmoved$EOmove.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/package-info.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOfs/package-info.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOopen$EOfile_stream$EOwrite$EOwritten_bytes.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOopen$EOfile_stream$EOread$EOread_bytes.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOopen$EOprocess_file.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOresolved$EOresolve.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOsize.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/EOfile$EOtouched$EOtouch.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOfs/Files.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/EOgetenv.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/EOos$EOname.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOfs/FilesTest.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOfs/EOfileTest.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Posix/CStdLib.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Posix/GetpidSyscall.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Posix/package-info.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Posix/ReadSyscall.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Posix/WriteSyscall.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/BaseTSD.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/Kernel32.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/package-info.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/WinBase.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/Wincon.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/WinDef.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/WinNT.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Win32/WriteFileFuncCall.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/EOposix$EOφ.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/EOwin32$EOφ.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/Syscall.java"
- "eo-runtime/src/main/java/EOorg/EOeolang/EOsys/TupleToArray.java"
- "eo-runtime/src/test/java/EOorg/EOeolang/EOio/InputOutputTest.java"
19 changes: 12 additions & 7 deletions eo-runtime/src/main/eo/org/eolang/io/console.eo
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+alias org.eolang.sys.os
+alias org.eolang.sys.posix
+alias org.eolang.sys.win32
+architect [email protected]
+home https://github.com/objectionary/eo
+package org.eolang.io
Expand Down Expand Up @@ -114,11 +117,13 @@
self. > @
seq
*
^.^.written-bytes buffer
code.
if.
os.is-windows
win32
"WriteFile"
* win32.std-output-handle buffer buffer.size
posix
"write"
* posix.stdout-fileno buffer buffer.size
^.^.output-block

# Bytes written to operation system console.
#
# Attention! The object is for internal usage only, please don't use the object
# programmatically outside of `console` object.
[buffer] > written-bytes /true
7 changes: 6 additions & 1 deletion eo-runtime/src/main/eo/org/eolang/sys/os.eo
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,12 @@
# Represents the name of the operating system.
[] > os
name > @
((regex "/^Windows.+$/").matches name).as-bool > is-windows

[] > is-windows
^.name > os-name!
and. > @
os-name.size.gt 6
(os-name.slice 0 7).eq "Windows"
((regex "/linux/i").matches name).as-bool > is-linux
((regex "/mac/i").matches name).as-bool > is-macos

Expand Down
32 changes: 31 additions & 1 deletion eo-runtime/src/main/eo/org/eolang/sys/posix.eo
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,34 @@

# Makes a Unix syscall by name with POSIX interface.
# See https://filippo.io/linux-syscall-table/
[name args] > posix /int
#
# Supported syscalls:
# 1. getpid - get process identification
# - Arguments:
# - Returns:
# * code - process identification number (number)
# * output - []
# 2. write - write bytes to file descriptor
# - Arguments:
# * descriptor (number)
# * buffer to write (bytes)
# * buffer size to write (number)
# - Returns:
# * code - written bytes count (number)
# * output - []
# 3. read - read bytes from file descriptor
# - Arguments:
# * descriptor (number)
# * buffer size to read (number)
# - Returns:
# * code - read bytes count (number)
# * output - read bytes (bytes)
[name args] > posix
0 > stdin-fileno
1 > stdout-fileno

[] > @ /return

[code output] > return
$ > called
output > @
Original file line number Diff line number Diff line change
Expand Up @@ -20,52 +20,36 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

+alias org.eolang.sys.posix
+alias org.eolang.tuple
+alias org.eolang.sys.os
+architect [email protected]
+home https://github.com/objectionary/eo
+tests
+package org.eolang.sys
+rt jvm org.eolang:eo-runtime:0.0.0
+rt node eo2js-runtime:0.0.0
+version 0.0.0

# Test.
[] > invokes-getpid-correctly
if. > @
os.is-windows
true
gt.
posix
"getpid"
tuple.empty
0
# Makes a kernel32.dll function call by name.
#
# You can access the documentation for kernel32.dll functions by visiting the
# Windows API Index (https://learn.microsoft.com/en-us/windows/win32/api/index).
# Use the search functionality to look up specific functions, such as CreateFile, ReadFile,
# WriteFile, etc.
#
# Supported functions:
# 1. WriteFile
# - Documentation: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile
# - Arguments:
# * descriptor (number)
# * buffer to write (bytes)
# * buffer size to write (number)
# - Returns:
# * code - written bytes count (number)
# * output - []
[name args] > win32
-10 > std-input-handle
-11 > std-output-handle

# Test.
[] > invokes-write-correctly
"Hello, syscall!\n" > msg
if. > @
os.is-windows
true
eq.
posix
"write"
*
1
msg
msg.length
msg.length
[] > @ /return

# Test.
[] > fails-read-from-stdin
00-00 > buf
if. > @
os.is-windows
true
eq.
posix
"read"
*
1
buf
buf.size
-1
[code output] > return
$ > called
output > @

This file was deleted.

Loading

0 comments on commit 73e8b15

Please sign in to comment.