all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Shepherd and Guille
@ 2018-10-31  0:39 Wayne
  2018-11-01  4:19 ` Vladimir Sedach
       [not found] ` <87o9b9ig4l.fsf@exinda.orion.oneofus.la>
  0 siblings, 2 replies; 8+ messages in thread
From: Wayne @ 2018-10-31  0:39 UTC (permalink / raw)
  To: Help Guix

ahoy all,

   i have been researching GuixSD and Guille a bit, hoping to take the  
plunge soon.  the nice community here is definitely a big plus :)

   i came across the following article

https://davmac.wordpress.com/2018/10/26/on-the-vagaries-of-init-systems/

which raises some issues with the Shepherd init system (towards the  
end in the section "Robustness and failure modes"), in particular with  
its use of an interpreted and garbage collected language.  i was  
wondering if anyone here with knowledge about this would care to  
comment on the validity of these concerns?

   regardless, thanks for the work on GuixSD and company.

peace, w


-- 
https://waynedpj.ingiro.xyz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
  2018-10-31  0:39 Shepherd and Guille Wayne
@ 2018-11-01  4:19 ` Vladimir Sedach
       [not found] ` <87o9b9ig4l.fsf@exinda.orion.oneofus.la>
  1 sibling, 0 replies; 8+ messages in thread
From: Vladimir Sedach @ 2018-11-01  4:19 UTC (permalink / raw)
  To: Wayne; +Cc: Help Guix

> which raises some issues with the Shepherd init system (towards the
> end in the section "Robustness and failure modes"), in particular
> with  its use of an interpreted and garbage collected language.  i
> was  wondering if anyone here with knowledge about this would care to
> comment on the validity of these concerns?

I just skimmed it and it looks like the typical ignoramus FUD. The
author cannot even tell the difference between an interpreter and a
VM. Also amusing is this quote: "JITs can do amazing things, at least
in memory usage." I presume the author here is confusing JITs with
tracing or profile-directed run-time optimization (another mistake
common to people who do not understand dynamic language run-times).
Yes, those can indeed do amazing things in memory usage, namely using
up gigantic amounts of it.

There is about 50 years worth of applications in using dynamic
languages for systems programming (starting with BBN LISP/Interlisp).
The biggest problem is bounding garbage collection pauses. There are
various ways to do this (the simplest being to pre allocate memory).

As for handling running out of memory, the author could have answered
his own question by taking a minute to search through the Guile
sources:

gc-malloc.c:139   scm_report_out_of_memory ();

throw.c:639 throw_without_pre_unwind (scm_out_of_memory_key,
out_of_memory_args);

And indeed in NEWS:
Instead of aborting, failures to allocate memory will now raise an
unwind-only `out-of-memory' exception, and cause the corresponding
`catch' expression to run garbage collection in order to free up memory.

So you catch the exception and perform some appropriate action. Here
I am not exactly sure what the appropriate thing for an init system
to do would be - fail at starting a new service?

Vladimir

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
       [not found] ` <87o9b9ig4l.fsf@exinda.orion.oneofus.la>
@ 2018-11-04  9:39   ` Pierre Neidhardt
  2018-11-08  4:12     ` Wayne
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Neidhardt @ 2018-11-04  9:39 UTC (permalink / raw)
  To: Vladimir Sedach; +Cc: Help Guix

[-- Attachment #1: Type: text/plain, Size: 482 bytes --]

I also gave it a quick read and I tend to agree with Vladimir: this
article comes off as a rant (like most other articles on this website according
to the author) with poor arguments and poor understanding of engineering and the
bigger picture of computing.

In my opinion, the style betrays the writing of someone who tries to sound
smarter and more knowledgeable than they really are.  The article is rather
hollow overall.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
  2018-11-04  9:39   ` Pierre Neidhardt
@ 2018-11-08  4:12     ` Wayne
  2018-11-08  7:58       ` Pierre Neidhardt
                         ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Wayne @ 2018-11-08  4:12 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: Help Guix


Quoting Pierre Neidhardt <mail@ambrevar.xyz>:

> I also gave it a quick read and I tend to agree with Vladimir: this
> article comes off as a rant (like most other articles on this  
> website according
> to the author) with poor arguments and poor understanding of  
> engineering and the
> bigger picture of computing.
>
> In my opinion, the style betrays the writing of someone who tries to sound
> smarter and more knowledgeable than they really are.  The article is rather
> hollow overall.

thank you both Vladimir and Pierre for taking the time to respond.   
while i also thought that the article was not so well done, the point  
about using GC/JIT/etc. languages for "critical" software like init  
seemed somewhat worth investigating.  thus thanks again for your inputs.

peace, w

-- 
https://waynedpj.ingiro.xyz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
  2018-11-08  4:12     ` Wayne
@ 2018-11-08  7:58       ` Pierre Neidhardt
  2018-11-09  5:18       ` Vladimir Sedach
       [not found]       ` <5be518c9.1c69fb81.90d67.495dSMTPIN_ADDED_BROKEN@mx.google.com>
  2 siblings, 0 replies; 8+ messages in thread
From: Pierre Neidhardt @ 2018-11-08  7:58 UTC (permalink / raw)
  To: Wayne; +Cc: Help Guix

[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]


> the point about using GC/JIT/etc. languages for "critical" software like init
> seemed somewhat worth investigating.

Actually, why?  I read this, and to me it sounded like the following reasoning:
"if it's critical, then it has to be a _systems_ language, i.e. C or C++ (or
rust?)".

The author seems to contradict himself and be very confused about this.  If
you read the Shepherd paragraph, compare:

> The decision to write important system-level software in non-memory-safe languages such as C and
> C++ has been criticised. 

