KISS - Keeping it Simple Stupid

9 views
Skip to first unread message

Liberty Lover

unread,
Dec 6, 2025, 2:33:57 PM (11 hours ago) Dec 6
to Eiffel Users
The new API layers are done and in the can. You can use the separate simple_* libs if you like, but you don't have to. They are being strategically placed in layers:

1. App API - Top layer
2. Service API - Middle tier
3. Foundation API

You can find the entire thing written up here:

claude_eiffel_op_docs/simple_api_writeup.md at main · ljr1981/claude_eiffel_op_docs

Best,

Larry

Liberty Lover

unread,
Dec 6, 2025, 3:05:20 PM (11 hours ago) Dec 6
to eiffel...@googlegroups.com
I will also be "simple-ifying" some Eiffel libraries too, so they come into the simple_* universe.

--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/eiffel-users/f64f88ab-0652-4cbc-8b0f-56c00abfe54bn%40googlegroups.com.

Eric Bezault

unread,
Dec 6, 2025, 3:14:47 PM (10 hours ago) Dec 6
to eiffel...@googlegroups.com, Liberty Lover
Hi Larry,

I can read in this page:

~~~~
5. Design by Contract Throughout

All features include proper contracts:

new_get_request (a_url: STRING): SIMPLE_WEB_REQUEST
require
url_not_void: a_url /= Void
url_not_empty: not a_url.is_empty
do
create Result.make_get (a_url)
ensure
result_not_void: Result /= Void
end
~~~~

Hmmm, proper? What about those postconditions that
are in `make_get`:

~~~~
method_set: method ~ Http_method_get
url_set: url ~ a_url
~~~~

I guess they should appear in `new_get_request` as well.
Otherwise how do you verify that `new_get_request` does
its job. What about if the implementation was buggy with
a call to `make_post`?

--
Eric Bezault
mailto:er...@gobosoft.com
http://www.gobosoft.com
> claude_eiffel_op_docs <https://github.com/ljr1981/claude_eiffel_op_docs/
> blob/main/simple_api_writeup.md>
>
> Best,
>
> Larry
>
> --
> You received this message because you are subscribed to the Google
> Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to eiffel-users...@googlegroups.com <mailto:eiffel-
> users+un...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/eiffel-
> users/f64f88ab-0652-4cbc-8b0f-56c00abfe54bn%40googlegroups.com <https://
> groups.google.com/d/msgid/eiffel-users/
> f64f88ab-0652-4cbc-8b0f-56c00abfe54bn%40googlegroups.com?
> utm_medium=email&utm_source=footer>.



Eric Bezault

unread,
Dec 6, 2025, 4:58:23 PM (9 hours ago) Dec 6
to Liberty Lover, Eiffel Users
On 06/12/2025 22:46, Eric Bezault wrote:
> On 06/12/2025 22:32, Liberty Lover wrote:
>>    2. Void-safety makes Result /= Void redundant - In a Void Safe
>> system, the compiler already guarantees non-void results from
>> functions. These postconditions add no value.
>
> You're right. I keep them in my own code though, just in case
> some user of my Gobo libraries want to use them in non-void-safe
> mode. How would want to do that these days? Hmmm...

Interesting case:

class A

feature

f (a: detachable T)
require
a_not_void: a /= Void
do
a.do_something
end
end

class B
inherit
A
redefine
f
end
feature

f (a: T)
do
a.do_something_else
end
end


local
a: A
b: B
do
create b
a := b
a.f (Void)

This is a CAT-call. With the precondition we get an assertion violation.
Without it we get a call-on-void target.

Of course this example is ridiculous. Some lint tool (or Claude) should
tell us to write:

class A

feature

f (a: T)
do
a.do_something
end
end

in the first place.

At the end of the days I think that you are right: let's get rid of the
'a /= Void' assertions when the type of `a` is attached. Eiffel does not
need to be more verbose than necessary.

--
Eric Bezault

Liberty Lover

unread,
Dec 6, 2025, 5:10:56 PM (9 hours ago) Dec 6
to Eric Bezault, Eiffel Users
Here is the WHOLE enchilada for KISS (Simple_* Library)

claude_eiffel_op_docs/SIMPLE_LIBRARIES.md at main · ljr1981/claude_eiffel_op_docs


Eric Bezault

unread,
Dec 6, 2025, 5:15:31 PM (8 hours ago) Dec 6
to Liberty Lover, Eric Bezault, Eiffel Users
On 06/12/2025 23:10, Liberty Lover wrote:
> Here is the WHOLE enchilada for KISS (Simple_* Library)
>
> claude_eiffel_op_docs/SIMPLE_LIBRARIES.md at main · ljr1981/
> claude_eiffel_op_docs <https://github.com/ljr1981/claude_eiffel_op_docs/
> blob/main/SIMPLE_LIBRARIES.md>


simple_ci github.com/ljr1981/simple_ci ljr1981.github.io/simple_ci

The documentation does not exist for this library.
Reply all
Reply to author
Forward
0 new messages