Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CAlive is coalescing

97 views
Skip to first unread message

Rick C. Hodgin

unread,
Sep 19, 2017, 8:31:26 AM9/19/17
to
As the design stage of CAlive progresses, I can see light at the end
of the tunnel. Still much to do, but there is a goal in sight, a
series of steps to get there. There are very few details left to
work out for a 32-bit 80386+ implementation of its design. After
that, it's on to coding and debugging the RDC framework CAlive will
use for its creation.

CAlive could be generating production binary code by the end of 2019
in its own new RDC framework, with other languages following quickly
thereafter.

If I were prone to celebrating milestones, I might do that about now.

I'm so excited about CAlive. It's what I've always wanted in a
programming language. Powerful base abilities. Fully extensible.
The ability to fully incorporate edit-and-continue at all stages
(I call it "LiveCode"), and the ability to have a known relationship
between a developer and the IDE environment it's being run in,
allowing for the new concept of an inquiry which suspends to the
debugger to ask what to do when something unexpected happens,
rather than just stopping with an error.

May the Lord guide me forward on this project. May I give Him my
best, so that all of you can benefit from my labor.

Thank you,
Rick C. Hodgin

-----
As a reminder, CAlive is a language design for a C-like language that
adds the basic class and exception handling. It's built inside the
RDC framework, which is something like a base set of abilities driven
by a database that allows compilers to be written within it.

RDC exposes a core set of necessary processing abilities that a
language needs to parse command line options, read in data files,
and translate raw source code through a series of stages ultimately
into binary code.

The CAlive language is essentially just a database plugged in to
RDC which guides its operation during compilation. As such, there
is no true CAlive compiler as a native, stand-alone thing. It is
only using RDC with a CAlive database enabling it to compile CAlive
source code. And similarly, other databases can be created which
guide RDC to compile other source code.

From the user's perspective, CAlive will be of the traditional form:

calive myfile.ca

This will invoke the RDC framework via the calive.exe program which
contains its own database. It loads RDC and passes the database to
it. RDC reads the database and basically takes over processing from
that point forward. It parses the command line, loads any data files
that are indicated, and begins the steps within the database which
instruct it to process code through line-by-line, section-by-section
from source code, through to object code, with a linker ability for
multiple target forms, though the stages involved are entirely free-
flow, dependent upon what the database guides it toward.

RDC will also be able to natively intermix languages from a single
source file when their databases are present (when the indicated
languages have been coded and designed). It will work like this:

// By default, the compiler uses whatever language it was
// invoked with. For calive.exe, it will use CAlive code.
// To use other libraries, use a form with _ and then the
// language name. Languages used can also be nested as
// needed.

_lisp {
// Lisp code here
}

_fortran {
// Fortran code here
}

_java {
// Java code here
}

The code within each block is compiled by the appropriate language
database, and since RDC resolves everything down to fundamental data
types internally, data exchange between languages will be possible
at all points.

Kenny McCormack

unread,
Sep 19, 2017, 9:25:23 AM9/19/17
to
In article <opr2mb$88p$1...@dont-email.me>,
Rick C. Hodgin <rick.c...@gmail.com> wrote:
>As the design stage of CAlive progresses, I can see light at the end
>of the tunnel. Still much to do, but there is a goal in sight, a
>series of steps to get there. There are very few details left to
>work out for a 32-bit 80386+ implementation of its design. After
>that, it's on to coding and debugging the RDC framework CAlive will
>use for its creation.
>
>CAlive could be generating production binary code by the end of 2019
>in its own new RDC framework, with other languages following quickly
>thereafter.

I guess now is the time for us all to be unloading our Microsoft stock.

--
"There are two things that are important in politics.
The first is money and I can't remember what the second one is."
- Mark Hanna -

Scott Lurndal

unread,
Sep 19, 2017, 9:40:44 AM9/19/17
to
"Rick C. Hodgin" <rick.c...@gmail.com> writes:
>As the design stage of CAlive progresses, I can see light at the end
>of the tunnel. Still much to do, but there is a goal in sight, a
>series of steps to get there. There are very few details left to
>work out for a 32-bit 80386+ implementation of its design.

