Monday, December 31, 2018

Digest for comp.lang.c++@googlegroups.com - 5 updates in 2 topics

Richard Damon <Richard@Damon-Family.org>: Dec 31 04:43PM -0500

On 12/31/18 4:34 PM, Keith Thompson wrote:
 
> Oh, there's a CAlive newsgroup?
 
> Wouldn't that be a better place to discuss CAlive than comp.lang.c *and*
> comp.lang.c++?
 
It isn't a 'real' NNTP newsgroup, just one of the pseudo newsgroups on,
if I remember right, googlegroups (so accessible on web through it as if
it was a newsgroup, but doesn't leave google).
Richard Damon <Richard@Damon-Family.org>: Dec 31 04:57PM -0500

On 12/31/18 4:05 PM, Bart wrote:
 
> Try and take out the member select part of the 10 or 12 examples in your
> syntax; you can't just remove the ".m", because most of them don't use it.
 
> C syntax has always been a mess that way. Your additions make it worse.
 
your syntax isn't that different than C in my view.
 
In C *p, in your p^
Both get you 'the object pointed to by p), to which you can add more
indirection of member selection.
 
C adds a 'shortcut' of p->m as the syntax sugar for (*p).m
 
Perhaps having the indirect operation being postfix instead of prefix
cleans up some issue with syntax, getting rid of some needs of parenthesis.
 
For C, with the need of the parenthesis, the shortcut seems useful, and
having 2 notations doesn't seem that bad.
 
Rick's multitude of options seems much less useful, and I suspect he is
going to run into parsing issues with his grammar.
 
...
 
>> equivalent value that can be used.
 
> Say again? I expected you to say that _x means *x, some syntactic sugar.
> You mean that _x means '*(unsigned char)x'?
 
I think Rick means that _x is like (uintptr_t)x
Bart <bc@freeuk.com>: Dec 31 10:33PM

On 31/12/2018 21:57, Richard Damon wrote:
 
> C adds a 'shortcut' of p->m as the syntax sugar for (*p).m
 
> Perhaps having the indirect operation being postfix instead of prefix
> cleans up some issue with syntax, getting rid of some needs of parenthesis.
 
That is the crucial part. It means pointers to arrays in C would have
been more popular if accesses could be written A^[i] ('*' wouldn't work)
instead of (*A)[i].
 
Pointers to struct members could be written consistently as P^.m instead
of either (*P).m or P->m, while adding or removing an indirection is
just adding or removing ^, instead of having to add or remove (*) or to
transform between -> and (*) or between -> and . or between (*) and .
 
And calls via function pointers could be consistently written F^(x)
instead of (*F)(x) or via the confusing F(x).
 
> having 2 notations doesn't seem that bad.
 
> Rick's multitude of options seems much less useful, and I suspect he is
> going to run into parsing issues with his grammar.
 
Almost certainly.
 
--
bart
Keith Thompson <kst-u@mib.org>: Dec 31 03:20PM -0800


> It isn't a 'real' NNTP newsgroup, just one of the pseudo newsgroups on,
> if I remember right, googlegroups (so accessible on web through it as if
> it was a newsgroup, but doesn't leave google).
 
My point stands.
 
--
Keith Thompson (The_Other_Keith) kst@mib.org <http://www.ghoti.net/~kst>
Will write code for food.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
rbowman <bowman@montana.com>: Dec 31 12:06PM -0700

On 12/30/2018 09:43 PM, Ralf Goertz wrote:
> Really? Fraktur was not taught at my time in German schools, I had to
> learn it on my own and I only did it because we had some old books I
> wanted to read.
 
The US schools hadn't quite caught up in the early '60s. The copies of
'Emil und die Detektive' we had might have been pre-war. Our teachers
were in their '50s so they were definitely pre-war.
 
In college the focus was on technical literature and that was all in
Roman type. The assumption for engineering students was a lot of
literature would be published in German. The reality, for better or
worse, was German engineers and scientists learned English.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

Digest for comp.lang.c++@googlegroups.com - 25 updates in 4 topics

"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Dec 31 09:04AM -0500

On 12/28/2018 5:08 PM, Richard Damon wrote:
> swap: ><
> shortcut indirect: ~> which later became ~~
> modulus: -%
 
The swap operator wasn't my idea. I just happen to think it's
an excellent idea. I also introduced ><= as a follow-up, one
which operates standalone and conveys more meaning than simply
the "a >< b;" syntax on a stand-alone line, but it is otherwise
synonymous when used in stand-alone. When ><= is used in-flight,
it doesn't just swap the values for the remainder of the expres-
sion, but rather permanently update the target variables.
 
https://groups.google.com/d/msg/comp.lang.c/S0Y0yfuY8bk/JcW-H8p6AQAJ
 
> and that doesn't count syntax changes like a < b < c
 
I have also introduced the underscore-bang operator: _!
 
https://groups.google.com/d/msg/comp.lang.c/TerqLu1Rvg4/bD4xkKizBgAJ
 
It was added to augment legacy systems with new struct / class
information the new additions to the app are aware of, but old
code is not. It allows traditional uses of prior structures,
such as dynamically linked external modules which have not been
recompiled and are not aware of the new fields, to still operate
properly while allowing the code that has been recompiled to use
the new features. It doesn't work on legacy arrays, but does
work apart from that, such as single instance structures that
need to convey more cargo than their finite size allows. By
passing the pointer, the pre and post portions remain visible
to apps that are aware of it. And the _ptr! syntax indicates
it's being conveyed with pre and/or post data.
 
I've added predicates:
 
// Old way:
if (units > 1) qty /= units;
 
// As a predicate
((units > 1)) qty /= units;
 
I've added the /% divide-modulo operator, which operates to
obtain the divide value and remainder in one op:
 
// Old way:
divide_value = a / b;
remainder = a % b;
 
// Using divide-modulo
divide_value = a /% b : remainder;
 
I've introduced the @ character for use when passing a variable
to indicate it's being passed by reference.
 
I've introduced the ability to perform a bit rotate operation
using <<< and >>>, which include <<<= and >>>= as well as the
ability to rotate a sub-portion using start#length syntax, as
in <<7#4<< to begin rotating at the 7th bit and extend for 4
bits to the 7th,8th,9th,10th bit.
 
x <<<= 5; // Rotate the bits in x 5 positions
y >>>= 5 : carry; // Rotate the bits in y right 5 pos-
// itions, and rotate not just in y,
// but rotate each bit through the
// carry variable.
 
I've added mated ctors / dtors, so that when something is in-
stantiated with a particular constructor it calls the associated
destructor, which can then also call an explicitly named one by
using the constructor's name, as ~name().
 
class Xyz
{
Xyz(void) name1
{ /* ctor code */ }
~ { /* dtor code */ }
 
Xyz(int a) name2
{ /* ctor code */ }
~ { /* dtor code */ }
};
 
I've added associated pre {} and post {} blocks to everything:
 
pre {
// Code here
 
} if (x == 5) {
// Code here
 
} post {
// Code here
}
 
It encapsulates code associated with the inner thing. Works
with anything that can be in a block. Can also be explicitly
moved to using pre; or post;, or you can name them and call
the one explicit one if you have more than one defined using
the pre name; and post name; syntaxes.
 
Using a post block allows for easy structured exit from a
multi-nested inner loop.
 
-----
Many features in CAlive. They are all well into development,
including most of the newer ones over the past couple months.
 
--
Rick C. Hodgin
Bart <bc@freeuk.com>: Dec 31 06:07PM

On 31/12/2018 14:04, Rick C. Hodgin wrote:
>> modulus:  -%
 
> I have also introduced the underscore-bang operator:  _!
 
>     https://groups.google.com/d/msg/comp.lang.c/TerqLu1Rvg4/bD4xkKizBgAJ
 
I must have missed that one. Looking at it now, I still don't understand
what it does or how it might be useful.
 
Looking through your CAlive newgroup articles, I can see these new
operators and symbols, in addition to those above:
 
((...)) as alternative to if (...)
<<<, >>> rotates
/% divide/mod, but used in very peculiar way
==# ?
f32#2 The #2 means 2 decimals??
# Concatenation of some sort
!+ +! ?
[x] Same as *x
~|...|~ different kinds of 'casks'
<|...|>
[|...|]
(|...|)
/|...|/
\|...|/
| Alignment operator (to do away with {} and indents)
<- Note sure (can't read the note I made)
_ Dereference? (as in _x and x_f...)
? As in 'if (x?)'
b<-a Means same as a->b
|-, -| ? 'lbar' and 'rbar'
<- To do with pointers again (3rd overload?)
@ 'pass by pointer'
#x 'before value of x'?
##x reset something or other
#= ?
i|++ I think still increment
 
Together with the dozens of other puzzling features, I really look
forward to seeing what a program in this language will look like that
when using all this lot.
 
And that's not meant to be complimentary. (Combining this with all of
supercat's ideas would be even more intriguing.)
 
 
>     // As a predicate
>     ((units > 1)) qty /= units;
 
Why is that better than:
 
if (units > 1) qty /= units;
 
>     remainder    = a % b;
 
>     // Using divide-modulo
>     divide_value = a /% b : remainder;
 
People will want to write:
 
divide_value, remainder = a /% b;
 
(Your use of ":" interferes with "?:" if you still have that.)
 
> I've introduced the @ character for use when passing a variable
> to indicate it's being passed by reference.
 
You seem to use & for that purpose, so what's the point of @?
 
, which include <<<= and >>>= as well as the
> ability to rotate a sub-portion using start#length syntax, as
> in <<7#4<<
 
<< or <<<?
 
to begin rotating at the 7th bit and extend for 4
> bits to the 7th,8th,9th,10th bit.
 
>     x <<<= 5;           // Rotate the bits in x 5 positions
>     y >>>= 5 : carry;
 
And yet one more use of ":". And another example where two things are
modified in the same expression. (What happens with 'y>>>=5:y;' ?)
 
> Many features in CAlive.
 
Clearly.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Dec 31 02:22PM -0500

On 12/31/2018 1:07 PM, Bart wrote:
>   /%           divide/mod, but used in very peculiar way
>   ==#          ?
>   f32#2        The #2 means 2 decimals??
 
These are used to compare floating point values to that many decimals in
base-10. It allows values like 1.999999999 and 2.00000001 to compare as
equal.
 
>   #            Concatenation of some sort
 
For readability. It allows a single operator to span multiple sources,
with each one being together with its cohort in the nth position. The
example I use is (c1#c2 == 13#10), rather than (c1 == 13 && c2 == 10).
It conveys more clearly you're looking for a 13/10 (CR/LF) pair in two
variables, where as c1 == 13 && c2 == 10 breaks it out and it's not
completely clear.
 
>   !+ +!        ?
 
I don't remember these. I think they were going to be nested comments.
I've since changed the syntax to be /+ and +/ to follow D's syntax.
 
>   [x]          Same as *x
 
A new pointer syntax. And [[x]] for pointer-to-pointer.
 
>   (|...|)
>   /|...|/
>   \|...|/
 
Each has a particular purpose. ~|utility|~ for ad hoc code. <|logic|>
for decisions, or responding to flow control. [|definition|] for def-
ining things. (|reference|) for referencing things.
 
Other syntaxes are not generally for visible use, but are internal, to
be injected by the compiler, used by the gui editor, etc.
 
>   |            Alignment operator (to do away with {} and indents)
>   <-           Note sure (can't read the note I made)
 
Pointers can go either way a->b or b<-a. It's provided to give con-
textual meaning, such as prev<-p and p->next so they indicate visually
their direction.
 
>   _            Dereference? (as in _x and x_f...)
 
All variables have an implicit underscore variable form unless there
is an explicitly created underscore variable name in scope. If you
create "char* x" there's an implicit _x which is the unsigned integer
equivalent value that can be used.
 
>   ?            As in 'if (x?)'
 
An immediate evaluation of x to 0, and returns true or false. It is
not required, but has utility in something like "if (x? == validState)".
It's the same as "if ((x != NULL) == validState)".
 
>   b<-a         Means same as a->b
>   |-, -|       ? 'lbar' and 'rbar'
 
Same as <- and ->, except they categorize the data in the struct
or class as being primary members, or lesser used members. An
lbar or rbar member is typically set at instantiation, and then
not altered. It's designed to provide a visual cue that this data
is different than other oft-changing data.
 
>   <-           To do with pointers again (3rd overload?)
 
Only one. If there's more than one please point it out.
 
>   @            'pass by pointer'
 
This has changed since that content was originally posted. The
@ is now used for reference members, and can be an enforced re-
quirement.
 
>   #x           'before value of x'?
 
During an assignment, it allows the value to be conveyed with
its before-assignment value, such as "if ((x == f()))" would
now return the value of f(x), but it allows the prior value
of x before it was assigned.
 
>   ##x          reset something or other
 
Allows the before value to propagate through the expression
from that point forward, even though it's now been assigned
a new value.
 
>   #=           ?
 
Another syntax for #x, one which is specified on the equal
operator.
 
>   i|++         I think still increment
 
Yes. It adds a visual differentiation to let the person know
the value being used is before the increment. It's only for
postfix operations, since it really is two operations.
 
I've also added "bit = x?<<;" to do a bit scan and report the
position where the first bit is set. Same with "bit = >>?x;"
to scan down from msb to lsb.
 
I've also added ^ parent pointers, so you can reference an
encapsulating structure when you know the pointer or variable
you're referencing is contained in a parent structure.
 
 
>>      // Using divide-modulo
>>      divide_value = a /% b : remainder;
 
> (Your use of ":" interferes with "?:" if you still have that.)
 
The ?: syntax has the ?, then the colon. This syntax only has
the colon.
 
>> ability to rotate a sub-portion using start#length syntax, as
>> in <<7#4<<
 
> << or <<<?
 
The syntax when you use n#m is two before, two after, so it
would be more like <<<<, but with the n#m injected in the
middle.
 
>>      y >>>= 5 : carry;
 
> And yet one more use of ":". And another example where two things are
> modified in the same expression. (What happens with 'y>>>=5:y;' ?)
 
Everything in CAlive follows the logical sequence of operations.
 
The code "y >>>= 5 : y;" will be processed in operator terms.
The : y is an assignment, so after y is loaded, rotated through
carry, it will store the result of the rotate into y, then it
will overwrite y with the 1 or 0 from the carry? bit.
 
--
Rick C. Hodgin
Bart <bc@freeuk.com>: Dec 31 09:05PM

On 31/12/2018 19:22, Rick C. Hodgin wrote:
> It conveys more clearly you're looking for a 13/10 (CR/LF) pair in two
> variables, where as c1 == 13 && c2 == 10 breaks it out and it's not
> completely clear.
 
In my dynamic language, there is no specific operator like this, but
there are several ways of expressing that using existing features:
 
if (c1,c2) = (13,10) then # compare two lists
if c1..c2 = 13..10 than # compare two ranges (ordering
# doesn't matter here)
case (c1,c2)
when (13,10) then # test 1st of several pairs
 
Such syntax can be adapted for static code. The advantage is that is
much clearer what is being attempted.
 
 
 
> I don't remember these.  I think they were going to be nested comments.
> I've since changed the syntax to be /+ and +/ to follow D's syntax.
 
>>    [x]          Same as *x
 
Assuming you are still using * from C, that means that for dereferencing
a pointer to struct member, you can use:
 
(*p).m
p->m
m<-p
[p].m
p~~m
 
For dereferencing a double pointer to a struct member, the choices are:
 
(*(*q)).m
(*q)->m
m<-(*q)
[[q]].m
[q]->m
m<-[q]
q~~m # ???
 
You see the problem? The syntax I use has ONE way to dereference a
pointer (postfix "^"), and ONE way to select a member ("."):
 
These examples must be written
 
p^.m # one pointer level, one ^
q^^.m # two pointer levels, two ^
 
Both access one member, so both have one ".". Take out member select:
 
p^ # access the whole struct
q^^
 
Try and take out the member select part of the 10 or 12 examples in your
syntax; you can't just remove the ".m", because most of them don't use it.
 
C syntax has always been a mess that way. Your additions make it worse.
 
 
 
> Each has a particular purpose.  ~|utility|~ for ad hoc code.  <|logic|>
> for decisions, or responding to flow control.  [|definition|] for def-
> ining things.  (|reference|) for referencing things.
 
Who's ever going to remember that lot? And don't tell me the last two,
/|...|/ and \|...|/ aren't going to get mixed up, unless that was a typo
and the last was meant to be \|...|\ (although all of them are a
complete pain to type).
 
To add attributes, just have the ONE syntax. The name of the attribute
will tell you which kind it is.
 
> Pointers can go either way a->b or b<-a.  It's provided to give con-
 
In Algol 68, p.m or p->m would be written as m OF p. (There is no
explicit dereferencing.) But it has just the one choice.) Most languages
went with variations on p.m.
 
> is an explicitly created underscore variable name in scope.  If you
> create "char* x" there's an implicit _x which is the unsigned integer
> equivalent value that can be used.
 
Say again? I expected you to say that _x means *x, some syntactic sugar.
You mean that _x means '*(unsigned char)x'?
 
(My old language could do the first example like this:
 
ref char x
ref. char _x @x
char c:='A'
 
x := &c
print x # display pointer address
print x^ # display A
print _x # display A
 
Again, features of more general use. The "." in the second line
indicated an auto-deref point. This has now been dropped, while @
(equivalence) only works for a native target.)
 
 
> An immediate evaluation of x to 0, and returns true or false.  It is
> not required, but has utility in something like "if (x? == validState)".
> It's the same as "if ((x != NULL) == validState)".
 
I actually have this in the form of 'istrue'. But it is so rarely used
that I had to try it to see if it was available in user code.
 
In any case, C programs can use 'if (!!x)' for exactly this purpose.
 
> lbar or rbar member is typically set at instantiation, and then
> not altered.  It's designed to provide a visual cue that this data
> is different than other oft-changing data.
 
Ugh. How about some features that simplify coding and make it easier to
write, read, and understand?
 
> its before-assignment value, such as "if ((x == f()))" would
> now return the value of f(x), but it allows the prior value
> of x before it was assigned.
 
I think this was discussed before in this group. No one could come up
with a suitable syntax for it, and #x isn't it.
 
It's a kind of assignment inside an expression, which returns the value
of the lhs before it was assigned to.
 
> I've also added "bit = x?<<;" to do a bit scan and report the
> position where the first bit is set.  Same with "bit = >>?x;"
> to scan down from msb to lsb.
 
What's the point of all these cryptic symbol that might be used once in
a blue moon? There would be so long between each use, that you will have
long forgotten what x?<< was ever supposed to be.
 
x64 calls these ops BSF and BSR. Or bitscanforward and bitscanreverse.
Just use those names, and no one will ever need to scratch their head
about them.
 
> I've also added ^ parent pointers, so you can reference an
> encapsulating structure when you know the pointer or variable
> you're referencing is contained in a parent structure.
 
This is typical of your explanations that I have to read several and
still can't grok the meaning or purpose of your feature.
 
Maybe I am particularly thick, or not very receptive to new ideas. Or
maybe I am fairly typical and this is a poor feature that is hard to get
your head around.
 
 
>> (Your use of ":" interferes with "?:" if you still have that.)
 
> The ?: syntax has the ?, then the colon.  This syntax only has
> the colon.
 
Can /% be used anywhere an expression can be, or only in conjunction
with "="? If the former, than /% and ?: can be used in the same
expression and there can be clashes.
 
Even if only as above, then someone can write:
 
x = a ? b /% c : d ? e @ r : d;
 
I think the problem is clear.
 
--
bart
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Dec 31 04:32PM -0500

On 12/31/2018 4:05 PM, Bart wrote:
>    when (13,10) then               # test 1st of several pairs
 
> Such syntax can be adapted for static code. The advantage is that is much
> clearer what is being attempted.
 
I like your language, Bart. I think you have some interesting ideas
and perspectives.
 
> /|...|/ and \|...|/ aren't going to get mixed up, unless that was a typo and
> the last was meant to be \|...|\ (although all of them are a complete pain to
> type).
 
The last two are not designed to be typed by people. They are unique
identifiers used by the compiler and GUI editor for the purposes of
conveying compile-time information.
 
\|cask|/ -- Side coding
/|cask|\ -- Auto-injected content
@|cask|@ -- Anchor cask
 
They serve specific purposes that will be handled automatically and
invisibly by the GUI editor. That's why they have that syntax.
 
>> equivalent value that can be used.
 
> Say again? I expected you to say that _x means *x, some syntactic sugar. You
> mean that _x means '*(unsigned char)x'?
 
char* x = "Hi, mom!";
 
x was assigned an address by the compiler to reference that data. Let
us suppose it was 0x123456. That means printf("0x%x\n"), _x) would print
out 0x123456.
 
> In any case, C programs can use 'if (!!x)' for exactly this purpose.
 
Yeah, and I still don't know what that operator does. :-) I think the
x? conveys information similar to what we see in assembly, with the
carry? flag, sign? flag, zero? flag, etc. It's actually where I got
that inspiration.
 
>> is different than other oft-changing data.
 
> Ugh. How about some features that simplify coding and make it easier to
> write, read, and understand?
 
I have those too. And I would argue these do make it easier, because
the editor can reveal the -| as a -> and put the variables in use in
another color, so it's more clear they're not oft used. They can also
be declared that way when created using [|lbar|] and [|rbar|] definition
casks (to define something, an attribute about their data, type, or in
this case, utility).
 
It's all designed to make it easier to read in the editor.
 
> suitable syntax for it, and #x isn't it.
 
> It's a kind of assignment inside an expression, which returns the value of
> the lhs before it was assigned to.
 
Yes, it's like (auto t = x, x = f(x), t). #x is an excellent syntax
for it, Bart. :-) If I had an anchor syntax, I would use it as I
think that would be a better symbol.
 
> forgotten what x?<< was ever supposed to be.
 
> x64 calls these ops BSF and BSR. Or bitscanforward and bitscanreverse. Just
> use those names, and no one will ever need to scratch their head about them.
 
#define BSF(x) x?<<
#define BSR(x) >>?x
 
Done.
 
 
> Maybe I am particularly thick, or not very receptive to new ideas. Or maybe I
> am fairly typical and this is a poor feature that is hard to get your head
> around.
 
It allows you to pass in a single variable to a remote function,
and gain access to it, it's parent, its grandparent if you know
the scope it comes from, and all other variables of that struc
or class relative to it.
 
It's a notable stack saver.
 
 
> Can /% be used anywhere an expression can be, or only in conjunction with
> "="? If the former, than /% and ?: can be used in the same expression and
> there can be clashes.
 
It currently has no syntax for use anywhere outside of an explicit
equal assignment as above.
 
> Even if only as above, then someone can write:
 
>   x = a ? b /% c : d ? e @ r : d;
 
> I think the problem is clear.
 
That syntax is not allowed presently. I don't have a good syntax
for using it as a stand-alone operator. It only makes sense with
the double-assignment.
 
I suppose it could use:
 
{a /% b : divide_value, remainder};
 
That might work. I'll think about it. It might be better defined
for CAlive in a cask:
 
(||a /% b | divide_value | remainder ||)
 
That way it's encapsulated no matter where it appears. Casks are
always in this format:
 
(||
left
| middle
| right
||)
 
The ends determine what it is:
 
() reference
[] definition
<> logic (like a flow chart)
And the ~|utility|~ cask injects arbitrary code.
 
If you only have a middle, it appears as: (|middle|)
If you have a left and middle, it's: (||left|middle|)
If you have a right and middle, it's: (|middle|right||)
If you have all three, it appears as: (||left|middle|right||)
 
It's very straight-forward, it's just not well known (yet). :-)
 
--
Rick C. Hodgin
Keith Thompson <kst-u@mib.org>: Dec 31 01:34PM -0800

Bart <bc@freeuk.com> writes:
[...]
> Looking through your CAlive newgroup articles, I can see these new
> operators and symbols, in addition to those above:
[...]
 
Oh, there's a CAlive newsgroup?
 
Wouldn't that be a better place to discuss CAlive than comp.lang.c *and*
comp.lang.c++?
 
--
Keith Thompson (The_Other_Keith) kst@mib.org <http://www.ghoti.net/~kst>
Will write code for food.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Dec 31 01:06PM -0800

On Thursday, August 24, 2017 at 5:48:26 AM UTC-4, Rick C. Hodgin wrote:
> -----[ End ]-----
 
> It also contains this sub-link:
 
> http://bibleandarchaeology.com
 
Secular writings confirming Christianity, and the claims made in the
Bible.
 
--
Rick C. Hodgin
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Dec 31 09:14PM

On 31/12/2018 21:06, Rick C. Hodgin wrote:
 
>> http://bibleandarchaeology.com
 
> Secular writings confirming Christianity, and the claims made in the
> Bible.
 
Nope.
 
--
"You won't burn in hell. But be nice anyway." – Ricky Gervais
 
"I see Atheists are fighting and killing each other again, over who
doesn't believe in any God the most. Oh, no..wait.. that never happens." –
Ricky Gervais
 
"Suppose it's all true, and you walk up to the pearly gates, and are
confronted by God," Bryne asked on his show The Meaning of Life. "What
will Stephen Fry say to him, her, or it?"
"I'd say, bone cancer in children? What's that about?" Fry replied.
"How dare you? How dare you create a world to which there is such misery
that is not our fault. It's not right, it's utterly, utterly evil."
"Why should I respect a capricious, mean-minded, stupid God who creates a
world that is so full of injustice and pain. That's what I would say."
fir <profesor.fir@gmail.com>: Dec 31 04:10AM -0800

W dniu poniedziałek, 31 grudnia 2018 12:46:31 UTC+1 użytkownik fir napisał:
 
> do if(s)
> {
 
> } while(p)
 
probably most full form would be something like that
 
if(s) do
{
 
} if(p) repeat
 
or
 
if(s) do
{
 
} repeat while(p)
 
though those keywords exact naming is a matter of language taste, also tthere are verious posibilities of chosing shortcuts to this full form and c had made some (not exacly those most fortunate)
 
(also tehre is mentioned option to put some code in between those heywords and bracers
 
///////
 
this option of using such things as
 
for(static int ini = 0; !ini; ini = 1)
{
//....
}
 
instead of
 
static int initialised = 0;
if(!initialised)
{
//....
initialised = 1;
}
 
is separate domain ; ifis for look like i said more idiotic but the advantage is it is compact, it visueally 'compacts' some
spreaded pattern ant this is advantage
 
hovever at least the ordes should be changed as i said for(i<100; int i=0; i++) is no doubt better
 
also there is an option of
 
for(i<100)
{
int i=0;
 
//....
 
i++;
}
 
this is possible to consider, this rule local is not seen higher is posible to deny (its hovever not a proposition, i say only it may be cnsidered)
 
note also using do repeat makes it possible to write loop without bracers
 
do
 
repeat
 
and it better than for endf and that things becouse this "endf" is not physical just fat form of "}" and here this repat is machine-physical and that makes things better
 
(fir)
fir <profesor.fir@gmail.com>: Dec 31 04:53AM -0800

W dniu poniedziałek, 31 grudnia 2018 13:10:26 UTC+1 użytkownik fir napisał:
 
> repeat
 
> and it better than for endf and that things becouse this "endf" is not physical just fat form of "}" and here this repat is machine-physical and that makes things better
 
> (fir)
 
so the question is thet, so what could be the cleanest form of loop in c after that what was said, are im able to answer that?
 
im not sure
 
in fact if using full if-do-repeat-while
schem there are two places where you can
put loop code after do or after repaat
before while and this second option seems gramatically better
 
do int i=0 repeat i++ while i<100
 
do int i=0; repeat printf("\n%d", i); i++; while i<100;
 
here do works more like setup only
 
dosnt seem to much quick to eye
compared to
 
for(int i=0; i<100; i++)
printf("\n%d", i);
 
or more better
 
for( i<100; int i=0; i++)
printf("\n%d", i);
 
but logically there is something in it
 
do(int i=0)
repeat { printf("\n%d", i); i++; }
while (i<100)
 
do(int i=0)
printf("\n%d", i);
repeat (i++) while(i<100)
 
i dont know
Siri Cruise <chine.bleu@yahoo.com>: Dec 31 05:13AM -0800

In article <f6636e54-5d8a-4c93-b531-588f377e3fb0@googlegroups.com>,
 
> > this shows btw that someone if would be like in jjoking mood could turn all
> > ifs in program into fors
 
'if (p) s' is equivalent to 'for (bool trip=true; trip && (p); trip=false) s'
 
 
> do //loop
> {
 
> }
 
The simplest form of a revised algol 68 loop is 'do series od'.
 
Djiskstra's notion is
 
do p1 then s1 else p2 then s2 else ... else pn then sn od
if q1 then t1 else q2 then t2 else ... else qn then tn fi
 
Repeat while any pi is true, and choose any i such that pi is true to evaluate
si, otherwise terminate the loop. The do has no value.
 
If any of the qi is true, and choose any i such that qi is true to evaluate ti.
The value of the if is the value of ti. If no qi is true, the value of the if is
undefined.
 
--
:-<> Siri Seal of Disavowal #000-001. Disavowed. Denied. Deleted. @
'I desire mercy, not sacrifice.' /|\
The first law of discordiamism: The more energy This post / \
to make order is nore energy made into entropy. insults Islam. Mohammed
fir <profesor.fir@gmail.com>: Dec 31 05:17AM -0800

W dniu poniedziałek, 31 grudnia 2018 14:13:52 UTC+1 użytkownik Siri Cruise napisał:
 
> > > this shows btw that someone if would be like in jjoking mood could turn all
> > > ifs in program into fors
 
> 'if (p) s' is equivalent to 'for (bool trip=true; trip && (p); trip=false) s'
 
it would berather
 
if(x) ->
 
for(; x; break;)
 
i not tested it though ;c
fir <profesor.fir@gmail.com>: Dec 31 05:29AM -0800

W dniu poniedziałek, 31 grudnia 2018 14:13:52 UTC+1 użytkownik Siri Cruise napisał:
 
> If any of the qi is true, and choose any i such that qi is true to evaluate ti.
> The value of the if is the value of ti. If no qi is true, the value of the if is
> undefined.
 
i thinked on those loop forms yet and such forms like this
 
1) repeat beep();
2) if(timer<100) repeat beep();
3) while(timer<100) repeat beep();
4) repeat beep() while(timer < 100)
5) do beep() if (timer < 1000)
 
