Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sat 20 Oct 2018, 19:53
All times are UTC - 4
 Forum index » Off-Topic Area » Programming
What does the LLVM library do and how badly do we need it?
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 2 [29 Posts]   Goto page: 1, 2 Next
Author Message
musher0

Joined: 04 Jan 2009
Posts: 12827
Location: Gatineau (Qc), Canada

PostPosted: Tue 26 Jun 2018, 00:16    Post subject:  What does the LLVM library do and how badly do we need it?
Subject description: (SOLVED)
 

Hello all.

As the title says.

We have this huge LLVM library in the pup*.sfs of all Puppies. I read in the
wikipedia article about it that it is mostly good to help execution of programs
written in the Haskell and Java languages.

Maybe I understood this wrong, which is why I'm asking.

It's pushing 50 Mg's, so if we only need on certain occasions, why not make a
separate sfs of it, that people could load as needed? It would be a nice way to
trim down our future Pups.

TIA for any insights. BFN.

_________________
musher0
~~~~~~~~~~
Fidèle elle commença, ainsi elle restera. (Prov. canadien) /
Faithful she began, so will she stay. (Canadian prov.)

Last edited by musher0 on Tue 26 Jun 2018, 14:47; edited 1 time in total
Back to top
View user's profile Send private message 
s243a

Joined: 02 Sep 2014
Posts: 1220

PostPosted: Tue 26 Jun 2018, 00:27    Post subject:  

Here's some stuff from google:
Quote:

LLVM is an abbreviation of "Low Level Virtual Machine"; LLVM is:

A compilation strategy
A virtual instruction set
A compiler infrastructure

https://wiki.haskell.org/LLVM

Quote:

LLVM is written in C++ and is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages. Originally implemented for C and C++, the language-agnostic design of LLVM has since spawned a wide variety of front ends: languages with compilers that use LLVM include ActionScript, Ada, C#,[4][5][6] Common Lisp, Crystal, CUDA, D, Delphi, Fortran, Graphical G Programming Language,[7] Halide, Haskell, Java bytecode, Julia, Kotlin, Lua, Objective-C, OpenGL Shading Language, Pony,[8] Python, R, Ruby,[9] Rust, Scala,[10] Swift, and Xojo.

https://en.wikipedia.org/wiki/LLVM
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 3497
Location: Worcestershire, UK

PostPosted: Tue 26 Jun 2018, 02:06    Post subject: Re: What does the LLVM library do and how badly do we need it?  

musher0 wrote:
We have this huge LLVM library in the pup*.sfs of all Puppies. .....
It's pushing 50 Mg's, so if we only need on certain occasions, why not make a
separate sfs of it

It's a dependency of many xorg/xserver drivers so these may not work if it is removed.
Those drivers could possibly be compiled specially for Puppy but that is a big job (out of interest does BarryK have LLVM in his Easy builds?? I think he may be on a much older version of xorg??)
Shipping a separate sfs in the iso would not reduce the iso size.....

So LLVM is a necessary evil from building Pups from components provided by other systems I'm afraid.

p.s. llvm-cut contributes c. 12.6MB to the iso size.....50MB is the amount of memory it occupies once loaded.

_________________
LxPup = Puppy + LXDE
Back to top
View user's profile Send private message Visit poster's website 
musher0

Joined: 04 Jan 2009
Posts: 12827
Location: Gatineau (Qc), Canada

PostPosted: Tue 26 Jun 2018, 04:14    Post subject:  

@s243a: thanks for the additional info.

@peebee: also thanks for your reply.

However, on this trimmed xenialPup-706, I've transplanted the LLVM lib to the devx. I've
been running this Pup for 4 hours in a row without LLVM without any problems. Are
you sure this LLVM thing is not some kind of folklore or overstatement? You're an
experienced dev, of course, and I want to believe you, but what you say and my hands-
on experience do not jive.

