Henrique Lengler | 27 Nov 22:32 2014

Re: Questions about sta.li


Is there anything already done about it? I can't find 
it on the git repository.

I'm very interested and I would like to help to bring 
sta.li to reality.


Henrique Lengler

M Farkas-Dyck | 27 Nov 16:32 2014

K, a low-level procedural imperative programming language

Given the comments on alternatives to C lately on dev <at>  I thought this
a good time to introduce mine: http://k-lang.org/

The goal is a language appropriate for systems programs including
kernels, sans some flaws of C. This likely means no hidden heap

This is very much a work in progress. In particular I not yet know how
to do arrays, modules/includes, or macros sanely.

Henrique Lengler | 26 Nov 22:57 2014

Re: rio for linux

Reviving this old thread:

This is the only thread I found talking about have something like rio on Linux

After read Rob Pike documents about rio, and window systems in general, I got
very interested in it.
He talks about how window systems can be less complicated, and he describe a
very interesting design of one. This design is used in rio.
So I'm thinking how something like this be implemented in a normal Linux or BSD.
The three documents that have their links on the footer, have a lot of
information about this design, that I found very interesting.

If the author of the first post continue interested or already did some work, I
would like to know.

What do you guys think?

The documents:


Henrique Lengler

Charles Thorley | 26 Nov 22:38 2014

Object-Oriented C for interface safety?


I understand that there is zero love for object-oriented programming
methodologies on this list, and I am not particularly interested in this
strategy myself, although some languages that I like (i.e. Python) make
it hard to avoid in many ways.  Regardless, this question is not meant
to poll suckless devs on their feelings surrounding baroque,
masturbatory abstraction; I know the answer to that question.

I am attempting to learn C, and in my interweb travels I have
encountered Object Oriented C.  One particular theme surrounding this
approach, which I found quite interesting, was the idea of creating safe
and robust interfaces through (relatively?) simple means; namely,
modeling the public/private metaphor in OOP by placing
differently-privileged code in separate files, and managing access
through header files.  A link that describes this technique:


I know just enough about programming to be intrigued by the idea, but
not nearly enough to understand its implications in practice.  My
questions are:

1. Is this practice (potentially) suckless?
2. If so, under what conditions would this be a suckless strategy?

My apologies if this has been covered previously; googling the list did
not suggest that this is the case, although my attempts to learn C have
revealed that my google-fu has a giant blind spot when it comes to
producing useful results for single-character keywords.
(Continue reading)

Dmitrij D. Czarkoff | 26 Nov 08:56 2014

lsw 0.3


I noticed that lsw in repo has its version bumped in 2011, and no new
commits went in since.  Provided that current master is much more useful
then lsw-0.2, I wanted to ask someone commit access to tag lsw-0.3 and
add it to downloads, so that it could be packaged for distros.


Dmitrij D. Czarkoff

Greg Reagle | 25 Nov 20:08 2014

Project ideas: goblin

From http://suckless.org/project_ideas:
> Write the most useful unix userland commands in the new Go language
> created by Google to form a robust base for future Unix-like
> userlands that do not suffer from the vulnerabilities that are
> common in C or C++ code.

Is anyone still interested in this?  I am tempted to dabble in this.
I do not share the love of C that a lot of the suckless programmers
seem to have (though I do share the hatred of C++), and I think that a
higher level language would have a lot of advantages.

However, it seems pointless to proceed unless the Go version is going
to supplant the C version.  Why have the duplication?

Has anyone taken a stab at this?  Any other thoughts?

Thank you.


http://www.fastmail.com - The professional email service

Charlie Kester | 24 Nov 23:10 2014

Does suckless need a separate list for general discussion?

On Mon 24 Nov 2014 at 12:47:30 PDT Calvin Morrison wrote:
>On 24 November 2014 at 11:42, v4hn <me <at> v4hn.de> wrote:
>> On Sun, Nov 23, 2014 at 10:20:44PM +0000, Henrique Lengler wrote:
>> > Hi,
>> >
>> > What is the situation of GCC, is it bloated?
>> On Wed, Nov 19, 2014 at 10:35:52PM +0000, doa379 wrote:
>> > There's an incredible amount of spam and OT on this list isn't there!
>Last time I checked this list is for general dev and general
>discussion. Check yo privilege