seem ok, this 2 and 3 difference is intended that if checks only once then repeat, while 3 checks in each loop turn
 
the 5 is not loop itself but rightside if
it is it that has its condithion written just in rightside
 
do printf("kotek") if(toaday==sunday)
 
that cou be possibly useful though om not sure if that if should be not a bit diffrent keyword to secure no confusion
 
the problem is those forms aboe look good
but in the case of most popular for int i = 0 to 100 id dont look to much good
 
maybe this means that there is an eed of saying about normal loops and compact loops like c-for is compact-loop (and
possibly also very compact loops which i want to heve for long time like fori(100)
iterates on i o to 100)
Siri Cruise <chine.bleu@yahoo.com>: Dec 31 06:12AM -0800

In article <356594ad-03a8-4e4a-a1b9-ae6242967875@googlegroups.com>,
 
> if(x) ->
 
> for(; x; break;)
 
> i not tested it though ;c
 
#include <stdio.h>
int main (int argc, char **argv) {
for (int j=0; j<10; j++)
for (int k=0; !k; break)
printf("%d %d\n", j, k);
return 0;
}
t.c: In function 'main':
t.c:4: error: expected expression before 'break'
 
===========================================
 
#include <stdio.h>
int main (int argc, char **argv) {
for (int j=0; j<10; j++)
for (int k=0; !k; ({break; k=1;}))
printf("%d %d\n", j, k);
return 0;
}
@ a.out
0 0
 