I remember having had a similar conversation with former member ASRI. (It's on this
forum somewhere.) He ran his educational Pup without LLVM for a while and had no
problems.

How do we test this LLVM lib, to be sure it is needed by us simple mortals? Does it
leave a trace when it kicks in or after it has done so?

BFN.

_________________
musher0
~~~~~~~~~~
Fidèle elle commença, ainsi elle restera. (Prov. canadien) /
Faithful she began, so will she stay. (Canadian prov.)
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12827
Location: Gatineau (Qc), Canada

PostPosted: Tue 26 Jun 2018, 04:22    Post subject:  

Hello again, peebee.

This is the the size of the LLVM on my xenialPup-706:
Quote:
[/usr/lib]>lg -h *LL*
lrwxrwxrwx 1 16 jun 20 19:03 libLLVM-4.0.so -> libLLVM-4.0.so.1
-rw-r--r-- 1 51M oct 20 2017 libLLVM-4.0.so.1

If you know of a smaller implementation, and where to find it, please let us know?

TIA.

_________________
musher0
~~~~~~~~~~
Fidèle elle commença, ainsi elle restera. (Prov. canadien) /
Faithful she began, so will she stay. (Canadian prov.)
Back to top
View user's profile Send private message 
Sailor Enceladus

Joined: 22 Feb 2016
Posts: 1546

PostPosted: Tue 26 Jun 2018, 08:16    Post subject:  

I think if you build Slacko 14.1 it doesn't need llvm, but 14.2 uses it for some drivers. Maybe it's the same for Tahr vs. Xenial.

One way to see what may use it is to remove llvm with "Remove Builtin Packages" then run checkdeps / from terminal:
http://www.murga-linux.com/puppy/viewtopic.php?p=958690#958690
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12827
Location: Gatineau (Qc), Canada

PostPosted: Tue 26 Jun 2018, 08:59    Post subject:  

Many thanks, Sailor Enceladus.

@peebee: the github page for llvm-cut does not exist anymore.

Does anybody have a lead?

TIA

_________________
musher0
~~~~~~~~~~
Fidèle elle commença, ainsi elle restera. (Prov. canadien) /
Faithful she began, so will she stay. (Canadian prov.)
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 3497
Location: Worcestershire, UK

PostPosted: Tue 26 Jun 2018, 14:05    Post subject:  

musher0 wrote:
Many thanks, Sailor Enceladus.

@peebee: the github page for llvm-cut does not exist anymore.

Does anybody have a lead?

TIA

Testing branch is recently different to master:
https://github.com/puppylinux-woof-CE/woof-CE/tree/master/woof-code/packages-templates/llvm-cut

https://github.com/puppylinux-woof-CE/woof-CE/blob/testing/woof-code/packages-templates/llvm-cut_FIXUPHACK

_________________
LxPup = Puppy + LXDE
Back to top
View user's profile Send private message Visit poster's website 
musher0

Joined: 04 Jan 2009
Posts: 12827
Location: Gatineau (Qc), Canada

PostPosted: Tue 26 Jun 2018, 14:46    Post subject:  

Hi peebee and all.

In other words, nothing at the moment. Thanks for being so frank!

In any case, I wasn't asking about our Puppy situation, but generally, if there exists
a trimmed down LLVM library.

I ran the test suggested by Sailor E. and got pretty much the same results.So the
utility of this LLVM lib is pretty much limited to Puppyists with fancy video cards.

So from now on, LLVM will be a separate sfs in my Pups: those who need it,
download it. Same as we've been doing for ages, with the devx. In so doing, we'll
be shaving 51 Mb's unpacked (or 29 Mb's squashed) off the iso for the majority
who don't need it.

Why make the majority pay -- download wise -- for the needs of the few.

Finally, this thread WAS useful. Thanks to all who contributed.