Targetting an obsolete architecture doesn't seem particularly
useful, although you'll likely learn all about register pressure
during code generation. I recommend you read up on sethi-ullman
numbers.

Rick C. Hodgin

unread,
Sep 19, 2017, 10:18:26 AM9/19/17
to
The teachings of Christ will change your life, Scott. He'll open
your eyes teaching you all things anew. He'll give you a new life,
save your eternal soul from death, AND make you a nicer, more
loving, more genuinely helpful person to everyone you're around.

-----
I am creating a new hardware architecture called Arxoda. It's based
on the 80386 design extended out to 40-bits, but with a much larger
register set. It employs something I call a WEX (Window register
extensions).

WEX indicates which set of base 80386 register encodings are used
in conjunction with the WEX setting to access that register group
within the larger register set to process data:


http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/core/wex_register_mapping.png

The overall architecture design is here:

http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/core

I also have a simplified Arxoda design I call Arxita, which I'll
design and implement first. It is basically a 5-stage pipeline
80386, based on my original Oppie-2 design, using the same opera-
tional environment, but without protected mode, paging, and no 16-
bit support. It will introduce a simplified floating point engine,
and basically be a 32-bit protected mode core that uses a different
opcode encoding with some new instructions that will ultimately be
found in Arxoda:

http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxita

-----
My goals are not just 32-bit 80386, but are in progress toward usable
code in today's operating systems on today's processors, purposeful
code toward my own operating system running on Arxita, with the final
goal being running native code on my own 40-bit Arxoda CPU, with a
full hardware and software stack given over to God, lifting (meaning
acknowledging) Him in the design, and then giving it out to mankind
for general use.

My goals are to honor God with the skills He's given me, and to give
the people around me real tools they can take, alter, extend, adding
their own special and unique abilities atop.

If you ever come to know Christ, I would welcome your participation
on this project. You are very knowledgeable, but you don't realize
how far away from helping people you are today. If you ever come to
know Christ, He will show you ... and you will weep rivers of tears
just as I did, just as all Christians do once their eyes are opened
about the type of people they were before they met Jesus Christ.

Chad

unread,
Sep 19, 2017, 10:55:41 AM9/19/17
to
This has to qualify as the Special Olympics of computer programming.

Ben Bacarisse

unread,
Sep 19, 2017, 11:11:37 AM9/19/17
to
sc...@slp53.sl.home (Scott Lurndal) writes:

> "Rick C. Hodgin" <rick.c...@gmail.com> writes:
>>As the design stage of CAlive progresses, I can see light at the end
>>of the tunnel. Still much to do, but there is a goal in sight, a
>>series of steps to get there. There are very few details left to
>>work out for a 32-bit 80386+ implementation of its design.
>
> Targetting an obsolete architecture doesn't seem particularly
> useful,

Neither does posting in a C group about a language that is not C and is
implemented using C++, but that won't stop him.

But in truth, just like so many of his other posts, the posting itself
is the main point -- the language being touted... not so much.

--
Ben.

Rick C. Hodgin

unread,
Sep 19, 2017, 11:19:19 AM9/19/17
to
On 9/19/2017 11:11 AM, Ben Bacarisse wrote:
> sc...@slp53.sl.home (Scott Lurndal) writes:
>> Targetting an obsolete architecture doesn't seem particularly
>> useful,
>
> Neither does posting in a C group about a language that is not C and is
> implemented using C++, but that won't stop him.

CAlive is being written in a form that CAlive will later natively
compile itself. It is my goal to have CAlive bootstrap itself.

CAlive is beyond C, so I have no choice but to compile it in a C++
compiler, but even so I don't use much C++. In fact, I use almost
none of it right now except tighter type checking and relaxes syntax
allowances.

CAlive will eventually support a 100% native implementation of C90
and C99 with -c90 and -c99 switches, and I may simply create a C90
and C99 database which doesn't require the switches, and allows for
_c90 and _c99 blocks to be used within.

Providing that support is not my first goal, but everything about
the design is being coded with that end goal in mind. My current
target timeframe for supporting those features in around 2021.

Mark Storkamp

unread,
Sep 19, 2017, 1:15:06 PM9/19/17
to
In article <oprch8$mae$1...@dont-email.me>,
"Rick C. Hodgin" <rick.c...@gmail.com> wrote:

> CAlive is beyond C, so I have no choice but to compile it in a C++
> compiler,

So what you seem to be saying is, you can only create languages using
languages that are more powerful than the language you are creating. So
why would anybody use CAlive, when its creator thinks C++ is by
definition beyond CAlive.

Either that or it is simply the single most asinine statement I've read
on clc.

bartc

unread,
Sep 19, 2017, 1:24:28 PM9/19/17
to
On 19/09/2017 14:40, Scott Lurndal wrote:
> "Rick C. Hodgin" <rick.c...@gmail.com> writes:
>> As the design stage of CAlive progresses, I can see light at the end
>> of the tunnel. Still much to do, but there is a goal in sight, a
>> series of steps to get there. There are very few details left to
>> work out for a 32-bit 80386+ implementation of its design.
>
> Targetting an obsolete architecture doesn't seem particularly
> useful,

Actually, it's somewhat more useful than targetting x64, for the
foreseeable future anyway.

x86 code will run more readily on an x64 system than the other way around.

Also, programs coded for x86 (especially using a compiler with decent
code generator) IME are marginally faster than those for x64. At least,
if they don't require huge amounts of memory and and predominantly using
64-bit arithmetic.

--
bartc

Rick C. Hodgin

unread,
Sep 19, 2017, 3:50:54 PM9/19/17
to
On Tuesday, September 19, 2017 at 1:15:06 PM UTC-4, Mark Storkamp wrote:
> In article <oprch8$mae$1...@dont-email.me>,
> "Rick C. Hodgin" <rick.c...@gmail.com> wrote:
>
> > CAlive is beyond C, so I have no choice but to compile it in a C++
> > compiler,
>
> So what you seem to be saying is, you can only create languages using
> languages that are more powerful than the language you are creating.

No. It could be written using pretty much any language. I limit
myself to a greater-than-C and less-than-C++ footprint because I
want to someday bootstrap my own code in CAlive.

> So
> why would anybody use CAlive, when its creator thinks C++ is by
> definition beyond CAlive.

