freenode/#lisp - IRC Chatlog
Search
8:14:04
holycow
i have thought for a while now that someone could get a lisp os built and then use the linux kernel as an interface between it self and whatever hardware it wanted to talk to
8:15:06
White_Flame
given that you're not on highly constrained resources, the OS doesn't add a lot of practical overhead
8:15:29
holycow
instead of writing the kernel in lisp, leave that to linux or whatever kernel team you want
8:16:19
holycow
if you wrote your own userland in lisp, your 'kernel' would be interface between the userland and whatever kernel you used
8:16:38
holycow
and if you used native linux virtualization, each users would be fully virtualized natively
8:17:21
holycow
within the image you would still need to develop a security model so you would still need to have a kind of local kernel handling that
8:17:43
holycow
you would want to give users the option to run a fully set of security contexts or none ... as they see fit.
8:18:21
attila_lendvai
ACTION is very surprised by the Mezzano readme that claims to be an OS, but begins with a description of keyboard shortcuts...
8:18:53
holycow
attila_lendvai: at the level of mezanno there is no difference between userland, kernel and the text editor really
8:19:42
shka
holycow: i did not consider native virtualization, suddenly Lisp OS sounds a lot more reasonable
8:21:59
holycow
if i were to remove everything but the kernel and userland and throw mezanno on there as a virtual machine (someone far smarter than me would have to write that mezanno feature) you basically have that
8:22:37
holycow
shka: that is how i see it. someone would write the linux kernel <--> sbcl interface and voila
8:23:22
holycow
shka: mezanno is pefectly usable now. windows 3.1 doesn't work as well as mezanno and that had hundreds of paid programmers working on it
8:24:14
holycow
now we just gotta find some white knight with 100mil to throw around and pay some people to write this niche userland tha tno one will use
8:26:18
holycow
they simply assume they will be running on native hardware and have not really been "virtualized" ... and yet no one really uses linux out there
8:26:19
shka
well, i was thinking more about remote controling of industrial stuff and things like that
8:26:52
holycow
ah, right. that is probably the best case scenario as everything splinters. we end up in a niche of a niche somewhere
8:28:18
holycow
if they are cheap and and to the market first, they win, although i'm not a pessimist
8:30:57
shka
you could totally build cluster stuff as well but this crowd is all about java and python nowdays
8:31:07
holycow
as long as we are thinking about deconstructing things, if you think about the pc, i was looking at my motherboard the other day and wondered why is everything soldered on to the mobo
8:32:29
holycow
but then it occured to me, that i almost NEVER use the full power of my intel cpu. like ever, except gaming and some occasional 3d or graphics editing
8:32:57
holycow
what if the motherboard was just a set of expansion slots and your northbridge / southbridge was one card
8:33:18
White_Flame
you'd probably get higher latency, higher power consumption, and lower speed as well
8:35:59
holycow
understood. just pointing out that we currently are living with some old designs because they work and as you guys said they are cheap. BUT! we also live at a time when a whole bunch of new things are already possible
8:37:14
holycow
shrdlu68: no idea. but there is a 64 core arm based soc you can buy for 100 $ or so out there. i forgot the name
8:38:21
holycow
i have a pocket chip already, i pre-ordered one of these: https://pyra-handheld.com/boards/pages/pyra/
8:39:16
holycow
here are the dev costs for pyra: https://pyra-handheld.com/boards/threads/money-makes-the-world-go-round.80207/
8:41:21
White_Flame
although some decided to pay hundreds of euros more to "upgrade" to buying one of the newer models when it transfered to the new dragonwhatever guy
8:42:38
holycow
anyway, shrdlu68 i imagine it is doable but requires millions in dev costs to even contemplate.
8:43:11
White_Flame
and the original guy ("greg"?) started playing ponzi schemes with orders before it collapsed
8:43:53
White_Flame
ie, get new payments, use the money to get fewer older paid customers' item shipped
8:44:15
holycow
if you look at the videos on youtube for the pyra, the design is really neat. the main module with keyboard is separate from the cpu. either could be upgraded independently. i can imagine the idea of 'modular' computing starting to actualy bubble up even though google gave up on the modular phone
8:44:45
White_Flame
yeah, I think the design really hasn't changed since the openpandora days, except for parts that are no longer available
8:45:53
holycow
White_Flame: yeah, so i'm looking to see how much of my desktop i can recreate on the pyra and the pocket chip
8:46:22
holycow
my window manager is stumpwm and now that sbcl runs on arm i can run that on all of those devices
8:47:13
holycow
i'm learning some more lisp so i can write a small display helper (chooser i guess) so it is easier to start apps on touch screens and small screens
8:47:47
holycow
so kind of like that scene in terminator 2 where the chrome robot re-assembles it self, something is pulling it self together
8:49:14
holycow
the biggest issue is lack of 3d acceleration, the graphics chipsets are proprietary so that is a bummer.
8:52:07
holycow
https://www.youtube.com/user/EvilDragon1717/videos <-- a few of the last videos show you the statuts of the device
8:54:21
holycow
apparently he found a company in the eu that specializes in keyboard materials so he could get that keyboard pad built
8:54:32
White_Flame
but in any case, I think that phones/tablets have subsumed that fully portable form factor; keyboard is in theory nice, but I've worked on N900s and small bluetooth keyboards and such, and it's simply not really workable.
8:55:08
holycow
a) i run blackberry devices. keyboard is a must, i can type faster than anyone on any keboard. seriously.
8:56:55
White_Flame
well, I'd say that's irrelevant, because "top of the poor usability pile" is still in the poor usability pile
8:57:10
holycow
b) i have one of these: http://www.ebay.com/itm/Rii-Mini-2-4GHz-i8-Wireless-Keyboard-Mouse-for-PC-XBox-360-PS4-Android-TV-Box-/151686600304
8:57:21
holycow
the one in that picture has a terible kb layout, i have one with a better faster layout
8:57:52
holycow
White_Flame: not sure what the point is. for a mobile device you still need character input. you either do it with a physical kb or virtual
8:58:27
White_Flame
I've used tons of variations of touch keyboards and physical keyboards for many years
8:59:05
holycow
joga: i agree. i workde hard to get virtual keyboards to work well. the only one that comes close to usable is on the iphone for me.
8:59:11
White_Flame
the fact of the matter is that typing sucks in mobile/pocketable uses, so it's fine with the bare minimum anyway
8:59:20
holycow
i just gave up and went to blackberry physical keyboards. there is no point in wasting time.
9:00:13
holycow
White_Flame: totally understand what you mean. however, that mini wireless kb is what i use at home on my pc sitting in my chair to ssh and do sysadmin things. i have one with fast key travel so its pretty good.
9:00:16
joga
intarnet has become so bloated anyway the poor old maemo browser is struggling with even the simplest of pages because of all the javascript
9:01:15
White_Flame
holycow: yeah, I've been looking for a nice floating keyboard/mouse combo for the living room, where occasional use is fine for the RPi. However, that's not mobile use, where you're schlepping around both your screen-based device and external keyboard like that
9:01:17
holycow
so it is doable, the keyboard on mobile has not gone away imho. it works great. for users that just do simple texting android virtual kb is fine or whatever.
9:01:47
holycow
White_Flame: well no, i think we are miscommunicating. we are talkinga bout different things.
9:01:59
joga
something like this might be usable for my purposes though it's "bulky" https://www.indiegogo.com/projects/gpd-pocket-7-0-umpc-laptop-ubuntu-or-win-10-os-laptop--2#/
9:02:35
holycow
the pyra has 3g/4g built in ... so the moment that becomes viable, the pyra will take over my sysadmin stuff from a mobile device.
9:02:53
holycow
the phoen will just become for phone calls, i will no longer care about if my phone has a keyboard.
9:03:17
joga
this was also interesting but seems the people behind it may not deliver and linux support is questionable... https://www.indiegogo.com/projects/gemini-pda-android-linux-keyboard-mobile-device-phone#/
9:03:21
holycow
no that is useless for that, that is for home. i'm too lazy to use a proper keyboard when sitting on the couch.
9:04:50
White_Flame
I had a Jornada 720 back in the day, probably the best keyboard on such a device I've used
9:05:39
holycow
is separate keyboard use into two distinct categories: thumb oriented + palm oriented
9:06:11
holycow
if you cant use the gemeni with a thumb you are not going to really get much out of it
9:09:38
holycow
joga: i cannot find the link, but i have an old asus laptop almost exactly the same size as the gemeni
9:09:58
holycow
it was hard to use because it was just big enough that you could not thumb it, just small enough that typing was super cramped.
9:10:56
White_Flame
this channel is Common Lisp oriented, so if you're talking about Scheme or something it's better off in #scheme, etc
9:12:49
White_Flame
in any case, it's a good thing to be able to hop between environments and do the idiomatic thing that the language expects, instead of trying to lock into 1 thing and doing everything through that
9:13:25
White_Flame
if you want to get started with Common Lisp, you should have Emacs, SLIME (which interfaces between Emacs and the running Lisp), and Quicklisp to download libraries
9:19:52
holycow
White_Flame: the thing about the thumb keyboards is this: no two people can agree on the optimal keyboard layout
9:20:15
holycow
once you shrink a keyboard down, you split usability down to a single usecase per person.
9:21:32
holycow
that is the thing i'm really looking forward to with the pyra. theoretically, one ought to be able to get thumb keyboards built for their own needs ... although still stupidly expensive to do
9:29:51
argoneus
when I write sbcl, it only prints that it's free software but there's no interactive console
9:30:54
White_Flame
but you're at an interactive prompt where you can run the quicklisp installation stuff anyway
9:35:29
holycow
thanks for the inferno heads up earlier. this is a great watch: https://www.youtube.com/watch?v=3d1SHOCCDn0
9:36:05
White_Flame
but it could be that if sbcl doesn't even start up properly, that it won't start under SLIME either
9:36:30
White_Flame
my suspicion is that the terminal IO is funky and causes it not to work; shelling to it directly from emacs might alleviate that
9:37:36
White_Flame
you can do sbcl --load quicklisp.lisp --eval '(quicklisp-quickstart:install)' and see if it will run scripted like that
9:41:27
holycow
argoneus: i cannot help you on this. i have no idea about windows 10, especially the ubuntu thing they have
9:43:36
holycow
you want to use emacs nox and work out of a terminal instead of emacsx. emacsx seems to frustrate users of normal graphical interfaces
9:44:06
holycow
once you have those 3 packages, run emacs then m-x slime and you will get a connection to sbcl
9:44:43
holycow
then in emacs you can do c-x 1 or c-x 2 or c-x 3 to split up your shell window so you can code in emacs and see the slime at the same time
9:49:14
holycow
argoneus: my apologies i am not going to be of any use beyond this. i would just run ubuntu in virtual box instead
9:50:00
holycow
i would say it is quicker to download ubuntu iso and run it in a virtual box vm than building from scratch
9:50:18
holycow
building from scratch means you are still in a microsoft bastardized version of ubuntu
9:50:20
White_Flame
my laptop died, so I'm faced again with having to pay the microsoft tax on hardware before reinstalling linux over it. I hate that fact.
9:51:01
holycow
White_Flame: easy fix. only buy used hardware. someone else paid the tax and you get a know working unit, no new components to worry about :)
9:51:30
holycow
argoneus: yeah, i think you are trusting microsoft too much. get a plain ubuntu image run it in a vm and ssh with putty into it.
9:53:23
White_Flame
the thing is, environments like CL are generating their own machine code on the fly, and run their own ABI internally
9:57:39
White_Flame
get quicklisp to install slime, via quicklis-slime-helper or somesuch, should be on the quicklisp page
9:59:44
holycow
argoneus: i just download ubuntu desktop 14.04, installed the vm, installed emacs23-nox sbcl and slime and got slime up and running
10:00:35
argoneus
I don't see a reason why a binary from apt should be different from the one I downloaded
10:00:44
holycow
i just download 14.04, installed it in virtual box and got emacs and sbcl running in less time than you complaining here
10:18:08
holycow
apparently the author managed to get a hold of the k-machine hardware after the ownership collapsed into bankruptsy
10:21:03
shka
i kinda want to figure out how to develop kernel image that can be loaded directly with KVM
10:28:55
p_l
you might need to write some assembly that gives you the bootstrap necessary to start whatever lisp image you need
10:33:32
p_l
loading bare kernel you lack all kinds of services that might be provided by the environment you start in
10:34:06
flip214
shka: TBH, I'd go for a (docker-like) jail (using chroot and namespace support, virtual networking, etc.) and an lisp running therein as sandbox...
10:34:31
flip214
else you'll need to reimplement device drivers, filesystems, memory allocation (no mmap for you!), etc.
10:34:42
p_l
with let's say UEFI system you instead get a boot environment programmable in high level language (pretty much any language can be used) which can limit the need to interface with assembly even less
10:35:42
p_l
KVM emulates a bare metal environment with possibly some esoteric virtual hardware (like virtio-pci devices)
10:36:27
p_l
it would be much easier to make a driver for virtio 9fs than a full block device stack + filesystem, though
10:41:57
p_l
virtio bus is simplified, and for 9fs you only need essentially a simple message passing buffers
10:42:16
holycow
p_l: i emailed joe marshall, i'm curious to learn more about that project. that is so fascinating. thank you for the tip.
10:43:23
holycow
this channel blows my mind. unfortunately it is always on bloody european time. i'm not supposed to be awake right now.
10:48:40
p_l
heh, I opened the old CONS memo and found similar arguments for "simple unspecialized architecture" as I made :D
10:49:52
p_l
"Using a very unspecialized processor was found to be a Good idea for several reasons."
10:54:24
holycow
p_l: it totally makes sense. we are always slaves to the resources available in our curent time.
10:54:51
holycow
in the 70's and 80's specialized cpus seemed like the way forward as generalized processing was not established as it is today
10:55:33
p_l
it's more that there was a *lot* of ISAs, and a lot of assembly-level programming (and less proliferation or standardization between them)
10:56:10
p_l
also, I guess some of it was just like the use of extra dedicated languages, something often frowned about today but which was common then
10:56:37
p_l
so using a bunch of the same chip in different parts of the system running specialized software was not that uncommon
10:56:57
p_l
I think some of the IBM peripheral processors were essentially the previous generation mainframes running dedicated software
10:57:36
p_l
today, each IBM z "processor book" has one more CPU which runs special microcode instead of normal software and essentially implements some of the "hardware" that everything else uses
10:59:24
p_l
when main cpus weren't powerful enough, a lot was done through dedicated hw, then main cpus got faster, then some dedicated hw leapfrogged them, and so on and so on
10:59:56
p_l
Take for example audio - today, most people have audio hw that is less powerful in terms of computation than what I had in my first PC
11:01:00
p_l
holycow: because in the past, having a 16 channel hw mixer was necessary to actually have 16 sounds mixed together - or for example to have music through MIDI
11:01:41
holycow
p_l: i watch the 8bit guy on youtube. he actually explaine that (but for like 8 channels i think) on some popular chip in 80's consumer hardware
11:01:42
p_l
and the systems that didn't have dedicated processing hw but had present-day style audio, tended to have it single-user only
11:02:35
p_l
shka: virtio is a set of buses and devices, implemented among other things in KVM (by linux kernel) or QEMU (for emulated devices) and others. They are simplified because they don't have all the trappings of physical device
11:04:26
p_l
anyway, there exists a specification for transporting a 9P connection over virtual PCI device
11:04:38
holycow
the other crazy thing you might want to consider is looking at porting sbcl to plan9 / inferno
11:04:58
p_l
and QEMU provides a way to export a directory as filesystem accessible over that virtual PCI device
11:08:18
shka
holycow: actually i am under impression that in ideal world i would get plan9, smalltalk enviorment, make it one and lisp and be blown away by the awesomness
11:09:02
holycow
shka: if we are allowed to imagine such things without people telling us why it is a bad idea, it sure is sounding intersting.
11:09:04
p_l
technically you could export Plan9's network API over 9P to provide quick'n'dirty network support till you write a network stack in lisp
11:09:27
holycow
plan9 theoretically doesn't care about the underlying hardware, its purely a namespace + utilities
11:09:55
holycow
if you can let linux care about hardware ... hmmm. i have never thought about this before
11:10:57
p_l
holycow: If I wanted Linux to take care of hardware completely, I'd go even weirder way ;)
11:12:35
p_l
L4/Linux, with some kind of LispOs working as one process, and linux kernel running as another process, with servers providing use of the linux drivers to Lisp process over L4 IPC calls - which means that as your system matures, it can bring over more and more code inside
11:12:58
p_l
including possibly implementing the L4 API in lisp at one point and replacing the previous L4 implementation with your Lisp-based one
11:13:34
holycow
* the motherboard is just a set of pice16 slots (or something like that). first slot contains a card with the bios, north bridge, southbridge
11:15:00
p_l
holycow: what you described is however how one would build a computer back in time of ISA, UNIBUS, VME etc.
11:15:31
holycow
but, of course it was already done. why would anyone actually think this wasn't done 40 years ago.
11:15:47
p_l
I think there was even a frankenstein monster of two TI Explorer machines stuck in one card cage
11:16:34
p_l
holycow: by carefully specifying who had access to what addresses on the bus, they could share one card cage and even communicate over shared memory
11:17:31
p_l
(DEC did similar thing in software with their partitioning support in Alpha, which could run multiple VMS and Digital Unix systems simultaneously by simply not telling them of hardware that was allocated to others)
11:17:32
holycow
i have been looking at our servers for years now and thinking that instead of inserting hard drive trays into the backplanes, could that be generalized so that you can input cards for various functionality.
11:18:14
p_l
holycow: passive backplane systems are lousy in terms of performance, which is why we no longer use them even for disks
11:18:26
holycow
but then, you could have backplanes on either side of the case. one the back you insert backplanes for whatever connector type you need (hide the cables) on the front you can have cards that add am/fm radio and whatever.
11:19:23
p_l
SAS, PCI-E (and DisplayPort, too) are all based on network passing messages, with routers etc.
11:20:05
p_l
holycow: at low enough level, all three of them sent around small packets of data with addresses ;)
11:20:33
p_l
(PCI-E and DisplayPort even share the same physical layer stuff, differing only in higher level protocols)
11:20:40
holycow
it makes sense the way you type it, i had no idea the packets had an address space. i thought it was all direct.
11:20:54
holycow
but if you think about it, of course it can't be direct. there is too much going on.
11:21:22
p_l
depends on how you build it, but without addresses, you can't have switches, so you'd be limited by amount of links a single chip can have
11:23:38
p_l
holycow: most modern CPUs are also networked between themselves to support multi-cpu, instead of using common shared bus
11:24:08
holycow
a couple of years ago, a programmer blew my mind when he explain that x86 is no longer x86 underneath either
11:25:04
p_l
holycow: well, depends on how you describe it, but in general all x86 cpus (I think ever) were microprogrammed even if it was 1:1 from x86 instructions to internal component states
11:26:01
p_l
holycow: most of the "big" CPUs in the older times were microprogrammed, some quite extensively
11:26:13
fiveop
`sbcl --non-interactive --eval "(dotimes (i 2) (print i))" | head -n 1` results in a broken pipe error in sbcl. That makes sense to me. How would I go about getting a common lisp (or probably any) application to handle that gracefully?
11:28:15
fiveop
Having asked the question, I get an idea. A HANDLER-CASE for STREAM-ERROR might be a good starting point.
11:28:25
p_l
holycow: that was often because they were made from much different components - for example, KS10 cpu (on which a lot of lisping was done) was made from 4-bit chips from AMD (for 36bit system)
11:31:27
p_l
holycow: you could chain ALUs to provide longer word, and you'd have a control store and some circuitry that would take an instruction from main memory, locate its definition in microcode memory, and execute said microcode (often by simply pushing the microcode memory outputs onto "operation" inputs of the ALUs etc.
11:35:51
holycow
okay so, we have p_l's super weird os. step #2, get $100 mil and fund the development
11:36:16
holycow
bill gates is wasting his time trying to save billions of people from tuberculosis. he should be funding this.
12:04:13
phoe
Since I think that SICL is advanced enough for such a video/presentation to be created.
12:04:42
phoe
So, since shka passed on the offer, I'll gladly accept the explanation from you, beach :)
12:05:02
shka
beach: we had discussion about smalltalk style version control software in lisp, and SICL just poped up
12:12:34
beach
phoe: Basically, I think of SICL as a collection of modules, implementing various parts of the Common Lisp standard. The difference between those modules and existing modules in other implementations has to do with modern programming practice, test, documentation, and especially implementation-independence.
12:13:44
beach
phoe: Now, some people have interpreted this collection of "modules" to mean that they can write a primitive Common Lisp in (say) C, and then start loading SICL modules to obtain a complete implementation. That is not the case.
12:13:51
holycow
are there any changes to the spec at all? or is it just a re-organization with addong tools?
12:14:37
beach
phoe: The `modern programming practice' part involves using the full Second Climacs language, and especially more generic functions that most equivalent existing modules do.
12:15:06
holycow
yes sir. may apologies for interrupting, i did not realize you are in a stream of thought
12:15:33
phoe
holycow: it's IRC, we interrupt each other all the time and most of us don't really care and just keep typing
12:15:48
beach
phoe: A large part of SICL is Cleavir, an implementation-independent framework for writing Common Lisp compilers.
12:16:52
p_l
beach: one kinda needs full CL first to load the stuff and probably use Cleavir to write a code-generating compiler, right?
12:16:53
phoe
Got it. So, standard Common Lisp with a lot of pressure on generic functions, correct?
12:17:25
beach
phoe: I don't think it has ever been attempted before to write an implementation-independent compiler for Common Lisp.
12:18:50
beach
So, one example that appears to baffle people is that SICL LOOP uses LOOP for its implementation.
12:19:34
beach
But there is no contradiction here, because the LOOP macroexpander runs at, well, macroexpansion time, which will happen in the host Common Lisp system during bootstrapping.
12:21:01
p_l
beach: I proposed, in discussion with shka and phoe, that SICL could be used as base to implement extensions to existing CL implementations, maybe providing impetus for CDR process by making it easier to implement proposals
12:21:03
phoe
beach: haha, I asked that question to you at ELS16. I'm still amazed by the explanation I got from you back then.
12:21:07
beach
One of the first modules I started was the "sequence functions" module. It has taken me three attempts to finally have an acceptable strategy for how to do it. And I haven't even finished implementing the module according to that strategy (which is in the ELS paper this year).
12:22:39
beach
My secret hope is that the SICL modules will be better than the native ones in many respects, so that implementations would prefer the SICL ones. The net result would be that we can cut down on total maintenance of all Common Lisp implementations.
12:24:10
p_l
beach: I wonder how amenable to community extensions the commercial lisps would be. While some consider it "not a problem", I would prefer to not have a split between commercial lisps with their proprietary libraries and open source world
12:24:11
beach
p_l: I think that's the essence of the idea. The only remaining part is that, once I have all the modules (I pretty much do), there would be no reason to refrain from creating a complete Common Lisp implementation out of them.
12:24:52
p_l
beach: arguably it could be even a hosted implementation, kinda like "future-common-lisp" on Symbolics etc.
12:25:44
beach
p_l: I haven't really given any thought to extensions. I have given some thought to an updated standard, but it would only fix obvious bugs and especially define many things where the current standard leaves them undefined.
12:27:23
p_l
I was thinking mostly of extensions that would "open up" hackability of the implementation - like user-extensible hashtables from CDR#2, extensible sequences, etc.
12:28:38
beach
p_l: One thing might interest you then. I think in SICL, because I have faster generic dispatch, fewer things would be made out of ordinary functions and built-in classes, and more things out of generic functions and standard classes.
12:29:25
beach
p_l: That way, it would be easier to create subclasses, or entirely different classes participating in the same protocol.
12:30:15
p_l
I was thinking of something like that for other implementations, possibly with some extra-fast-path for normal calls and extension mechanism for others
12:30:47
beach
That might be necessary in implementation that insist on keeping the slow, native, generic dispatch. :)
12:33:57
shka
beach: so basicly, i need full lisp implementation (let it be ecl since it seems to be very portable) to bootstrap actual implementation, right?
12:34:55
beach
shka: Yes. Though right now, the bootstrapping is not complete, so there is no point in trying.
12:36:55
beach
shka: That's the plan. The compiler is a big, customizable module though. The word "framework" is more appropriate. And it exists. Clasp is using it for its good compiler.
12:39:12
shka
once this will be adopted (and it should get adopted) we will be able to actually extend language by providing additional modules
12:39:12
beach
Cleavir, the compiler framework, is particularly interesting I think. It uses CLOS to allow implementations to customize it for their needs. And I plan to implement a bunch of standard compiler-optimization techniques on intermediate code, plus some of my own.
12:41:14
phoe
shka: we will have CLUS that I expect to be another central point when it comes to docs.
12:41:34
phoe
beach: I allowed myself to become an editor and edit the IRC logs into a description of SICL.
12:43:00
beach
Now, I don't have any great hopes that existing implementation will actually ditch a single line of code in favor of the SICL equivalent. But then, a lot of what I have done so far has been publishable (because it is original work) and I intend to continue with new such things. So either way, I can justify my salary.
12:44:47
phoe
beach: but I can see a possibility where implementations can simply make a tiny abstraction layer over their own modules, so they're "pluggable" and allow the user to choose e.g. what implementation of LOOP or the Lisp reader to use.
12:47:53
beach
Oh, another SICL invention is that of first-class global environments. I firmly believe that they are a requirement for a safe Common Lisp environment, and I believe such an environment is a requirement for a LispOS. But the recent discussion I read seems to go a completely different direction.
12:49:33
beach
When I hear the word "kernel" I space out, because (at least the way the word is typically used) I think the concept of a kernel is (or should be) a historical parenthesis.
12:53:41
beach
For my opinion on "kernels" see section 1.2.5 (PDF page 10, document page 6) of this document: http://metamodular.com/lispos.pdf
13:08:34
beach
holycow: so when you wrote: "it would make more sense to generalize the [lisp] os out into userland and then write native interfaces into whatever kernel you want to target ...", I didn't quite understand what you meant.
13:10:12
holycow
what i meant by that statement is that the most challengin part for any os is accessing hardware.
13:11:22
holycow
why not let the linux kernel handle interacting with the hardware and let the lisp os handle the userland and beyond.
13:11:58
holycow
the naiive assumption being that you can either do this via cffi interfaces or perhaps by writing a kernel 'driver' that lisp can talk directly to
13:12:24
holycow
there are downsides as the linux kernel is a very special beast. as would ever kernel be.
13:13:23
p_l
well, kernel is technically a quite modern way of defining the OS, partially because of certain common characteristics which led to certain.... layout of code
13:13:38
beach
p_l: Basically, avoid hashing and memory accesses. Number the classes, and compare small integers, some of which are constants: http://metamodular.com/generic-dispatch.pdf
13:14:37
beach
holycow: I can very well imagine using the Linux kernel to access the machine, which is why I think "bare metal" is a low priority. But I also don't want to use the abstractions proposed by the Linux kernel (everything is a byte stream, etc).
13:15:24
p_l
beach: (un)fortunately "everything is a byte stream" is not that much common as one would think on linux...
13:15:56
p_l
that said, doing it using L4 as core and having "hw servers" on linux might be much easier
13:17:59
p_l
shka: there exists L4/Linux, which is Linux running on top of L4-family microkernel as userland process
13:19:21
p_l
shka: usually it's done so that the Linux provides hw drivers but can be pre-empted by another process on same-level in hierarchy
13:19:21
holycow
probably because microkernels have a security model built into them ... they are a bunch of servers talking to each other from what i understand
13:20:07
holycow
and be isolated securely as well so if the driver krashes the microkernel does not. not sure how it applies to linux tho
13:20:35
p_l
the linux kernel in systems based on L4/Linux runs at lower priority compared to "main" application
13:22:53
p_l
well, L4 delegates pretty much *everything* outside of scheduling and IPC to userland processes, including any kind of device access. Linux just runs as a process there and gets device-related resources delegated to itself
13:24:32
p_l
beach: I strongly suspect that anything that is workable would, in the end, remind in implementation details a file system, even if not from top-level developer view. But I think this requires a nice whiteboard with colored markers and hour or two for discussion somewhere quiet :D (next ECLM/ELS?)
13:28:06
p_l
beach: an interesting quote from a filesystem developer: "Database people sometime get really surprised when it shows up that we talk same language and ask what database I'm working on." ;)
13:29:01
p_l
beach: There are many practical considerations to have a wildly different view of disk vs. ram, though - though it doesn't mean software and end user can't see it as one
13:29:43
p_l
(including many chances for fun stuff to happen in the transforms involved between what's on-disk and what's in-memory)
13:32:26
phoe
If I simply get 4 GB of RAM and 40 GB of HDD swap space and call SBCL with 44G of heap, then it theoretically should work, right?
13:33:20
phoe
Then it stores some of its data on hard drive, and then a full garbage collection is initiated.
13:33:54
phoe
Won't the system slow to a halt because of all the swapping required by GC and happening because of a huge swap space?
13:36:14
holycow
shka: beaches lisos specification of a lis operating system covers everything we chatted about this morning really
13:36:43
beach
p_l: How do existing systems handle this problem? Like what does Linux do to verify the transfer from "swap space" to RAM?
13:38:17
beach
phoe: My estimation is that the vast majority of all data on a computer consists of videos and photos, i.e. data that is not required to be scanned by the GC.
13:38:20
shka
basicly your ram is pool of fresh objects, HDD is pool of older objects that were swapped out
13:39:00
beach
phoe: Such data would never be paged in, unless it is required by an application for viewing or listening.
13:40:31
beach
The correct term is "paged out". The term "swapping" refers to moving entire processes between RAM and disk. But I know, it has been abused by Unix derivatives.
13:45:16
beach
p_l: I frequently find myself in situations like this. I.e., I have some improvement to suggest. But then, suddenly, I am not only asked how that improvement works, but it is demanded that I improve on EVERYTHING.
13:45:19
beach
And if I can't, I feel like my initial improvement is rejected. For example, recently, I talked about Second Climacs and its improved incremental parser. Suddenly, I was asked how it would handle a user-defined reader macro that forks the input stream and reads it later. I mean, I can't do that, but neither can Emacs or any other editor.
13:46:48
p_l
beach: most operating systems don't checksum swap space at the moment directly in swapping code. Some systems do verification at lower layer in the stack, essentially guaranteeing that "this page I just copied from disk was not corrupted by outside influence"
13:46:57
beach
phoe: There are some great new GC techniques around. For one thing, most GC invocations would be thread-local. Others would be incremental and concurrent.
13:48:43
p_l
beach: I think a little bit of that is that us Lispers are just used to this crazy powerful thing, and when someone speaks of something novel we go "aha! now I could do something like this... could I actually do something like this?"
13:49:39
beach
p_l: Possibly, but it gets very tiring and boring, at least to me. It makes me not want to discuss much of what I do. Which is why I most often don't.
13:49:47
p_l
holycow: some users are just used to software sucking so much and being impossible to modify that they accept things and go on shoveling dirt chained :)
13:49:56
holycow
i was once at a lug and some nice people were in there showing off some programming tricks they used to do some spam blocking and all the users started talking about this antivirus vs that solution
13:50:22
p_l
beach: yeah. I try to not give out that vibe, but I am unfortunately a bit of "well-actually know-it-all" ^^;
13:53:23
argoneus
is there a clean way to write a function that returns whether a given list has an even amount of items?
13:55:47
p_l
beach: I was generally imagining a much more complex system than just swapping to disk and back (even with checksums), because of practical reasons, distribution of code, etc.
13:56:20
p_l
Using something like ZFS, but instead of emulating POSIX semantics on top use the underlying object graph more directly, with first-class *images* even
13:56:27
beach
p_l: See, that's one of the problems I have not yet solved. Others would be eliminating wars and famine.
13:57:30
p_l
beach: I was more worried about getting an end result similar to how you install ITS from scratch on real hw, or avoiding cases like "how do you bootstrap CMUCL?????"
13:58:47
p_l
beach: oh, sure! It's fascinating thing, and in no way I'm arguing you should be the one to fix it
13:59:11
beach
argoneus: Do you just want to know whether the total length of the list is even or odd? Or are you counting a particular item?
13:59:12
p_l
but if we had something generally hackable to start with, I'd be very tempted to spend some time hacking on it
13:59:44
beach
argoneus: Are you counting ALL items in the list, or the occurrences of a particular item, like 234?
14:01:34
phoe
argoneus: but I'd use a helper variable in this case if I was implementing such a function
14:04:05
beach
p_l: Plus, I have come to realize that, even if we had money to throw at the problem, it would not help. All Lispers that are qualified enough to help out are already fully employed.
14:06:10
beach
phoe: I was thinking more of the type of money I could afford myself and that might be possible to get from crowdfunding.
14:06:43
beach
p_l: Oh, I do too. But the ones I know would not be able to do the job I would ask from them.
14:09:09
p_l
that said, I should ask trinitr0n if he has one... man is doing Good Work by preserving Lisp Machines
14:15:33
shka
well, the problem here is that you need experts, but current experts are busy and future potential experts are getting expertise in other areas
14:17:24
beach
shka: Alternatively, we need an expert project planner who can extract individual tasks and suggest them to non-experts.
14:20:11
beach
phoe: Good documentation makes it faster for someone who has already decided to become an expert to do so faster, and for someone who is already an expert to become even more productive.
14:20:52
beach
phoe: I think we need to find a way of turning people who don't know how to become experts into experts.
14:22:22
p_l
ACTION is stuck trying to teach his gf, and not because of her having problems learning...
14:23:22
p_l
especially when, like me, you want to do it right and thus you start looking towards at least skimming CS proper
14:24:30
beach
There is also the problem of transmitting things that are not just knowledge, but also inspiration, desire to learn, estimating things (engineers acquire that over many years), etc.
14:25:27
beach
phoe: Example: How much data is there on a typical desktop computer that is NOT just videos, sound, and text?
14:26:44
beach
phoe: See, you are already determined to become an expert. So it is easy to generalize and think that everyone else is just like you. It just aint so.
14:27:38
beach
phoe: And that's the mistake that nearly all professors make as well. They assume that the students are young versions of themselves. It just aint so.
14:28:54
p_l
beach: another common problem especially *outside* academia is getting the basics of basics so you can go on to "interesting stuff"
14:28:56
phoe
beach: I'll turn your question the other way - how possible it is for other people to become determined to become an expert?
14:29:32
phoe
Because, okay, I am determined. Why? What are the causes? Can one influence that choice or the causes?
14:31:41
p_l
beach: imagine you're trying to teach someone programming, from start. It's not academic environment, they are not students who are "by default" going to try to get the assignments done
14:32:01
Reinisch
if you find someone that doesn't know how to add, and you try to teach them addition,
14:32:19
p_l
beach: my issues were - how do I make it not entirely abstract at start? How do I prevent discouragement due to lack of visible progress?
14:32:28
Reinisch
you may run into the problem of them not really being interested or invested in learning addition
14:32:57
Reinisch
but if you take that same uninterested person and make them have a problem that addition will solve...
14:33:37
p_l
How do I balance my desire to give "proper" tools and education vs. what is readily applicable in workplace? Especially when the latter often involve byzantine smoke-and-mirrors boilerplate that isn't easy to explain to someone who just wants to program the computer to get something to happen
14:33:53
Reinisch
suddenly you teaching them addition is amazing and helpful and they care and are invested.
14:34:31
beach
p_l: Yes, I see. But you overestimate typical university students. They want to get a degree with as little effort as possible. They are not particularly interested in learning the material.
14:34:49
p_l
beach: in a way, had we had a more programmable and inspectable computers, I'd have less of a problem - I'd show them how to play around in a REPL to bend the programs to do what they want
14:34:52
Reinisch
so, to round-about answer phoe's question to beach: how possible it is for other people to become determined to become an expert?
14:35:30
p_l
beach: oh, I'm not overestimating them... with university students I just have the stick as available device, not just carrot
14:35:49
beach
Reinisch: Well, professors who fail over and over again typically declare that "It is not possible to teach people who don't want to learn". It is a very comfortable opinion to have.
14:36:14
p_l
beach: a student, if they want a degree, even as fast and easy as possible, gets to deal with exams and assignments etc. - if they don't do them, well, bye bye diploma
14:36:42
Reinisch
usually people that want to learn magic tricks have the problem of not being able to confuse/surprise their friends
14:37:07
p_l
(I'm probably a bit of outlier, as I entered university with huge desire to learn only to face non-academic problems breaking me down)
14:37:43
p_l
beach: Sometimes cheating works, but I don't think cheating on my university exams would have been easy or applicable
14:38:21
p_l
you might cheat on assignments, maybe even on dissertation, but exams tended to be harder
14:38:23
beach
p_l: You would be surprised. One time, I caught one student using his cellphone to take a photo of his exam and sent it to another student in the same room.
14:39:25
Reinisch
but the overall point I'm making is that all the questions I'm seeing about how to engage a potential student, or how to get through basics toward fun stuff...
14:40:02
Reinisch
a lot of those questions seem more approachable (to me) through a framework of not trying to solve a problem that someone doesn't yet have
14:40:06
p_l
and anyway, if I were a lecturer or worse at university, I wouldn't care about cheaters - I would care to find those who want to teach and let cheaters fall on their own cheats
14:41:18
p_l
I would not be invested in a cheating student out of 100 who fails exam where they suddenly have to think by themselves
14:42:11
p_l
I would be invested when teaching someone 1:1 something they do want to learn, but they asked me precisely because just forcing through books and trial and error isn't appreciable use of time, anymore
14:42:17
beach
Sure. Anyway, there seems to be a need, either to turn non-expert Lispers into expert Lispers, or to organize projects so that non-experts can contribute.
14:43:04
p_l
and given that I personally learnt nearly everything through tinkering and trial and error and ancient dusty tomes speaking of FORTRAN77 as new language...
14:43:33
beach
p_l: Yes, introspection. I know it well. It has very limited success when applied to others.
14:43:39
p_l
(or of Common Lisp as recent standardization effort for an enterprise-class Lisp language)
14:45:35
p_l
my first two contacts with Lisp involved a book about AutoLISP and another about Scheme (titled, actually, "The Programming Language LISP")
14:47:16
discardedes
i recently read Object Oriented Programming in CL by Sonya Keene, and I feel like I finally get OOP in a much better way
14:47:50
beach
discardedes: If you feel that way, I highly recommend you read the CLIM II spec. That's how I REALLY got it.
14:48:46
nyef
Mmm. The CLIM II spec is dreadful in several respects, but in terms of its use of object oriented techniques it is very good.
14:49:20
shka
not really about lisp but Transaction Processing: Concepts and Techniques is surprisingly worth reading
14:51:00
p_l
discardedes: I think the book was pretty good, it was I think even a book written purely in polish, but I can't find it
14:52:56
p_l
the book actually talked about Scheme, specifically T, but wasn't dogmatic about what is what in lisp ;)
14:53:05
discardedes
Ive been working on modifying emacs in a way to suite how I want to work on it, and ive been thinking about how an interface design might be designed with oo technique
14:56:03
discardedes
i think one way to create a culture would be to have some very user freindly social networking software developed for the culture
14:57:56
p_l
well, there are two big lisp communities outside of Scheme and CL or Clojure - Emacs Lisp and *AutoLISP*
15:00:20
p_l
phoe: I try to ignore the "shitty intro lecture at CS dept that everyone ignores because it talks about weird ancient languages that we won't ever use"
15:01:42
p_l
which leaves with people who remember few things like "lisp is old, slow, and written in all caps"
15:07:27
discardedes
beach: haha! The CLIM II spec is exactly the kind of stuff Ive been thinking about!
15:08:04
phoe
I want to discuss a few things regarding both of these options in the context of what Reinisch said above.
15:08:45
beach
phoe: Out of the question. In the evening I spend time with my (admittedly small) family.