If there are enough people who want to keep this dev list restricted to
discussion of proposed patches or other concrete work on suckless
projects, perhaps there should be a separate list for more general discussion?

The suckless approach is always going to provoke some amount of
philosophical discussion and questions about non-suckless projects like
GCC.  Those questions and discussions are only occurring here because
there's nowhere else for them to go.

koneu | 24 Nov 22:13 2014

Re: GCC situation


Calvin Morrison wrote:
> I've used -O3 for a long time in several projects that are heavily
> tuned and not noticed any issues. I think there is a large stigma
> around -O3 but if you just take a few minutes to read about -O3 you'll
> learn quickly what is safe to use and what could cause problems. You
> seem like a hater.

I might be a hater.
If you write your code to work around the "optimizations" enabled by -O3
then that's fine, but don't expect anything else to work with -O3.
Most importantly, don't compile your whole system with -O3 or you will
have much fun.

 <at> Markus: Yes, my CFLAGS are usually along the lines of "-O2
-finline-functions -ftree-vectorize". For critical parts like init or
the likes I add -fstack-protector.

Calvin Morrison | 24 Nov 21:51 2014

Re: GCC situation

On 24 November 2014 at 15:46, Calvin Morrison <mutantturkey <at> gmail.com> wrote:
> On 24 November 2014 at 15:44, koneu <koneu93 <at> googlemail.com> wrote:
>> Greetings.
>> Markus Wichmann wrote:
>>> compiling with -O3 will result in some broken binaries. Somewhere. Why?
>> Because -O3 is very aggressive and should NOT be used. Especially not
>> when compiling/bootstrapping a system. In most cases it makes things
>> buggier and bigger, in some cases even slower. Use -O2.
> I've used -O3 for a long time in several projects that are heavily
> tuned and not noticed any issues. I think there is a large stigma
> around -O3 but if you just take a few minutes to read about -O3 you'll
> learn quickly what is safe to use and what could cause problems. You
> seem like a hater.

before you FUD, there's lots of good stuff, like vectorization, and my
two favorites

-finline-functions, which is great for having efficient code, while
making sure you code is readable.
 -funswitch-loops, this is a great optimization which helps deal with
stupid programmers

Henrique Lengler | 23 Nov 23:20 2014

GCC situation


What is the situation of GCC, is it bloated?
I'm asking because I don't find too much on suckless site about it 
I don't have experience in any other compiler.

I also found someday TCC (Tiny C compiler - bellard.org/tcc/) 
And it looks cool.

The site shows the speed of it:
Compiler	Time(s)	lines/second	MBytes/second
TinyCC 0.9.22	2.27	859000		29.6
GCC 3.2 -O0	20.0	98000		3.4

What they don't talk about is the speed of execution, wich I think
is faster with gcc. But if I were create a suckless gcc I would 
probably fork TCC.

So what do you think, GCC is ok? Or no?


Henrique Lengler

Michael Forney | 23 Nov 21:25 2014

[sbase] [PATCH] ln: Add support for target directories

Also, now that we are using {sym,}linkat, implement the trivial -L and
-P options.
 ln.1 | 11 +++++++++--
 ln.c | 53 ++++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/ln.1 b/ln.1
index 4205ea7..3b1ac98 100644
--- a/ln.1
+++ b/ln.1
 <at>  <at>  -3,12 +3,12  <at>  <at> 
 ln \- make links between files
 .B ln
-.RB [ \-fs ]
+.RB [ \-LPfs ]
 .I file
 .RI [ name ]
 .B ln
-.RB [ \-fs ]
+.RB [ \-LPfs ]
 .RI [ file ...]
 .RI [ directory ]
 <at>  <at>  -18,6 +18,13  <at>  <at>  it is linked into the current directory.  If multiple files are listed they will
 be linked into the given directory.
(Continue reading)