CM3 has nothing to play! #1136
Replies: 28 comments 55 replies
-
There is /~https://github.com/demoitem/m3swig and /~https://github.com/demoitem/swigm3. Don't know which to use. |
Beta Was this translation helpful? Give feedback.
-
CM3 targets the same market as Go but lacked the polished of Go. Documentation for CM3 is bad, the language manual is organized a way that more difficult for you to navigate and find what you needed. It also lacked many things, it's not a complete reference you could rely on to learn the language. You have to buy books, various Modula-3 books. These books most of the time is duplicated of each others but they do provide information not available on the language manual. |
Beta Was this translation helpful? Give feedback.
-
Let me tell you REAL data type is float on C and LONG REAL is double on C. The problem is, the built-in library to deal with Math on CM3 are all about REAL, they required REAL input and returned REAL output. To be able to process LONG REAL, you have to delved into the C library! |
Beta Was this translation helpful? Give feedback.
-
It's no where in the documentation for you to know. Only if you have read many submitted issues and discussions like me you could know that, if you use MinGW on Windows, CM3 is unable to produce dynamic library (aka DLL), DLL is only possible with MSVC compiler! |
Beta Was this translation helpful? Give feedback.
-
In cm3/m3-libs/m3core/src/float/IEEE/m, you will find:
ExtendedFloat.m3
Extended.i3
LongFloat.m3
LongReal.i3
m3makefile
RealFloat.m3
Real.i3
The other sizes of floats right beside the Real libraries.
If IEEE is not your float representation, there are several others in
directories right beside IEEE.
…On 1/7/23 02:10, tn1997tn wrote:
Let me tell you REAL data type is float on C and LONG REAL is double on C. The problem is, the built-in library to deal with Math on CM3 are all about REAL, they required REAL input and returned REAL output. To be able to process LONG REAL, you have to delved into the C library!
—
Reply to this email directly, view it on GitHub <#1136 (comment)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNEGCTTTQR7NXUAVOADWREQGRANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On 1/7/23 01:54, tn1997tn wrote:
CM3 targets the same market as Go but lacked the polished of Go. Documentation for CM3 is bad, the language manual is organized a way that more difficult for you to navigate and find what you needed. It also lacked many things, it's not a complete reference you could rely on to learn the language.
I believe it is very complete, perhaps unusually so.
Does the compactness of the language make is seem
incomplete? (Others have thought so, incorrectly.)
What can you cite that is lacking in the language definition?
… You have to buy books, various Modula-3 books. These books most of the time is duplicated of each others but they do provide information not available on the language manual.
—
Reply to this email directly, view it on GitHub <#1136 (comment)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNGZCGFPRUQIUHYZNVLWREOMJANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On 1/7/23 02:17, tn1997tn wrote:
It's no where in the documentation for you to know. Only if you have read many submitted issues and discussions like me you could know that, if you use MinGW on Windows, CM3 is unable to produce dynamic library (aka DLL), DLL is only possible with MSVC compiler!
I don't know about Windows DLLs, but on Linux and similar
systems, libraries will be compiled as .so (dynamic) by
default. Static are also possible, but off hand, I don't
remember how you ask.
Jay?
… —
Reply to this email directly, view it on GitHub <#1136 (comment)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNHH3D3TPM3VK54ALADWRERCDANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
( I can not write a "reply" on smartphone... M3swig is more modern version of "SWIG for Modula-3" Variant with some technical challenges can be found by this URL |
Beta Was this translation helpful? Give feedback.
-
( It is future reply "number 2"...) } if you use MinGW on Windows, CM3 is unable to produce dynamic library (aka DLL), DLL is only possible with MSVC compiler! It looks like that I personally write about this. ToDo |
Beta Was this translation helpful? Give feedback.
-
( There is another surprise: I can't edit own messages on smartphone...) Cm3 AMD64_MINGW was born at 2021 year. In case when AMD64_MINGW is not perfect then using AMD64_NT is "good choice". I special write some month ago about one disadvantage of current state of "cm3 AMD64_MINGW" because today using of AMD64_NT continue be "a best choice" on OS Windows |
Beta Was this translation helpful? Give feedback.
-
= = The way they make DLL is also very foolish, see: /~https://github.com/modula3/cm3/tree/master/examples/win32-dll/src You will need to write C code. Other languages could make DLL without a single line of C code! = = IMHO, this source code example is dated 2000 - 2009 years? It looks like, it correlated with very early state of "cm3 I386_NT". Today we have 10 .. 90 .dll ( or .so on Unix / Linux) inside cm3-all- * distributive(s). |
Beta Was this translation helpful? Give feedback.
-
= = IMHO, inside cm3 ecosystem all good with "64 bit reals" a-ka double. One of most biggest library is "algebra" .dll / .so |
Beta Was this translation helpful? Give feedback.
-
On Sun, 8 Jan 2023, tn1997tn wrote:
REVEAL keyword. It's not documented. People has to learn why there is the REVEAL keyword in books.
|
Beta Was this translation helpful? Give feedback.
-
Another thing the OP forgot to mention, CM3 has no GUI library. Trestle is a joke! |
Beta Was this translation helpful? Give feedback.
-
On Sun, 8 Jan 2023, tn1997tn wrote:
Could you find where in the language definition talk about BRANDED OBJECT?
|
Beta Was this translation helpful? Give feedback.
-
On Sun, 8 Jan 2023, tn1997tn wrote:
Could you find where in the language definition talk about BRANDED
OBJECT?
|
Beta Was this translation helpful? Give feedback.
-
No information if not these questions I can't know! |
Beta Was this translation helpful? Give feedback.
-
No information on the language definition. If you know CM3 from github and don't know the site of it on elegosoft's website, you can't possibly have any ideas about what is quake without this question: #1070 |
Beta Was this translation helpful? Give feedback.
-
@tn1997tn Please stop spamming my inbox. Each reply of you is one email Github sent me. |
Beta Was this translation helpful? Give feedback.
-
@thielema @RodneyBates @VictorMiasnikov My problems with CM3 is there is no interfaces to external libraries available. Very useful libraries like libcurl, libxm2, sdl2, glfw, gtk,... Even interface to the Windows API is very lacking and outdated. My opinion is if you don't have the resources to be good at all fronts (not everyone is backed by big corporations like Oracle and Microsoft isn't it?), then try to be good at only one front and try the best. Please have a look at the BCX: https://www.bcxbasiccoders.com/ It's a BASIC to C translator for Windows. The author used the word translator but not compiler, he is humble. Because I think CM3 is the same, translating to C and uses C compiler to compile. So CM3 is a translator too, not a compiler. Please have a look at the documentation of BCX: https://bcxbasiccoders.com/webhelp/BCXHelp.htm You could see it's a very complete product that cover most if not all the features you should expect from a commercial product. Supports for Windows programming is excellent with full COM/ActiveX support. The BASIC language is not as good as Modula-3, but BCX provided you the tools to get the job done. What CM3 could give me? An empty language with no tools? I'm not writing an operating system from scratch. I'm not developing web services like Google with Go either. I don't need a good or compact language. Many people is like me. |
Beta Was this translation helpful? Give feedback.
-
On 1/8/23 11:16, tn1997tn wrote:
REVEAL keyword. It's not documented. People has to learn why there is the REVEAL keyword in books.
In Modula-3: Language definition,
2.4.7 Primary description
2.5.4 An example
2.5.5 Another
2.8.1 The keyword
2.8.7 Syntax summary
…
—
Reply to this email directly, view it on GitHub <#1136 (reply in thread)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNCUXS4EPDSKSLA65UDWRLZABANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
@thielema I want more details about EXTERNAL than this: http://modula3.github.io/cm3/reference/complete/html/2_8_5Pragmas.html Thank you. |
Beta Was this translation helpful? Give feedback.
-
On 1/8/23 11:22, thielema wrote:
On Sun, 8 Jan 2023, tn1997tn wrote:
> REVEAL keyword. It's not documented. People has to learn why there is the REVEAL keyword in books
The language definition is available in multiple forms.
.
The complete reference in single files is in cm3/master/docs/reference/complete:
m3-defn-complete.html
m3-defn-complete.pdf
m3-defn-complete.tex Source code.
Between my web browser and text editor, I can search all 3 of these.
The individual chapters in html form are also in
cm3/master/docs/reference. Even the chapter name
revelations.html is at least a clue.
But the .ps appears to need regeneration.
… http://modula3.github.io/cm3/reference/revelations.html
—
Reply to this email directly, view it on GitHub <#1136 (comment)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNAB4MPBMSYIKFURQRTWRLZWBANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On 1/8/23 11:35, tn1997tn wrote:
Only to show your language definition is organized in a way that more difficult for people to find things. When I expect to find it on one section it's indeed on another section that has nothing to do with it. e.g: PRAGMA, fragma is a statement, it should be on Statements, why it's on Syntax?
2.8.5, section title "Pragmas". In Modula-3, these are not denoted
by "PRAGMA", but by <* ... *>, as the first sentence says. Nor are
they statements, and nor are they part of the language, as it also says.
But even in the language definition, it "recommends" pragma EXTERNAL.
For implementation matters outside the language, see the html
files in cm3/masters/docs/cm3. File pragmas.html describes
pragmas implemented by CM3. There's also a quake.html.
In doc/help/cm3/m3build is more implementation info,
including in progs.html, in the m3makefile:
*"build_standalone() *ensures that the program being built does not depend on dynamic linking and shared libraries. To have an effect, this procedure must be called before program or Program is called."
which you asked about.
… —
Reply to this email directly, view it on GitHub <#1136 (reply in thread)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNFD54HWE6QZ35X5QHLWRL3HHANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On 1/13/23 12:05, nsgnkhibdk2cls0f wrote:
One example: what does |actual not assignable to VALUE formal| mean?
"Actual parameter" and "formal parameter", often abbreviated
"actual" and "formal", are very common terms going back at
least as far as ALGOL 60. An actual parameter is the expression
between the parentheses in a call. A formal is the mode, name,
and type between the parentheses in the declared signature or
prototype of the procedure or function.
C often calls actual parameters "arguments" and formal parameters
just "parameters".
An example that would produce this message:
(* Declaration: *)
PROCEDURE P(A: INTEGER) = ...
BEGIN
(* Call: *)
P ( 123.17 * 2.0 )
END
The type of 123.17*2.0 is REAL, not assignable to INTEGER.
The default mode of a formal, if not explicitly specified is VALUE.
… This error message is as obscure as possible. You can only know what's going on after reading the interface definition many times! The GCC compiler is much better than this, it will tell you immediately you passed the parameter with the wrong type!
It took many issues only for Sqrt and this obscure error message: #1076 <#1076> #1077 <#1077> #1079 <#1079>
—
Reply to this email directly, view it on GitHub <#1136 (reply in thread)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/ABSVZNGELEZY4MUQN6MHGEDWSGKPLANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
cm3 is an open-source project. Free of charge, and free of any developer’s obligations. People developing it have their own reasons and I am happy to get result of their work. Thank you all guys!
You can use it, you can collaborate on it. Or you just can ignore it, as I am ignoring FreeBasic for example.
You need something? Develop it, or pay somebody to develop it, or just continue searching and find it already developed.
Whatever.
… On 6. 1. 2023., at 22:09, nsgnkhibdk2cls0f ***@***.***> wrote:
We are not developing something from scratch, like an operating system so we need to use external libraries. Good language is only one aspect, we need good libraries too. CM3 has no bindings to useful external C libraries. libxml2? Not available! libcurl? Not available! gtk? Not available! sdl2? Not available! glfw? Also not available! Windows API? An outdated version created before I was even born and not updated since then!
Ever wonder why no one used your language other than you? Now you have the answer!
Look at the number of C libraries of FreeBasic and be shamed!
/~https://github.com/freebasic/fbc/tree/master/inc </~https://github.com/freebasic/fbc/tree/master/inc>
Have a look at this, too: /~https://github.com/edubart/nelua-decl </~https://github.com/edubart/nelua-decl>
Even toy languages have users, because they included the needed batteries! But you are not!
—
Reply to this email directly, view it on GitHub <#1136>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/AA5ZBWA2375QE4BBZ2Y7HMDWRCC2PANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
Try both. And share experience.
Open wource at work.
… On 7. 1. 2023., at 08:49, tn1997tn ***@***.***> wrote:
There is /~https://github.com/demoitem/m3swig </~https://github.com/demoitem/m3swig> and /~https://github.com/demoitem/swigm3 </~https://github.com/demoitem/swigm3>. Don't know which to use.
—
Reply to this email directly, view it on GitHub <#1136 (comment)>, or unsubscribe </~https://github.com/notifications/unsubscribe-auth/AA5ZBWEVNEGEKS2ACMS62HDWRENXNANCNFSM6AAAAAATTOZDNI>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
I found CM3 has many interesting packages as part of the distribution but there are no documents about them, what they are supposed to be used for and how to use them. The only we have is this index: http://modula3.github.io/cm3/help/gen_html/INDEX.html. You could find the link to that index at the end of the CM3 Interface Index page: http://modula3.github.io/cm3/help/interfaces.html |
Beta Was this translation helpful? Give feedback.
-
We are not developing something from scratch, like an operating system so we need to use external libraries. Good language is only one aspect, we need good libraries too. CM3 has no bindings to useful external C libraries. libxml2? Not available! libcurl? Not available! gtk? Not available! sdl2? Not available! glfw? Also not available! Windows API? An outdated version created before I was even born and not updated since then!
Ever wonder why no one used your language other than you? Now you have the answer!
Look at the number of C libraries of FreeBasic and be shamed!
/~https://github.com/freebasic/fbc/tree/master/inc
Have a look at this, too: /~https://github.com/edubart/nelua-decl
Even toy languages have users, because they included the needed batteries! But you are not!
Beta Was this translation helpful? Give feedback.
All reactions