freenode/#lisp - IRC Chatlog
Search
16:25:44
optikalmouse
this is about perl, but it's still nice and how I feel whenever I write anything lispy: http://blogs.perl.org/users/zoffix_znet/2016/01/why-in-the-world-would-anyone-use-perl-6.html
16:34:57
optikalmouse
what I really like about perl and CL for that matter is they both start with coders are actually doing
16:35:37
PuercoPop
mordocai: It seems to have a different 'turtle' underneath with extensible grammars
16:37:06
mordocai
akkad: You may be just waiting on disk IO, I think reading in larger than one line chunks should help with that but profiling will tell you where to look probably
16:37:29
Xach
akkad: you want a string of whatever is before the first occurrence of "postgresql: "?
16:37:55
djh
Perl6 is basically a brand-new language that was inspired by Perl.. I've yet to decide if I like it enough to try learning it properly
16:38:02
Xach
akkad: it's hard to make good suggestions when the semantics aren't too precisely explained, sorry
16:38:28
Xach
operating directly on things, and using names like "doit", are generally not illuminating
16:40:39
Xach
akkad: using ppcre:split like that is likely to generate a lot of garbage if you only want one thing.
16:42:53
Xach
akkad: another way to think of the problem is "Return the subsequence of the input bounded by the nth and nth+1 occurrences of the delimiter string"
16:43:28
Xach
that still involves finding the occurrences of the delimiter, but doesn't involve extracting anything until you find the position of the nth+1 (and you don't have to keep searching after that)
16:44:22
Xach
with splitting, you have to create subsequences and search for delimiters until the end.
16:44:35
Xach
of course, it's simple, and easy to understand, so if it's not a bottleneck, no reason to get more complex.
17:02:50
contrapunctus
Sorry to bring up this subject again, but...has anyone considered/is anyone considering writing applications for any of the extant (and for whatever degree of 'complete') Lisp OS projects?
17:19:18
PuercoPop
not really apps but I had been reading the compiler code. A friend of mine was trying to fix a bug in the ethernet driver iirc
17:21:35
contrapunctus
I guess I meant to ask - would it be considered practically useful to write applications for it?
17:22:16
eudoxia
you're probably not going to be deploying your web app to a Mezzano cluster on AWS any time soon
17:23:04
eudoxia
for experimenting with an OS small enough that you can hold it all in your head, i'd say yeah
17:23:55
jackdaniel
hrm, if all libs CL app implement mezzano backend, then all applications may profit
17:25:39
eudoxia
a lot of things like SQL databases won't work unless you have a CL SQL DB that runs on Mezzano
17:40:21
sebboh
Question for anyone: in that paste I just linked to, on lines 67-71 (enable line numbers with checkbox at bottom of page)... I see that the arguments are being... Pushed onto some stack or register? Is the place the args are being pushed a piece of hardware?
17:42:30
sebboh
jackdaniel: I'm not. pjb put that paste together for me to demonstrate compile-time macros.
17:43:17
beach
contrapunctus: Just to make sure, I hope you are not confusing Mezzano and what I describe here: http://metamodular.com/Common-Lisp/lispos.html right?
17:43:25
sebboh
my question is just curiosity. I had no idea that my defuns were ending up as machine code. I am more familiar with interpreters and bytecode VMs.
17:44:01
jasom
sebboh: read up on x86 assembly; in this case it's being pushed onto the C stack which is represented by the register %rsp
17:44:12
contrapunctus
beach: I meant any extant Lisp OSes. I was pointed to your writing by this channel, btw, really interesting read.
17:44:52
jasom
sebboh: so pushq FOO will subtract 8 from %rsp and put the quadword (64-bit value) FOO in the location in memory pointed to be the new value of %rsp
17:45:51
beach
contrapunctus: Thanks. As far as I can tell the objectives are quite different, though.
17:46:13
sebboh
jasom, the C stack is a datastructure inside the kernel? And the (physical) register %rsp points to it, ie, it tracks the "top" or "end" of said stack.
17:46:24
beach
contrapunctus: But to answer your questions [reading the logs] everything I write is ultimately aimed for the system I describe on those pages.
17:47:02
beach
contrapunctus: SICL, for instance, is meant to provide the basis in the form of a Common Lisp system with first-class global environments.
17:47:36
sebboh
jasom, the kernel is not involved? Then why don't I set %rsp to the memory space of some other process?
17:48:44
sebboh
jasom, ok, I have heard that. I figured the kernel handles these virtual addresses...
17:49:04
jasom
sebboh: the kernel is typically responsible for setting up the hardware that manages them
17:49:26
beach
contrapunctus: And for applications, this accounting system: https://github.com/robert-strandh/Compta is using the CLIM II interface manager. The entire application is 400 lines of code, half of which is GUI.
17:50:01
contrapunctus
beach: hm...those sort of sound like Scheme environments IIUC. Existing CL implementations don't have them?
17:50:45
beach
Common Lisp does not have first-class global environments, no. And I don't think Scheme does either. I might be wrong of course.
17:51:38
beach
contrapunctus: Here is the paper describing first-class global environments: http://metamodular.com/environments.pdf
17:51:50
sebboh
jasom, one last question: what do you call that hardware, or what do you call the .. opcodes? that you'd use to interact with it?
17:52:51
sebboh
jasom, oh, I've heard of that, but I thought its job was limited to translating the physical layout of DRAM chips to a single large logical block.
17:53:59
jasom
sebboh: it's better to think of it as translating virtual addresses (a single large logical block) to bus addresses (a different single large logical block)
17:54:09
contrapunctus
(I'm a bit new to all three, programming, Scheme, and CL, and thus easily confused)
17:54:17
jasom
sebboh: the memory controller (or dram contrller sometimes) is what translates a set of logical addresses to the pysical dram stuff
17:54:19
beach
contrapunctus: Dinner is imminent here, but I'll be happy to discuss this stuff with you some other time.
17:54:48
jasom
sebboh: and note that there is more than just dram on the system bus typically; for example PCI gets some of the system bus space typically
17:56:05
sebboh
the memory bus. Sure, hardware can present pieces of itself as ranges of addresses on that bus.
17:57:08
jasom
Computer Organization and Design: The Hardware/Software Interface by Patterson and Hennessy
17:57:34
sebboh
re: books, noted, if I want to learn more. ;) I generally operate several layers of abstraction away from such things.
18:00:22
jasom
beach: Unfortunately I'd have to clear anything I share about the OS I'm most familiar with, as it's proprietary, and I've read most of the source of it.
18:01:55
beach
My planned book is not about a particular system, other than the historical description. Instead it will be more about the purpose of the OS and how one can accomplish its purpose in different ways.
18:02:20
beach
All the OS books I have read (and that's quite a few) are just descriptions of existing technology.
18:03:03
Bike
the first paper i read on anything was a thesis about OS design. it seems theses go more hog wild speculative
18:03:07
beach
They seem to have no opinion as to whether that technology is good or bad, nor even why things are the way they are.
18:04:33
jasom
beach: yeah the one we used in college was "Here's how Sun, Linux, and NT did it, with the history of Unix/ just do whatever is most expedient/ VMS" behind each one
18:04:49
sebboh
Request: somebody make a cellular automata that can used (more efficently than Conway's GoL) as a general purpose CPU. Then just run that CA on ASICs or whatever you like.
18:07:26
sebboh
Cause I estimate that such a platform would have a future. Oh, here's an additional requirement: the proposed CA must allow some execution algorithm analogous to "Hashlife".
18:09:25
Bike
also, the operations of a GoL computer are perfect for frustrating hashlife execution, exactly as you'd expect
18:12:36
sebboh
Bike: I think it'd be cool for my personal computer to be nothing more than a vast 2d array of bits and a few simple rules. If a word processor (or any other software) was basically a bitmap that I "physically" blit onto some range of the plane, I would greatly enjoy watching the gears spin every time I hit a key. :) And re: GoL computers being a pathological case for hashlife, well, er, *hand waving* functional programming. :)
18:15:45
Bike
don't get me wrong, i like distributed computer stuff, i just don't understand where hashlife comes into it
18:16:40
Bike
plus any physically implemented CA would be at least somewhat amenable to hashlife, since there is a speed of light in real life.
18:20:18
sebboh
optikalmouse: cool. Bike: I'm just a daydreamer. You'll note that I made a request, not a CA. :)
18:22:11
Bike
anyway, i had a professor who was trying to sell CAputers, let's see if I can dig him up again...
18:26:09
sebboh
Bike, the old site is still up. http://www.cellmatrix.com/entryway/products/concepts/intro1.html Is this what you were looking for?
18:28:16
sebboh
oh there is actually source on here. There is a layout editor which claims to be able to construct arbitrary physical electrical circuits. Which sounds spot-on, given the topic.
18:29:28
Bike
i mostly remember this guy because he told the story of breaking warranty on a VAX and programming in an instruction to do binary search. fun times
18:43:59
beach
jasom: Exactly. I think they are pretty much all like that. I want to write a different one.
19:19:06
Warlock[29A]
Hi all. Does anybody tried to create standalone application using ECL under Windows?
19:20:46
jackdaniel
Warlock[29A]: the easiest way would be to build ECL from cygwin and use gcc from it
19:21:18
Warlock[29A]
I trying to use this tutorial (https://common-lisp.net/project/ecl/manual/ch34s06.html). Under linux it's works good, but under windows I got error 'Cannot find the external symbol BUILD-PROGRAM in #<"C" package>.'
19:24:03
jackdaniel
PuercoPop: as far as I've digged through old mailing lists (fork happened before I knew ECL)
19:24:28
jackdaniel
it was fork without a clear reason. AFAIK it has some improved (or "improved"), windows support
19:25:58
attila_lendvai
I don't hesitate much before forking, but I've never forked without a discussion. that's just uncivilized...
19:26:37
jackdaniel
the point is, that his patches would be probably accepted (what I infere from the ML)
19:26:55
jasom
ah, with commondoc now existing, I'm dusting off my rst parser; I had almost forgotten how I (ab)used backgtracking to parse tables
19:27:10
PuercoPop
the author continues to develop mkcl, but I don't know in what direction that would be incompatible with ECL
19:27:20
Warlock[29A]
jackdaniel: I ran ecl.exe and executed (c:install-c-compiler) and i got error Cannot find the external symbol INSTALL-C-COMPILER in #<"C" package>. What is means?
19:27:56
jackdaniel
PuercoPop: from the ml I've infered, that his patches would be accepted by Jose, he just didn't bother
19:28:22
jackdaniel
PuercoPop: you may ask antonv for further details, I remember I saw him on this thread of ML
19:29:12
jackdaniel
I've asked mkcl maintainer, if he doesn't mind giving me explicit license to merge back some changes if I find any (mkcl is lgplv3), he said he has to think about it and will write back soon
19:29:57
jackdaniel
Warlock[29A]: I don't have ecl VM up, could you post an issue on gitlab? I'll check this thing up soon
19:31:10
jackdaniel
yes, right now I'm very interested in merging and sharing repository of portable part of ECL with CLASP – drmeister is interested but seems to be short on time
19:34:16
Warlock[29A]
jackdaniel: Ok, thanks! I will do it. Now, i try compile it from source into MinGW, as you said.
19:36:21
pjb
sebboh: actually, often the kernel/processor impose a "stack" on one specific register (usually, a dedicated processor register), to handle interruptions. On some processors, the kernel may set a flag to have the processor use a specific priviledged stack register for interrupts, but it's not always available. That's the only constraint imposing a stack in userspace.
19:38:01
pjb
sebboh: (in the case of unix signals, there are options to deliver them on a specific stack, or to use this processor dedicated stack register, which usually points to the current thread stack (or some random thread in multi-core processors).
19:39:18
pjb
sebboh: So if you configure linux to use a dedicated stack for signals and interrupt and leave that stack alone, the rest of your userspace process can work without using any stack. Notice that syscalls would use that stack, but you can consider syscalls as software interrupts.
19:42:00
Warlock[29A]
jackdaniel: Ok, i understand. I have Cygwin. I will switch on it . Thanks for help! :)
19:42:59
jackdaniel
sure. note, that working with minGW will be differt, since it maps to windows api, while cygwin provides posix api
19:43:21
jackdaniel
so this example may be not representative if you want to use mingw in the future
19:46:47
fourier
Is where a nice pattern on how to dig inside list of list of lists ? To not to write something like let ((something ...)) (when something (let ((something2 (dig-in-something))) (when something2 ((let something3 dig-in-something2
19:47:59
Warlock[29A]
jackdaniel: i have no preference between Cygwin or MinGw. If i can compile under Cygwin, ok, i will use Cygwin.
19:48:18
Bike
you could write a simple macro. i personally haven't wanted to do something like that.
19:55:45
fourier
aah thanks everybody, looks like Alexandria's when-let* (or similar) will do the trick
20:30:05
jasom
obviously e.g. length will accept a list but won't ever return nil; is that what you were saying?
20:30:07
dlowe
but yes, all things that take lists will accept NIL. That may not be easily apparent to a beginner, though.
20:35:08
jasom
fourier: you may want to consider using a pattern matching library like optima, depending on exactly what you mean by"like xpath"
20:45:53
sebboh
pjb, sorry, I don't understand. But that's OK, I'm just missing some pre-reqs, and you've already recommended a book.
22:23:00
otwieracz
XachX: That's because the only place to specify dependencies is system definition, where asdf knows nothing about quicklisp releases. Right?
22:28:38
otwieracz
ieure: I am not getting into technical details here. I was just talking about way of selecting specific version of dependency.
22:56:50
jasom
Anybody else run into an issue where quasiquotation causes slime to barf when it attempts to locate the position in the source file of a warning?
23:09:23
jasom
mordocai: the author seems confused; at one point he says it runs lisp, at another point says it runs r7rs
23:11:39
jsgrant
jasom: A common issue in lingustical classification of Lisp, is that they will refer to Scheme as being part of the "Lisp Family of Languages" or a "Lisp-like" language.
23:12:15
mordocai
Yeah, I posted it before I finished reading it. Would probably fit more in #scheme
23:12:27
jasom
jsgrant: right, but it is very rare for someone to refer to scheme as "lisp" rather than "a lisp" or "a dialect of lisp" or "a language in the lisp family"
23:13:07
jsgrant
jasom: Ah, didn't click/read through it when I posted that; Just started looking into the source url given. :^P
23:17:32
jsgrant
Does this guy have any kind of technical backing, that would go and lead one to be able believe he would be able to accomplish such goals?
23:22:06
jasom
jsgrant: "I do most things in CHICKEN Scheme. I've done some small projects on the bare metal in x86 and ARMv6 assembly. Professionally I've hacked on Java and Javascript across the web stack for many years."
23:23:17
jsgrant
jasom: Yeah, saw that bit -- I was looking for some actual projects of scale on the low-level osdev side of things that leads me to believe they have some notable experience here.
23:23:58
jsgrant
The only public Osdev project I see is, https://github.com/ThomasHintz/hintz-os and it's practically empty.
23:26:11
jsgrant
They have http://thintz.com/projects/os-resources on their site, but yeah, pretty if not completely sparse.
23:27:02
jsgrant
oGMo: Oh, Kickstarter, that took me aback for a second. Is that a common shortening?
23:28:13
jsgrant
oGMo: Yeah, thinks and/or people like that make me a bit more skeptical of "crowdfunding platforms" as a whole.
23:30:01
oGMo
jasom: yeah. asking for $90k to finish up a very promising basically-complete project made by a team of OS and security engineers that wanted/needed certain certs would be reasonable
23:32:47
jsgrant
* has become a cranky-old-man at 23, but yeah, years of optimism tied to years of being let down I guess will do that to you. :^P
23:37:10
jsgrant
I have little doubt though that someday, probably by the end of the decade -- a LispM-like Os will be bootable from real hardware.
23:39:01
jsgrant
jasom: At least you probably aren't part of the Old Guard of Lisp, and are starting to get really old comparatively.
23:40:28
jsgrant
jasom: Either or though, I'm kinda a weird case. I attribute Emacs saving me from Art School, at 16.