You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 1, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: .github/qna.md
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,15 +9,23 @@ Since v0.2.0, *libpgfe* has been "self-sufficient" and does not depend on any th
9
9
## Q2: Interested in supporting Big Endian?
10
10
11
11
I will think about it eventually, but not now! Because byte order compatibility will dramatically increase complexity of the code,
12
-
and I currently don't have enough time or effort to tackle it. Also, I do not have Big Endian machines or virtual machines, so the additional code would be left untested, which is what I don't want to happen.
12
+
and I currently don't have enough time or effort to tackle it. Also, I do not have Big Endian machines or virtual machines, so the additional code would be left untested, which is not what I expect.
13
13
14
-
## Q3: Why not MSVC?
14
+
## Q3: Why not [Assembly Language](https://en.wikipedia.org/wiki/Assembly_language)?
15
+
16
+
1. I'm not familiar with Assembly.
17
+
18
+
2. Assembly is machine-dependent.
19
+
20
+
3. C is fast enough for *libpgfe*. It's no need to use Assembly to do those optimizations.
21
+
22
+
## Q4: Why not MSVC?
15
23
16
24
> ***PS:** MSVC = Microsoft Visual C++*
17
25
18
-
Firstly, this library prioritizes POSIX compatibility, instead of Windows compatibility.
26
+
1. This library prioritizes POSIX compatibility, instead of Windows compatibility.
19
27
20
-
Secondly,*libpgfe*need some necessary features that are not included in *MSVC*. For instance, like the C code below:
28
+
2.*libpgfe*needs some necessary features that are not included in *MSVC*. For instance, like the C code below. *MSVC* will refuse to compile that code, because a variable is used as the array's size, while *Clang* and *GCC* are OK with it.
21
29
22
30
```c
23
31
intmain() {
@@ -27,5 +35,3 @@ int main() {
27
35
return 0;
28
36
}
29
37
```
30
-
31
-
*MSVC* will refuse to compile that code, because of a variable is used as the array's size, while *Clang* and *GCC* are OK with it.
The implementation philosophy of *libpgfe* assumes that the systems running this library are **Little Endian**, since it is widely used by architectures and OS. Therefore, this library should not run properly on Big Endian systems.
0 commit comments