vs.

> my concern is that it’s written in Guile, an interpreted (or
> bytecode-interpreted) language with garbage collection – and

Why is it a concern now that the author just said doing the other way around is
criticized?  Argumentation is completely lacking.

> I see both the “interpreted” and “garbage collection” parts as undesirable for system-level software
> (especially for a potential init). 

Why?  How are the two related?  The author might be confabulating between kernel
and system-level.

> Interpreted software will be less efficient (if not in actual speed, since
> I’ll acknowledge that JITs can do amazing things, at least in memory usage)

So if not actual speed, then what is less efficient?  The author does not say...

Actually the more I read it, the more it sounds like a complete heap of
non-sense :D

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
  2018-11-08  4:12     ` Wayne
  2018-11-08  7:58       ` Pierre Neidhardt
@ 2018-11-09  5:18       ` Vladimir Sedach
       [not found]       ` <5be518c9.1c69fb81.90d67.495dSMTPIN_ADDED_BROKEN@mx.google.com>
  2 siblings, 0 replies; 8+ messages in thread
From: Vladimir Sedach @ 2018-11-09  5:18 UTC (permalink / raw)
  To: Wayne; +Cc: Help Guix

> thank you both Vladimir and Pierre for taking the time to respond.
> while i also thought that the article was not so well done, the point
> about using GC/JIT/etc. languages for "critical" software like init
> seemed somewhat worth investigating.  thus thanks again for your
> inputs.

Sorry, I should have given more details when mentioning BBN Lisp.

These investigations have already been done in the 1970s.

There were several operating systems built at Xerox PARC, in
Smalltalk and in INTERLISP, for various kinds of hardware (including
PCs with Intel microprocessors¹). There was the ZetaLisp based series
of operating system originating out of MIT. Takashi Chikayama²
implemented micro-controller Lisp systems on Intel processors starting
in 1976.³

Since that work in the 1970s, the only unsolved problem for using
dynamic languages in systems programming has been designing a hard
real-time garbage collector, and that has been solved in 2003 at
IBM.⁴


¹ https://oneofus.la/have-emacs-will-hack/2012-01-11-the-personal-computer-you-havent-heard-of.html
² http://www.logos.ic.i.u-tokyo.ac.jp/~chik/
³ http://www.softwarepreservation.org/projects/LISP/utilisp/utilisp/IPSJ-JIP1303003.pdfhttps://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon03Metronome.pdf

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
       [not found]       ` <5be518c9.1c69fb81.90d67.495dSMTPIN_ADDED_BROKEN@mx.google.com>
@ 2018-11-10  1:46         ` Maxim Cournoyer
  2018-11-13  4:22           ` Wayne
  0 siblings, 1 reply; 8+ messages in thread
From: Maxim Cournoyer @ 2018-11-10  1:46 UTC (permalink / raw)
  To: Vladimir Sedach; +Cc: Help Guix

Vladimir Sedach <vas@oneofus.la> writes:

[...]

> Since that work in the 1970s, the only unsolved problem for using
> dynamic languages in systems programming has been designing a hard
> real-time garbage collector, and that has been solved in 2003 at
> IBM.⁴
>
> ¹ https://oneofus.la/have-emacs-will-hack/2012-01-11-the-personal-computer-you-havent-heard-of.html
> ² http://www.logos.ic.i.u-tokyo.ac.jp/~chik/
> ³ http://www.softwarepreservation.org/projects/LISP/utilisp/utilisp/IPSJ-JIP1303003.pdf
> ⁴ https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon03Metronome.pdf

Interesting links! Thanks for sharing.

Maxim

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Shepherd and Guille
  2018-11-10  1:46         ` Maxim Cournoyer
@ 2018-11-13  4:22           ` Wayne
  0 siblings, 0 replies; 8+ messages in thread
From: Wayne @ 2018-11-13  4:22 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: Help Guix

Quoting Maxim Cournoyer <maxim.cournoyer@gmail.com>:

> Vladimir Sedach <vas@oneofus.la> writes:
>
> [...]
>
>> Since that work in the 1970s, the only unsolved problem for using
>> dynamic languages in systems programming has been designing a hard
>> real-time garbage collector, and that has been solved in 2003 at
>> IBM.⁴
>>
>> ¹  
>> https://oneofus.la/have-emacs-will-hack/2012-01-11-the-personal-computer-you-havent-heard-of.html
>> ² http://www.logos.ic.i.u-tokyo.ac.jp/~chik/
>> ³  
>> http://www.softwarepreservation.org/projects/LISP/utilisp/utilisp/IPSJ-JIP1303003.pdf
>> ⁴  
>> https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon03Metronome.pdf
>
> Interesting links! Thanks for sharing.
>
> Maxim

100% ditto. thanks again Pierre and Vladimir for the thorough and  
informative replies: lots to chew on that increases my interest in  
Guile and GuixSD.

peace, w

-- 
https://waynedpj.ingiro.xyz

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-11-13  4:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-31  0:39 Shepherd and Guille Wayne
2018-11-01  4:19 ` Vladimir Sedach
     [not found] ` <87o9b9ig4l.fsf@exinda.orion.oneofus.la>
2018-11-04  9:39   ` Pierre Neidhardt
2018-11-08  4:12     ` Wayne
2018-11-08  7:58       ` Pierre Neidhardt
2018-11-09  5:18       ` Vladimir Sedach
     [not found]       ` <5be518c9.1c69fb81.90d67.495dSMTPIN_ADDED_BROKEN@mx.google.com>
2018-11-10  1:46         ` Maxim Cournoyer
2018-11-13  4:22           ` Wayne

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.