Everyone can use C++. Nobody has to use CAlive. You are free to
compare them side-by-side and choose the compiler you want. You're
free to not even consider CAlive for anything. Nobody's forcing you
to use it or consider it. However, it will be (James 4:15 "Lord
willing") be a tool available to you at some point.

Per my vision: For performance and speed, you'll want a more mature
compiler (at least in the beginning). But for ease of development,
you will not find a faster development system than RDC, and subsequently
CAlive and other languages being written in RDC. In fact, if you have
the right developer code installed, you'll even be able to tweak the
compiler while you're compiling a program program, to literally step
through the compilation process and find out where it's failing and fix
the error, or to rewrite your code when you see why it's being interpreted
that way. You can also add new features on-the-fly, test them in the
debugger, be able to debug both the source code to be compiled, and the
way in which they are compiled.

> Either that or it is simply the single most asinine statement I've
> read on clc.

Well... it appears that way to you because you purposefully mis-
understand. It's the exact same reason Christianity also appears to
be something you don't desire ... because you misunderstand what it's
about who, who Jesus is, why you need Him, because you are again
purposefully unwilling to hear the truth. You think you know what
it's about so you just assert your assumptions in lieu of real facts
and teachings.

It's your right to do that, given to you by God no less ... but it
will cost you your eternal soul, Mark. It will cost you far far far
more than you'll be able to pay.

Rick C. Hodgin

unread,
Sep 19, 2017, 3:53:10 PM9/19/17
to
In my experience it depends on the algorithm. There are times the
larger register set make a difference, and there are times wielding
the double-size pointers and pushing through memory with a larger
footprint can harm it.

On the whole, I would say 32-bit code is marginally faster, but it's
a very slim margin overall. Of course, when you get to the point
where you're processing > 2GB data sets, all bets are off. 64-bit
is the only way to go for performance.

It won't be hard to migrate RDC and CAlive to 64-bit when it's ready.
For now, I have much greater expertise on the 32-bit x86 environment,
so I'll start there.

Scott Lurndal

unread,
Sep 19, 2017, 4:01:40 PM9/19/17
to
"Rick C. Hodgin" <rick.c...@gmail.com> writes:

>
>Per my vision: For performance and speed, you'll want a more mature
>compiler (at least in the beginning). But for ease of development,
>you will not find a faster development system than RDC, and subsequently
>CAlive and other languages being written in RDC. In fact, if you have
>the right developer code installed, you'll even be able to tweak the
>compiler while you're compiling a program program, to literally step
>through the compilation process and find out where it's failing and fix
>the error, or to rewrite your code when you see why it's being interpreted
>that way. You can also add new features on-the-fly, test them in the
>debugger, be able to debug both the source code to be compiled, and the
>way in which they are compiled.

Welcome to 1978. (UCSD Pascal on a Terek P-system).

Rick C. Hodgin

unread,
Sep 19, 2017, 4:05:32 PM9/19/17
to
On Tuesday, September 19, 2017 at 10:55:41 AM UTC-4, Chad wrote:
> This has to qualify as the Special Olympics of computer programming.

I wonder if you consider the harm and hate you dole out in many of
your posts, Chad? Do you know there are people on the other ends of
Usenet? Do you know there are brothers and sisters, mothers and
fathers, friends and neighbors, and potential friends and neighbors?

You can integrate into your life alongside them. You don't need to
hurl hate and harm at people. Even people you disagree with, you
can still acknowledge they're living human beings and wish them well
in that regard.

Consider the ramifications of your actions toward other people before
you act. And try doing something nice for someone you might not other-
wise do something nice for, and do so for no reason. You'll be amazed
how much different being nice to someone makes you feel on the inside,
compared to just hurting other people and making them feel bad by your
words. I'd like you to experience that. It would be the first step
to a changed life.

Rick C. Hodgin

unread,
Sep 19, 2017, 4:15:05 PM9/19/17
to
That's why I need your expertise, Scott.

The great software of the geniuses of the 1970s and 80s have been
lost. Today we have things doled out which are useful, but only in
a limited way. I want to revisit that foundation and turn our labor
into real gifts to mankind.

I do this with a foundation in Christ because of who He is. He is
the true bedrock of love, of helping one another in love, of teaching
us to do things for others because we have been blessed by Him and
these gifts we've received were given to us for free, and because He
has not given equally all gifts to all people. Those of us who have
abilities to do something (yourself included) are called to stand up
and do something for His people, to improve their lives. And in the
areas they can help you (build a house, repair a car, weld up a project
or whatever it is), they would do that.

We're supposed to live in this society where everybody is looking to
help everybody else. Where everybody doesn't just focus on their
own life, but says out loud, "Hey! I need some help over here," and
then twelve people show up promptly to tackle that issue and then they
can all move on to the next thing.

Jesus Christ is not what people think He is. They think Christianity
is some kind of religion because that's all we have in this world as
an example. You go to most churches and you find dead people sitting
in their weekend country clubs, all operating under the color of
Christianity, but not operating as Jesus calls us to act.

What I am trying to teach people is the true way to be as a Christian.
A doer, a teacher, not just an idle talker.

I need help on these projects, and I want people to come and help me.
They are huge undertakings, and whereas I can do all of them I don't
want to, nor can I do them in a timely manner. I want to work on the
compiler and operating system components, and I'd like to have some
input on how the hardware should go. I basically want to design the
tools other people will use to build their things.

It's a right goal. It's a proper use of my talents. It's the way
we're all called to be. And the only reason I receive so much
criticism is because I'm doing what people know they too should be
doing, and it makes them feel guilty and awful, so they lash out at
me in their ashamed state so as to try to silence me, and make them-
selves feel better. But, it never works. They'll only feel worse
as they do harm to an innocent.

None of us have to go on that way. Pride keeps us from humbling our-
selves and coming forth and saying, "I am a sinner, I need to be for-
given for my sin, I need something I cannot obtain on my own." If we
would just reach that place of humbling ourselves, everything would
turn around.

You, Scott, can be a powerful servant for God in this world with your
great skills. You can rise higher than others, and shine brighter
than others because of that which you've been given.

Other regulars in this forum are the same way.

We, together, can build this project up and make it something the
world has never seen before. A prototype for a new future of how
to do something. A template they can take and see in software and
then transform into hardware, and also over to other industries.

We're on the threshold of greatness for Jesus Christ ... if people
would just lift up their lives to Him.

In God's sight, we've come together.
We've come together to help each other.
Let's grow this project up ... together!
In service and Love to The Lord, forever!

We can do it ... if only we will. There's nothing stopping us except
ourselves.

Rick C. Hodgin

unread,
Sep 19, 2017, 4:40:59 PM9/19/17
to
On Tuesday, September 19, 2017 at 4:15:05 PM UTC-4, Rick C. Hodgin wrote:
> On Tuesday, September 19, 2017 at 4:01:40 PM UTC-4, Scott Lurndal wrote:
> > "Rick C. Hodgin" <rick.c...@gmail.com> writes:
> >
> > >Per my vision: For performance and speed, you'll want a more mature
> > >compiler (at least in the beginning). But for ease of development,
> > >you will not find a faster development system than RDC, and subsequently
> > >CAlive and other languages being written in RDC. In fact, if you have
> > >the right developer code installed, you'll even be able to tweak the
> > >compiler while you're compiling a program program, to literally step
> > >through the compilation process and find out where it's failing and fix
> > >the error, or to rewrite your code when you see why it's being interpreted
> > >that way. You can also add new features on-the-fly, test them in the
> > >debugger, be able to debug both the source code to be compiled, and the
> > >way in which they are compiled.
> >
> > Welcome to 1978. (UCSD Pascal on a Terek P-system).
>
> That's why I need your expertise, Scott.
>
> The great software of the geniuses of the 1970s and 80s have been
> lost. Today we have things doled out which are useful, but only in
> a limited way. I want to revisit that foundation and turn our labor
> into real gifts to mankind.

To expand upon this ... today we have major corporations creating a
host of tools and then creating frameworks for users which are begin-
ning to limit our ability to create custom solutions that do not fit
in to their model.

Microsoft is a prime example. Most computers come with a version of
Windows 10 installed, and many of them are trying to make it so you
can only install software through their app store.

I don't want to limit people. I want to give them an operating
system that has a full suite of abilities, everything the hardware
can do, exposed to them through an API. I want them to be able to
create custom machines, or to create app store apps if they want,
but to not guide anyone in any direction. I want the people to
choose for themselves what direction they want to go, and if the
majority go one way, I won't cut off other avenues for other people
to go other ways.

Our goals have to be the best interests of people. Those of us
who have vision and stand up and look around and see what's going
on, it's incumbent upon us to step into the role of leader and to
lead people rightly. That is another reason I have as my solid
foundation Jesus Christ. He is that leader who only leads people
rightly, only teaches others to lead rightly, and it is only when
sin enters in and men stop listening to Christ that it is other-
wise.

We must do better for this world than those in power today have done
for us. There's a lot more of us little people then there are of
them in their powerful posts. We need to move out and teach those
around us how to be like Christ, so that He can teach them in an
ongoing day-by-day manner from within, teaching others. In that way,
His teachings of loving one another, and doing things which bring
that love to fruition in people's lives goes forth virally. It is
me teaching you guys, and then you guys receiving it, and then you
guys teaching others, and them receiving it, and all of them teaching
yet even more people, and so on.

Jesus Christ came to forgive us of sin and give us eternal life, but
that is not all. He also leads us into real love for one another,
to having compassion for one another, to overlooking people's short-
comings and addressing them in instruction and guidance, to help them
get from where they are to where they should be.

He teaches us to be teachers, and right teachers at that. We are to
hold Him out front of the things we do, out front of all of our endeav-
ors, so that His victory in love is already there in our project, and
then His outpouring of grace brings it to fruition in the hearts and
minds of many who step forward to help out.

It is reliance upon the One who is totally reliable. It is bypassing
my own limitations as a weak sinful man, and stepping forward and
saying to the One who can help me, "Lord, I need Your help."

I stand before all of you professing that I, Rick, am not a good man.
I fight against this flesh every single day. I have to edit posts
before I send them, to recoil from my flesh-based initial reaction to
some people, and then to operate in the spirit and not the flesh, and
there are days it's really really hard. But, it's important to me.
I put in the time and effort and I buffet and discipline myself toward
those ends because that's what I truly want when I'm being completely
honest with myself: I want to help people. I want to make their lives
better. I want to give them from the things I possess. And since I'm
not rich and can't buy them houses and cars, I step into all of the
areas where I do have something to give: My knowledge, skills, ability
to learn, labor, and time.

-----
I urge you all to consider these things. The first notion you need to
do away with is that Jesus Christ is a religion, or that Christianity
is a religion. He is not. And being a Christian is not a religion.
It is about a changed life when your sin is forgiven. It's about being
born again spiritually, and all things in your lives and thinking being
made new by His grace.

The second notion you need to do away with is that your lives are your
own. Everyone who comes to Christ asking forgiveness is given eternal
life, but we must always remember we were bought at a price. Our lives
are not ours to then just turn around and run back into sin, or to not
be as He calls us to be. We have obligations and responsibilities to
Him, and He knows we will be weak and fail at times, but as to the long-
term goals for our lives He continually guides us past all of our many
stumblings, on to victory.
E
The third notion you need to do away with is that I'm your enemy. I am
doing all of this for you just the same as I am for the masses of people
I don't know and don't interact with like this. You are my targets and
objects, just as they are. And I want to improve your lives and give
you something that's amazing and wonderful, but more than that I want
you to step up to the project and give me something that's amazing and
wonderful, more so than I could've come up with on my own.

I want us working together to create the amazing thing. I want us to
work together and give mankind this amazing thing. I want all of us
to share in the victory that we obtain in Christ, and by His guidance,
give also to others.

I want our lives to shine into Heaven ... to light up this world like
it's never been lit before since Jesus Himself walked on the planet,
and His Apostles and early faithful followers likewise.

mark.b...@gmail.com

unread,
Sep 20, 2017, 3:53:47 AM9/20/17
to
On Tuesday, 19 September 2017 21:15:05 UTC+1, Rick C. Hodgin wrote:

> That's why I need your expertise, Scott.

And the rest of your post shows why you won't get it...

Rick C. Hodgin

unread,
Sep 20, 2017, 8:24:22 AM9/20/17
to
I'll hold out hope. So long as people draw breath the opportunity
for them to come to Jesus, ask forgiveness of their sin remains.
It is only after people leave this world through death that their
eternal fate is sealed.

I was almost 35 years old before I came to faith. I had heard many
people try to convince me of Jesus Christ throughout my life. I
would laugh them to scorn. It wasn't until God opened up my ability
to receive knowledge of His Son that I was changed. I later learned
this is something that must happen to all people (John 6:44). As
such, nobody knows when they will come to believe. And no Christian
knows who will come to believe or when. It's why we must teach
equally to all people, because God uses us in that appointment, for
the day our brothers and sisters in this world come to faith.

-----
Giving back to God the fruit of that which He first gave us is the
right thing to do. It demonstrates that His own love lives inside
of our hearts, and is put into action in our lives.

I encourage each of you to look up to the cross and learn who Jesus
is for real. Do not rely upon your previous assumptions because if
they lead you away from Christianity, away from Jesus, they are
wrong. At least they're wrong about Him. The actions of sinful men
are what they are, but Jesus does not call any of His followers to
move in sinful ways. Ever.

We are called to service for His Kingdom, and we are called to
greatness because it's the only place God operates: absolute and
complete greatness. His domain of Heaven is a literal paradise,
which is what makes Him coming down here to save filthy us such
a demonstration of His love. He would've been well served to just
wipe us out and start over given the vastness of this universe, but
He didn't. He looked at us and came here to save all who would be
saved. We are that important to Him, that He would step out of
Heaven, come down here in a body like ours and live like us for
over 30 years, and then die for us while we were still in rebellion
against Him in sin.

There is no greater love anywhere, and I urge you to cast off your
pre-conceived prior notions about who He is and look again. You too
can be a part of His Kingdom. You too can shine on forever like the
stars. He gives you that ability when you come to Him asking forgive-
ness for your sin.

Jesus makes you into that which you are denied today by your sin. He
does so by literally taking your sin away from you, and placing it
upon His own back. There is no greater display of love anywhere: God
truly saving His people from the law He established, while maintaining
the law fully in effect.
0 new messages