--
:-<> Siri Seal of Disavowal #000-001. Disavowed. Denied. Deleted. @
'I desire mercy, not sacrifice.' /|\
The first law of discordiamism: The more energy This post / \
to make order is nore energy made into entropy. insults Islam. Mohammed
fir <profesor.fir@gmail.com>: Dec 31 06:20AM -0800

W dniu poniedziałek, 31 grudnia 2018 15:12:19 UTC+1 użytkownik Siri Cruise napisał:
> }
> @ a.out
> 0 0
 
seems like its idiotic error, yet if you may dodge it by writing something more stupid, as accepting ({break; k=1;}) where break; causes error seems much stupid
 
ah, i see that break was counted probably as external loop break (?) not internal loop one. lol that seems language or compiler error, this break logically belongs to internal loop imo
fir <profesor.fir@gmail.com>: Dec 31 06:52AM -0800

> enter { related_code_if_block_entered1 }
> {
> }
 
this scheme seems idiotic but yhe fact is c uses it (in a form of
for(setup; condition; final)
 
to add some compactness to loops that without that are not so quick-for -eye
 
fact tjat c uses it dont mean hovever it is not idiotic, imo c needs normal not-compact loops and possibly need extremally compact loops like
for i(100) {} or maybe even shorter
 
yhis middle form hovever is some option,
named parts are also some option though knowing hodgin crappy language i rather see ho disaster he can build with that (yuck)
fir <profesor.fir@gmail.com>: Dec 31 07:08AM -0800

W dniu poniedziałek, 31 grudnia 2018 15:52:44 UTC+1 użytkownik fir napisał:
> for i(100) {} or maybe even shorter
 
> yhis middle form hovever is some option,
> named parts are also some option though knowing hodgin crappy language i rather see ho disaster he can build with that (yuck)
 
yet i repeat what i said, which is quite banal, normal sentence but its just important: when making language you may do a lot of things, (more or less good or idiotic ) trouble is not to put there what comes to sombodys mind but only put those absolute top good ones, speaking rougly (i mean those to which you or anybody cant just find better, also speaking roughly ).. hodgin way is to put any insane crap that he produces on big stream
 
hovever, remembering the above, some not absolutely downnish ideas can be considered as an ideas and matter on thinking and there is some value in seeing those options (buit still you would better know whats good and why,
and whats bad and whu, too ;c)
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Dec 31 10:20AM -0500

On 12/31/2018 9:52 AM, fir wrote:
>> {
>> }
 
> this scheme seems idiotic...
 
The code would actually be used with more lines of code, conventionally.
I'm also not sure I like the syntax. It's confusing with many { and }
characters, even with indentation. I'll have to think about it.
 
One thing CAlive does allow is the use of { or {{ for every block, along
with its mated } and }}. Maybe this syntax would work better. CAlive
already uses the | prefix characters for related header information:
 
if (some_test1)
|
| in {{
| // Multiple lines of code here
|
| }} out {{
| // Multiple lines of code here
|
| }} enter {{
| // Multiple lines of code here
| }}
|
{
// Normal if code goes here
}
 
Makes it clearer at least, especially if the editor performs some
special syntax highlighting on the {{ and }} different than the {
and }.
 
CAlive currently uses:
 
function name
| params int a, int b
| returns int r
{
r = 42;
}
 
It allows you to define things related to the above thing using
the | character. CAlive also allows the ability to relate code
using the ||| symbol, which is ignored as a whitespace, but allows
the grouping of things in source code visually:
 
if (state == HALT_BUTTON_PRESSED)
{
||||||||||
|||| Stop -- Stop current operations
||| reset_controller();
||| reinitialize_controller();
||| home_controller();
 
 
||||||||||
|||| Flush -- Make sure no half-completed instructions are in queue
||| flush_communications();
||| send_ready_signal();
 
 
||||||||||
|||| Reset -- Reset the control panel
||| acknowledge_state();
||| clear_halt_button_flag();
}
 
This use of ||| is a visual syntax-in-text-file format of a
feature my editor will introduce, which is the ability to code
horizontally, rather than just vertically. These lines group
things into logical casks, which are then manipulated on-screen
like this, with the ability to collapse them into operations:
 
|||||||||| _______\ |||||||||| _______\ ||||||||||
|||| Stop / |||| Flush / |||| Reset
 
They appear visually, and are linked by lines showing flow. It
allows much more compact coding on-screen, with more information,
and it's more visual. You can single-step debug at this level
without going into the details of the related code lines.
 
In addition, I've introduced something called side coding, which
allows you to code a line like this:
 
<left>Something<sc>if (state == HALT_BUTTON_PRESSED)<right>Something else
 
It then translates it logically to this:
 
Left Source Code Right
------------+-----------------------------------------+---------------
|Something | if (state == HALT_BUTTON_PRESSED) | Something else
 
So you can have your source-code logically interspersed with any kind
of comments, compiler-injected notes, etc. They do not affect the
actual code being compiled, but they augment what the developer sees.
The same kind of ||| block grouping can be used there as well.
 
-----
As I say, CAlive is a comprehensive design, and it's for a new type
of developer. It will take the way they think about coding to a new
level. It will still provide C/C++-like abilities, but it will take
the developer experience to a whole new level.
 
--
Rick C. Hodgin
fir <profesor.fir@gmail.com>: Dec 31 07:36AM -0800

W dniu poniedziałek, 31 grudnia 2018 15:52:44 UTC+1 użytkownik fir napisał:
 
> yhe fact is c uses it (in a form of
> for(setup; condition; final)
 
yet there is potential optio0ns to allowing defining some kind of generalized functions
that could take blocks of code (that direction was revently written on clc)
 
this way one could fedine sometjing like for itself
 
void deformed_for(block setup;
block condition;
block loop_epilogue) { block content; } :
{
steup;
while(condition)
{
content;
loop_epilogue;
}
 
}
 
this might be than maybe more sane (maybe)
 
[thsi above only being draft as it would need toi be done probably slightly different, but this is an option and maybe could have some interesting usaecases, im not sure)
David Brown <david.brown@hesbynett.no>: Dec 31 06:09PM +0100

On 31/12/2018 05:21, Ralf Goertz wrote:
>>> should say "For what are you looking?" instead?
 
>> Yes, that is correct.
 
> Hm, grammar girl seems to have a different opinion: https://www.quickanddirtytips.com/education/grammar/ending-a-sentence-with-a-preposition
 
That article seems to be saying two things - both of which are
reasonable, IMHO. One is that it is common usage - and therefore part
of the language - to end a sentence in a preposition when the
alternative is particularly awkward. The other is that in some cases,
the preposition is part of a phrase, rather than joining two things.
 
What you really should avoid is prepositions that are either
superfluous, or leave information unsaid. For example, "I hadn't read
about that before". The "before" means nothing here - before what? The
sentence would make more sense as simply "I hadn't read about that", or
alternatively with more information, such as "I hadn't read about that
before yesterday".
 
 
> rule at school.) Interestingly, for me both ending with a preposition
> and splitting an infinitive feel very "English" probably because there
> is no way you could use either construct in a German sentence.
 
English grammar is based on a mix of Germanic and Latin grammar, with
some of its own variations. In both German and Latin (AFAIK)
infinitives are formed by verb endings - there is no way to "split"
them. This may be the origin of the rule in English.
rbowman <bowman@montana.com>: Dec 31 11:50AM -0700

On 12/30/2018 09:21 PM, Ralf Goertz wrote:
> Interestingly, for me both ending with a preposition
> and splitting an infinitive feel very "English" probably because there
> is no way you could use either construct in a German sentence.
 
Is 'Wo gehen Sie hin?' or splitting 'davon' acceptable? I have the
opposite problem to you. When I read Schwedenkrimi I'm not sure if it is
acceptable current usage or just crime novel slang. ( Scandinavian crime
novels usually are translated to German before English, if they ever do
get translated.)
rbowman <bowman@montana.com>: Dec 31 12:06PM -0700

On 12/30/2018 09:43 PM, Ralf Goertz wrote:
> Really? Fraktur was not taught at my time in German schools, I had to
> learn it on my own and I only did it because we had some old books I
> wanted to read.
 
The US schools hadn't quite caught up in the early '60s. The copies of
'Emil und die Detektive' we had might have been pre-war. Our teachers
were in their '50s so they were definitely pre-war.
 
In college the focus was on technical literature and that was all in
Roman type. The assumption for engineering students was a lot of
literature would be published in German. The reality, for better or
worse, was German engineers and scientists learned English.
rbowman <bowman@montana.com>: Dec 31 12:22PM -0700

On 12/31/2018 10:09 AM, David Brown wrote:
> some of its own variations. In both German and Latin (AFAIK)
> infinitives are formed by verb endings - there is no way to "split"
> them. This may be the origin of the rule in English.
 
Not necessarily infinitives but German makes an art form of verb
splitting. In a complex sentence the main bodies of the verbs pile up at
the end, with the tense signifier as a place holder in the sentence.
 
In programming speak you push a bunch of qualifiers on the stack and
then pop them off at the end to figure out who was doing what when.
 
It's been a long time but iirc Latin has a complex system for forming
infinitives depending on the tense and voice.
Horizon68 <horizon@horizon.com>: Dec 31 10:09AM -0800

Hello,
 
 
Here is my poems..
 
 
I am a white arab from Morocco who speaks and writes arabic and french
and english, here is all my poems of love, i have thought them in arabic
and also wrote them in english , read them carefully because they are
also full of wisdom, you can also share them with your friends, i will
also invite you to read all my following poems of love listening at the
same time at this really beautiful song of Robert Charlebois called Je
Reviendrai à Montréal :
 
https://www.youtube.com/watch?v=FhhlYq13fH0
 
 
Now i will start by explaining my first poem of love below:
 
You have to understand "mathematically" my poem of love, because
you have to put it in "context", because the "context" is that i am
writing it from "earth" and when i say:
 
"You are beautiful
Like the sound of the divine silence of the universe
Like the immensity of the universe
That remind us of the preciousness of life"
 
So since i am writing it from earth , so when i say:
 
"Like the sound of the divine silence of the universe"
 
I mean that it is the universe that is "outside" of earth.
 
You have to understand how i am thinking my following poem of love,
look at it, it starts by:
 
 
"You are beautiful
Like the sound of the divine silence of the universe
Like the immensity of the universe
That remind us of the preciousness of life"
 
I was writing this by also imagining astronauts that go outside earth
(to the moon or outside earth) that are feeling this complete "silence"
of the universe that is like divine(because it is a great wisdom that
makes us understand) and the immensity of the universe , so by seeing
this divine silence of the universe and the immensity of the universe
astronauts are capable of "feeling" more correctly beauty of earth and
beauty of love, and notice that when i say that: "Like the sound of the
divine silence of the universe", this divine silence of the universe
symbolizes also the absence of life.
 
 
And also when i say:
 
"You are beautiful
Like the sound of the divine silence of the universe
Like the immensity of the universe
That remind us of the preciousness of life"
 
How can i say that:
 
"You are beautiful
Like the sound of the divine silence of the universe
Like the immensity of the universe"
 
Is it illogical ? Can we say that beauty is such things ?
 
Yes we can say it, because the sound of the divine silence of the
universe and the immensity of the universe is "great" wisdom that
makes us indirectly "feel" and "understand" more correctly beauty and
love ! so this great wisdom is beauty ! so it is logical and mathematical.
 
This how my poetry can be understood.
 
And now you are capable to understand more correctly my beautiful poem
of love, read again my following poem of love that is "timeless" and you
will notice it..
 
Here is my final version of my poem of love:
 
 
Like a light heart and like an angel
 
Who returns in the silence of winter
 
To meet your beautiful and tender soul
 
And like streets that do not end
 
My love for you will always be in my heart
 
Since love is like the time of the cherries
 
For time speaks about sun and roses
 
For time speaks about love and joy and peaceful
 
Then i return to you
 
Since as bees and pretty flowers
 
My love for you is honey and Rainbow
 
Because you are beautiful
 
Like the sound of the divine silence of the universe
 
Like the immensity of the universe
 
That remind us of the preciousness of life
 
You are beautiful
 
Like the wild nature who thought and created beauty
 
Like the wild nature who thought and created love
 
Because your beauty is perfection of beauty
 
Who is love and tolerance
 
Because you are like the beauty of the oasis
 
Who defies the tourmants of the desert
 
Because your beauty is like the precious jewels
 
Like the emeralds
 
And like the rubbis
 
And like the sapphires
 
And like the diamonds
 
You are beautiful and still beautiful
 
You are the greatness of beauty and love
 
That even the infinite time
 
Is singing our destiny with love
 
Because our love is divine perfume
 
Because our love is timeless
 
Because our love is infinite future and present
 
Because our love is like the light that soften the hearts
 
Like the beat of the wings of the Bees and little birds
 
Because our love is divine and greatness
 
Because our love is made of light and sweetness
 
Because we are prophets and we are angels
 
That even the angels are calling us to join the Lord
 
Because our love has already joined God and the angels
 
Because our love is eternal life
 
Because our love live in the Garden of Eden
 
Because my love is arabic
 
And your love is divine
 
Like the divine wisdom of angels
 
Like rose and rosemary
 
Our tomorrow is made of light and fragrance
 
Because our love is immense and infinite
 
That only the greatness of God can define
 
As we are light as the beautiful angels
 
So approach me infinite light
 
I want you as wants us God Himself
 
Because we will never die
 
Because we are destiny of absolute love.
 
 
Thank you,
Amine Moulay Ramdane.
 
==
 
Here is my next poem of love:
 
 
 
Hello,
 
 
As a beautiful oasis that calls us
 
And from the depths of our souls
 
My love will stay forever
 
Suspended to your infinite beauty
 
You are like the moon that caresses my soul
 
Since your light is like happiness
 
Who comes out of the depths of my heart
 
And the rose and the tulip
 
As honey and bees
 
As well as the heat and the sun
 
As well as the sea and its depths
 
As well as dawn and its pretty stars
 
As well as the greatness of the universe
 
Are all symbols of our union of love
 
Because the pretty fir of our infinite Christmas is divine
 
The nightingale sings smoothly
 
Our love in chorus
 
Because we are made of perfume
 
As our life is made of light and Rainbow
 
We are like love, joy and smiles
 
Who are also like diamond and sapphire
 
Who are also like Satin and Velvet
 
Since it's like the Elixir of love
 
Since our love is divine
 
As dawn is beautiful and comes back
 
And who plunges us into the secrets of our beautiful garden
 
Like our emerald, ruby, sapphire and diamond souls
 
We are sun and heat like lovers
 
Your soul is a sea of pretty perfumes
 
Where love and hope are intertwined
 
You are like the beauty of dawn that comes back
 
And who bathes me in the depths of our destiny
 
Of our love which is divine
 
 
 
Thank you,
Amine Moulay Ramdane.
 
==
 
 
And here is my next poem of love:
 
 
The pretty and the beautiful
 
Look like your pretty eyes
 
And our pretty little raft
 
Who challenges storms and hurricanes
 
Remember me your wisdom
 
Because time is also to lovers
 
Because lovers time is like a mason
 
Who build skyscrapers!
 
Because love is also powerful
 
Thus the nightingale sings
 
Our love in chorus
 
Because love does not like war
 
Because the sword is wound and tears
 
And like rivers, fountains and streams
 
The weather is like a raft!
 
Because lightness and burden!
 
But our love is like a pretty fir
 
Because Christmas is our destiny
 
And with your lovely pretty eyes
 
You carry me on the wind and the Rainbow
 
To drive us to a beautiful island
 
Like our love and tenderness
 
Rather for goods never I leave you!
 
My sweet and beautiful goddess
 
My sweet spring and my sweet princess
 
Our hearts finally beat in unison
 
Like a nice thrill and a nice song
 
Because you are like the pretty flower that can not die!
 
As if both of us were as one
 
Let's be the flower and the perfum!
 
And may infinity and depth bring us together
 
Since our destiny has understood
 
That the pretty Christmas fir is not cursed
 
Because Christmas is divine
 
Because Christmas is our destiny
 
 
 
Thank you,
Amine Moulay Ramdane.
 
==
 
And here is my next poem:
 
 
Hello,
 
 
Love the night and love the day
 
This beauty and this contrast attracts
 
Because beauty also speaks to us wisely
 
The dawn also leads me to you
 
Because of the dawn of our love
 
That reminds me of the beautiful stars of the sky
 
And reminds me of the divine silence of the universe
 
And that's bring me closer to you
 
Because your beauty is as the beauty of the dawn that comes back
 
And do you feel the heartbeat of a little bird?
 
It reminds me of your delicacy
 
It reminds me of your wisdom
 
Because a little bird is also beauty and wisdom
 
And the depths of my love
 
It is like water and bread
 
Because wisdom comes with wisdom of passing time
 
Because wisdom comes with wisdom of love
 
And the weather is cold
 
As if I hear your voice
 
The sand of the desert is immense
 
As I am small in front of our divine love
 
Talk to me again and again
 
Because the time is going away
 
Because the time is ours
 
As if I thought of our happiness
 
Take me again and again in your arms
 
The time of love is like divine
 
Because the pretty and divine Christmas fir is not the evil one
 
Because Christmas is our destiny
 
The sea tells me about you
 
Like the depths of our love
 
And the wisdom of passing time
 
As if you were here and always here
 
It reminds me of your kindness
 
It reminds me of your delicacy
 
It remainds me of our divine love
 
Because wisdom carries us in his arms
 
Because wisdom is wisdom of love
 
 
 
Thank you,
Amine Moulay Ramdane.
 
==
 
 
Here is my final version of my next poem of love..
 
Read again my new extended poem of love, i have made it more beautiful
and it is the final version of my poem of love, my below poem of love
is like also a part of my philosophy, my poem is not just symbolism ,
but it is a part of my philosophy, because beauty symbolize perfection
that also helps and solve problems, so from for example beauty of the
tulip or the rose or the oasis you can feel the wisdom of life that life
, from for example natural selection, has given more perfection that is
also capable of solving problems and helping people, so "indirectly"
from the symbolism of my poem of love , you get wisdom that shows what's
love, because perfection of today that helps and solve problems is also
love.
 
Please read below my final version of my poem of love that is more
beautiful, listening at the same time at this beautiful song:
 
https://www.youtube.com/watch?v=Wdo-ZiHqbls&list=RDWdo-ZiHqbls&start_radio=1
 
 
Hello,
 
 
Don't you see what's love ?
 
The body of a little bird
 
And the songs of a little bird
 
It's like ocean of divine wisdom
 
It's like the divine silence of the universe
 
That's how they talk to me
 
And so is the wisdom of life
 
Since do not you hear the song of the nightingale?
 
Do not you see the beauty of a tulip?
 
Do not see the beauty of a blue sky ?
 
Do not you see the beauty of the rainbow, clouds and sun ?
 
It is like the diamond in your soul
 
Do not you see the beauty of a rose?
 
Do not you see the beauty of an oasis ?
 
Who defies the tourmants of the desert
 
It is too like the diamond in your soul
 
And look at the beauty of the dawn that comes back
 
With its beautiful stars and its divine silence of the universe
 
It is as it is singing love to us like the pretty nightingale !
 
Do not you feel its wisdom?
 
Do not beauty symbolize perfection ?
 
And perfection also helps the sad as the desperate
 
As the light of my poetry
 
Is love for you
 
Gushing from the bottom
 
From my heart
 
This is how love is so done
 
Since love is coming from the stars
 
Love is coming from the Big Bang
 
Because love is heat and love is sun
 
Because love is a light that carry our hope
 
Because survival is like diversity
 
Because life needs precious jewels
 
And love is precious jewels
 
So the light of the stars as a resonance
 
In a life of tenderness in abundance
 
And beauty of emerald , ruby , sapphire and diamond
 
As the light for our way of life
 
Because love is passion
 
Since like a pretty candle
 
Life tells us about swallows
 
Since life is like a damsel
 
Since life is contrasts of our reason
 
Because the candle is light and passion
 
Like the passion that consumes us
 
Through silence and thunder
 
Because the thunder reminds us
 
That it's effervescence like bees
 
And through the seasons of our mirror
 
Where love and joy are the strength of our hope
 
Because life is not a gift
 
Because life is like a raft
 
Because the seasons call the reason
 
And the reason calls tolerance and compassion
 
This is why I live in you
 
And you live in me
 
Because it is our love
 
Because you are like the beauty of the oasis
 
Who defies the tourmants of the desert
 
Your bright hair
 
Like gold and Satin
 
And then a blue sky
 
With our hearts
 
And then a depth
 
In our life of love
 
And then an infinity
 
With our strong and sincere love
 
That neither the grave
 
Neither the storms
 
Can disturb or beat
 
Because our love is strong and eternal
 
Since our love is also a reminder
 
For today and future generations
 
As I am seeing the intensity of love
 
In our warm souls
 
It's like the oasis and the sun
 
Since our love is like a perfume
 
Since I see the silence
 
In your heart of patience
 
I see the whiteness
 
In your savior hands
 
I see passion
 
In your spirit of reason
 
I see the relevance
 
In your eyes of romance
 
I see the time ahead
 
In our destiny in alliance
 
Because love is hope
 
Because the light of the stars as resonance
 
In a life of tenderness in abundance
 
Love is thus made of beauty and tenderness
 
Because love is like the King and his Princess
 
 
 
Thank you,
Amine Moulay Ramdane.
 
==
 
And here is my next poem of love:
 
 
Hello,
 
 
Under the pretty stars of the universe
 
And carry by the divine silence of the universe
 
We will walk in the beautiful streets of our destiny
 
Who is divine love in refrain
 
Because our hearts are beating in armony
 
And like a bird that flies away with joy
 
Through the universe of secrets of love and tenderness
 
And carried by the wind of the time of love
 
We will unite our bodies and our souls
 
And we will sing with love the rose flower and poppy flower
 
That remind us of the song that surrounds us
 
That remind us of the love song
 
And a beautiful singing star
 
Like our souls who breathes perfume
 
We will bring back hope
 
Like a happy and divine Christmas fir
 
Who calls us until the twilight of our lives
 
We will brave storms and hecatombs
 
Since we are like the sun and the heat
 
Since we are like honey and bees
 
Because our love which unites us is divine
 
Because beauty alone lives in our souls
 
Because our destiny takes us to unison
 
Like a song of love and tenderness
 
Since the light of love has appeared
 
Since the time of love has returned
 
And since spring has come back
 
And as a beautiful star who calls us
 
On a gentle wind that takes us
 
On the wings of a beautiful stream that is lost
 
In the depths of our minds that lead us astray
 
In the streets of love and tenderness
 
And then our thoughts that go astray
 
To the seaside shores of the sea
 
And our eyes on the horizon
 
Under a blue sky and foreign
 
And our wandering souls
 
Worn by unknown waves
 
Bringing Love, Joy and Glee
 
A peaceful time that runs away ...
 
Under our bare and innocent feet
 
And thoughts that inhabit us
 
Like shadows of our shadows
 
Shadows intertwined forever.
 
And then a very gentle wind
 
Carrier of tender murmurs
 
Who ruffle the hair and undresses
 
Of all its miles and wonderful aromas
 
And a beautiful sunset
 
With plenty of golden lights
 
Who caress the sky of our lives
 
Who caress your face and your emerald eyes
 
And my words like nightingales
 
Who come to brighten your life
 
Full of multicolored songs
fir <profesor.fir@gmail.com>: Dec 31 11:12AM -0800

> Because the pretty and divine Christmas fir is not the evil one
 
 
though sleepy...
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.