_________________
musher0
~~~~~~~~~~
Fidèle elle commença, ainsi elle restera. (Prov. canadien) /
Faithful she began, so will she stay. (Canadian prov.)
Back to top
View user's profile Send private message 
rcrsn51


Joined: 05 Sep 2006
Posts: 12324
Location: Stratford, Ontario

PostPosted: Tue 26 Jun 2018, 16:15    Post subject:  

At some point in the Puppy past, the decision was made to include accelerated video (mesa/dri). This would let users run things like Google Earth OOTB. This is how LLVM gets introduced.

So another approach is to remove all the mesa/dri stuff from the woof build.

Users can add it (and all the dependencies) as needed. This is how Stretch-Live handles it.
Back to top
View user's profile Send private message 
dancytron

Joined: 18 Jul 2012
Posts: 1143

PostPosted: Tue 26 Jun 2018, 16:19    Post subject:  

rcrsn51 wrote:
At some point in the Puppy past, the decision was made to include accelerated video (mesa/dri). This would let users run things like Google Earth OOTB. This is how LLVM gets introduced.

So another approach is to remove all the mesa/dri stuff from the woof build.

Users can add it (and all the dependencies) as needed. This is how Stretch-Live handles it.


Thinking out loud.

So, a compromise approach might be to use ydrv*.sfs or one of the other *drv*.sfs files to hold LLVM and all the mesa-dri stuff. Normal users that want Accelerated video out of the box could just leave it be and those who would rather save 50 Meg can delete it from their frugal install.

Last edited by dancytron on Tue 26 Jun 2018, 16:52; edited 1 time in total
Back to top
View user's profile Send private message 
rcrsn51


Joined: 05 Sep 2006
Posts: 12324
Location: Stratford, Ontario

PostPosted: Tue 26 Jun 2018, 16:28    Post subject:  

You would need to determine something first. Do sfs modules get loaded BEFORE X starts?

I used a similar trick in Devuan live where I put the firmware required by the radeon video driver in a squashfs module. It DID get loaded first and X started.
Back to top
View user's profile Send private message 
dancytron

Joined: 18 Jul 2012
Posts: 1143

PostPosted: Tue 26 Jun 2018, 16:57    Post subject:  

rcrsn51 wrote:
You would need to determine something first. Do sfs modules get loaded BEFORE X starts?

I used a similar trick in Devuan live where I put the firmware required by the radeon video driver in a squashfs module. It DID get loaded first and X started.


I think the answer to that for *drv*.sfs files is "Yes" they are loaded before X gets started. Regular ones, I'm not so sure.

See http://www.murga-linux.com/puppy/viewtopic.php?p=906486#906486
Back to top
View user's profile Send private message 
rcrsn51


Joined: 05 Sep 2006
Posts: 12324
Location: Stratford, Ontario

PostPosted: Tue 26 Jun 2018, 17:18    Post subject:  

If not, an X restart might be required.

As a proof-of-concept, I made a squashfs module of libgl1-mesa-dri + mesa-utils. I dropped it into a Debian-live frugal install and it appears to be working.
Back to top
View user's profile Send private message 
dancytron

Joined: 18 Jul 2012
Posts: 1143

PostPosted: Tue 26 Jun 2018, 17:47    Post subject:  

rcrsn51 wrote:
If not, an X restart might be required.

As a proof-of-concept, I made a squashfs module of libgl1-mesa-dri + mesa-utils. I dropped it into a Debian-live frugal install and it appears to be working.


I don't do it anymore, but I used to use apt2sfs to make an sfs with libgl1-mesa-dri, mesa-utils, the realtek drivers for my ethernet, and a few other things. It worked fine.

For Puppy, it seems like an *drv*.sfs with mesa, mesa-utils, llvm, and some of the less common video card drivers would be worth someone trying.
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 2 [29 Posts]   Goto page: 1, 2 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Off-Topic Area » Programming
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0580s ][ Queries: 12 (0.0082s) ][ GZIP on ]