<sunshavi>
nice catch about qt4, no info on the CommonQt wiki about it
<beach>
sunshavi: I strongly recommend you use McCLIM instead. :)
Oladon has quit [Quit: Leaving.]
<sunshavi>
jackdaniel: i did not realized about Default_Qt_toolkit
<sunshavi>
beach: McCLIM is available on arch?. Let me check. Which are the differences with sbcl?
fikka has joined #lisp
<jackdaniel>
if you are in exploratory mood you may try also McCLIM (which doesn't rely on FFI). It is far less polished than Qt, but is something fun to learn
<jackdaniel>
you can download McClIM directly from Qt
<jackdaniel>
s/from Qt/from Quicklisp/
<jackdaniel>
the bright side is that McCLIM is surely capable of having hello world
<beach>
sunshavi: I don't see how availability of McCLIM would depend on the OS.
<sunshavi>
well. This is my first day on common-lisp. I am here trying to do a replacement for dbdesigner wich is not available for armv7 arch
<jackdaniel>
that said I've got to go (breakfast :-) later
<sunshavi>
beach: bear with me i'm a newbie on CL
wxie has joined #lisp
<beach>
sunshavi: OK, understood.
<sunshavi>
jackdaniel: enjoy the breakfast. here GMT-005
<sunshavi>
almost midnight
<sunshavi>
i am going to watch some videos on webmacs
<beach>
sunshavi: If you go McCLIM, you will have way fewer problems with the Qt maintainers making incompatible changes, and you will be programming in Common Lisp as opposed to some strange combination of Common Lisp and some lesser programming language.
<sunshavi>
beach: nice. That sounds promissing
<sunshavi>
i have done some gtk, some wxwidgets, vlc moved from wxwidgets to Qt. Then I though Qt is the way to go. But I could be wrong
pierpal has joined #lisp
<beach>
sunshavi: On the other hand, as jackdaniel pointed out, McCLIM is less polished than Qt. But then, you will have jackdaniel to help you with McCLIM and to help fix possible problems in McCLIM.
ravi__ has quit [Ping timeout: 256 seconds]
<hjek>
sunshavi: depends what you're doing, I guess. CLIM is pretty cool in that it's extremely lispy, but it does require an X server so for cross-building it's not super nice. Then something like LTK is really neat. Or perhaps Qt.
<beach>
sunshavi: I am very biased. I am totally in favor of programming in Common Lisp as opposed to other languages.
k-hos has quit [Read error: Connection reset by peer]
k-hos has joined #lisp
<sunshavi>
well. I just have learn some basic emacs-lisp. On my more than 10 years tour using emacs. But never tried cL
<beach>
sunshavi: Looks like you are in for some journey.
<beach>
sunshavi: We'll be there for you if you want.
elfmacs has quit [Ping timeout: 248 seconds]
<sunshavi>
hjek: hi
<beach>
sunshavi: Lucky for you, as I understand it, #lisp is one of the friendliest channels around.
<hjek>
hi
Xof has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
<sunshavi>
beach: I am hanging around on #linux-sunxi, #armbian, #maemo-leste
<beach>
Good for you.
nckx has quit [Quit: Updating my GNU GuixSD server — gnu.org/s/guix]
nckx has joined #lisp
ghostyy has quit [Read error: Connection reset by peer]
<sunshavi>
but today I needed dbdesigner on my arm-workstation. when not available i turned on my x220. But I would like to start creating something like dbdesigner on lisp.
ghostyy has joined #lisp
nowhere_man has joined #lisp
ChrisOei has quit [Ping timeout: 260 seconds]
Fade has quit [Ping timeout: 260 seconds]
schjetne has joined #lisp
<sunshavi>
hjek: LTK is related to FLTK?
Fade has joined #lisp
ChrisOei has joined #lisp
<hjek>
no, tcl/tk
<hjek>
so, probably alright for something about databases. (and probably not alright if it's something that needs to look native, or graphics heavy)
<sunshavi>
hjek: creating tables and relations and drag and drop does not seem graphics heavy
<hjek>
exactly
<sunshavi>
dbdesigner was done 15 years ago on kylix (delphi 4 linux)
<sunshavi>
and it works until today
<sunshavi>
McCLIM frames looks like emacs wit the lucid toolkit
<sunshavi>
McCLIM is based or modelled on gtk (top_level_window)?
<hjek>
sunshavi: no gtk in mcclim. i think it's pure X. but also there is supposedly a Cocoa back end for OS X
pierpal has quit [Ping timeout: 264 seconds]
<sunshavi>
nice
schjetne has quit [Ping timeout: 260 seconds]
pierpal has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #lisp
Pixel_Outlaw has quit [Quit: Leaving]
pierpal has quit [Ping timeout: 268 seconds]
holycow has quit [Quit: Lost terminal]
arescorpio has quit [Quit: Leaving.]
nowhere_man has quit [Remote host closed the connection]
nowhere_man has joined #lisp
<sunshavi>
McCLIM should work on wayland?
hjek has quit [Read error: Connection reset by peer]
fikka has joined #lisp
hjek has joined #lisp
<jackdaniel>
wayland has X-compatibility layer
<jackdaniel>
and it worked fine for me
<jackdaniel>
but native wayland wire protocol is not supported
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
<sunshavi>
jackdaniel: nice
fikka has quit [Ping timeout: 256 seconds]
karswell_ has joined #lisp
energizer has quit [Disconnected by services]
wxie has quit [Ping timeout: 240 seconds]
energizer has joined #lisp
energizer has quit [Remote host closed the connection]
energizer has joined #lisp
fikka has joined #lisp
karswell has quit [Ping timeout: 240 seconds]
<sunshavi>
i have done a couple of tutorials on CommonQt. a simple frame with just a title, and a frame with three widgets label, text, button
<LdBeth>
What dose the postscript backend do for CLIM?
<jackdaniel>
LdBeth: it produces postscript documents
vlatkoB has joined #lisp
<sunshavi>
jackdaniel: just ps files or also pdf's?
<jackdaniel>
sunshavi: there is another backend called pdf
<jackdaniel>
it is fairly new, so I can't guarantee it works as expected
<sunshavi>
ok
<jackdaniel>
but you may load clim-examples, go to drawing examples and you'll have a button to generate from drawings ps / pdf
<jackdaniel>
and see what works and what doesn't
<sunshavi>
jackdaniel: I am installing McCLIM now it is on package drei-user now
<LdBeth>
jackdaniel: drawing frames in PostScript for document use?
schjetne has joined #lisp
<LdBeth>
Or it can do more generalized drawings?
<jackdaniel>
afaik only generalized drawings
<jackdaniel>
application-frame doesn't make much sense on PS document
<beach>
LdBeth: It turns a McCLIM GUI into a PostScript document.
<LdBeth>
beach: Ok, that seems make sense
fourier has joined #lisp
pierpal has joined #lisp
Oladon has quit [Quit: Leaving.]
orivej has quit [Ping timeout: 248 seconds]
dessm has quit [Remote host closed the connection]
damke has quit [Read error: Connection reset by peer]
damke has joined #lisp
pierpal has quit [Remote host closed the connection]
<sunshavi>
I have an error on clim-demo
<sunshavi>
; Evaluation aborted on #<BORDEAUX-THREADS::BORDEAUX-MP-CONDITION {54DFC5C1}>.
schjetne has quit [Ping timeout: 240 seconds]
dented42 has joined #lisp
frgo has quit [Ping timeout: 256 seconds]
dented42 has quit [Ping timeout: 264 seconds]
stacksmith has quit [Ping timeout: 276 seconds]
wigust has joined #lisp
schjetne has joined #lisp
<sunshavi>
also the default example is not working properly
<phoe>
sunshavi: #clim should be able to help you the best
fikka has quit [Ping timeout: 264 seconds]
schjetne has quit [Ping timeout: 256 seconds]
<beach>
sunshavi: What Common Lisp implementation are you using?
<sunshavi>
beach: sbcl
<beach>
sunshavi: And, was it compiled with threads enabled? (I am just guessing here. Normally, those examples work)
<sunshavi>
no idea. I just installed it "sudo pacman -S sbcl"
hvxgr has quit [Ping timeout: 260 seconds]
<beach>
I don't know that installation source. Sorry.
<beach>
sunshavi: I am way outside my comfort zone here, but you could check whether :sb-thread is a member of the *features* list.
<beach>
hjek: A typical application for the PostScript backend (and for the PDF backend as well) would be if you have something like Gsharp (and editor for music scores). The saved PostScript document should then be a printed version of the score. The document should not contain the buttons, the interactor pane, the scroll bars, etc.
pierpal has joined #lisp
<ukari>
how to export a struct in defpackage?
<beach>
Ukari: structs and functions are not exported. Symbols are.
<ukari>
so i need to export symbols relates to the struct?
<sunshavi>
beach: sbcl on arm does not support threading :()
<beach>
sunshavi: Ouch!
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
<sunshavi>
so: probably mcclim not possible just commonQt
<beach>
Or choose an implementation other than SBCL for that processor.
<sunshavi>
which one?
<beach>
Good question. I am not the right person to ask.
<sunshavi>
no prob
<beach>
Ukari: You export whatever names you want to use from a different package, whether they be the name of the struct, the accessors, the constructors, whatever.
<sunshavi>
i'm going to the archwiki
<shrdlu68>
sunshavi: Try out ECL.
<beach>
sunshavi: Check with jackdaniel first. He is the maintainer of ECL, and of McCLIM, so he would know whether that is good advice or not.
<sunshavi>
mmm. this machine is an arm machine
<ukari>
i defstruct a (defstruct iterable-object (value nil) (next nil :type function)), and export by (:export #:make-iterable-object #:iterable-object-next #:iterable-object-value)
<ukari>
it works, but seems need to write too much details
<sunshavi>
jackdaniel: ECL supports threading on arm
<beach>
Ukari: No, that is normal.
<beach>
Ukari: The Common Lisp implementation can not decide for you what functionality you want to make available to client code.
<ukari>
if my struct have n slots, i need write n more detial in defpackage
<fourier>
Ukari: have a look at cl-annot, they have @export-struct annotation or something
<beach>
Ukari: Like I told you, in a typical application you definitely do not want to export the names of the accessors of all the slots. That would be contrary to good software-engineering practice. And, again, the Common Lisp implementation can not decide what kind of protocol you want to suggest to client code.
fikka has quit [Ping timeout: 268 seconds]
<beach>
Ukari: If it so happens that you are not applying any particular modularity concerns in this case, then unfortunately, you are the exception, and you then need to export everything.
panji has joined #lisp
<fourier>
its a valid concern too actually, same with defclass and its readers/accessors
pierpal has quit [Remote host closed the connection]
<beach>
fourier: What concern is valid according to you?
<fourier>
about having to write a lot of manual "exports" for automatically generated functions
<beach>
fourier: So what I just said does not make sense to you?
<beach>
I guess I need to work on my skills for explaining things.
hvxgr has joined #lisp
random-nick has joined #lisp
hjek has quit [Ping timeout: 260 seconds]
<beach>
fourier: Only in applications that do not respect the slightest software-engineering technique would one want to export the names of all the accessors, and even less so of the slot names.
<fourier>
yes it makes sense. "I want to export all readers of this class/struct" - it is the applied modularity.
<beach>
fourier: Common Lisp was not made for people that have absolutely no concern for basic modularity.
<beach>
fourier: If you find yourself wanting to export the names of all the readers of some class, then there is very likely something wrong with your abstraction.
nika has joined #lisp
<fourier>
why so? its a typicall pattern for plain data storage structs
<beach>
But then you probably would not put your struct in a separate package.
<beach>
So no need to discuss whether to export or not.
sunshavi has quit [Ping timeout: 248 seconds]
<beach>
There could *occasionally* be a need for that, but not often. Therefore, having to export everything is an exceptional situation. For exceptional situations, you then have to deal with the additional work of manually exporting everything. It would not make sense to have a special mechanism in the language for that, because it is, well, exceptional.
sunshavi has joined #lisp
<fourier>
you put it to separate package to avoid name collisions for trivial accessors like "name" "age" etc
Mutex7 has quit [Quit: Leaving]
<fourier>
but anyway we have macros to do it for us so its not a big deal
schjetne has joined #lisp
<beach>
Of course. But if the struct is only used as an aggregation of stuff, it would typically be in the same package as the client code. The package boundary is more likely used to define an abstract protocol that is not concerned with how things are stored.
<beach>
Again, I agree, there might be exceptional cases.
<beach>
And, again, because they are exceptional, there is no need for a specific mechanism for exporting everything.
milanj has joined #lisp
<beach>
So, again, yes, you would then have to manually include all the names in the package definition. Big deal.
<shrdlu68>
Isn't there a way to iterate?
<beach>
For structs, not sure.
<beach>
For standard classes, you could use the MOP.
<ukari>
I tried cl-annot.class export-defstructure but get a compile error...
fikka has joined #lisp
pierpal has joined #lisp
<ukari>
beach's option is acceptable if treat defstruct into constructors-function and slot-function. but if treat defstruct as static defination of a struct and it need to be use somewhere just like class in java or struct in c header, i thought defstruct should be more combined than spearated into divided functions
<ukari>
how about use a defmacro to defstruct and export the defmacro
fikka has quit [Ping timeout: 268 seconds]
lnostdal has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
<puchacz>
hi, can salza2:deflate-compressor be passed an argument so it uses "no compression"?
<puchacz>
I want to let a user download a bunch of media files bundled together, and they are compressed already, so there is no point of wasting CPU (if there is any significant waste) on trying to compress them
<puchacz>
but I need to send them as a single file, so zip file format makes a good container
figurehe4d has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
schjetne has quit [Ping timeout: 240 seconds]
<ukari>
i use '(make-iterable-object :value nil :next nil)' with the defination '(defstruct iterable-object (value nil) (next nil :type function))', but it tells me :next is a function type and couldn't be nil
<ukari>
Is there anyway to make nil and :type function coexist?
<TMA>
Ukari: you can use (or null function) as the type
minion has quit [Remote host closed the connection]
<ukari>
if there is a system foo, with some packages syntax, util, which naming style is suitable. 'cl-foo-syntax, cl-foo-util' or 'cl-foo.syntax, cl-foo.util'
<ukari>
i found both of styles in some project
minion has joined #lisp
shrdlu68 has quit [Ping timeout: 240 seconds]
clintm has joined #lisp
clintm has left #lisp [#lisp]
clintm has joined #lisp
clintm has quit [Remote host closed the connection]
shrdlu68 has joined #lisp
shrdlu68 has quit [Client Quit]
pierpal has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Nubi has quit [Remote host closed the connection]
fikka has joined #lisp
pierpal has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 260 seconds]
schjetne has joined #lisp
fikka has joined #lisp
milanj has joined #lisp
orivej has joined #lisp
jmercouris has joined #lisp
lnostdal has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
pjb has joined #lisp
fikka has joined #lisp
solyd has quit [Ping timeout: 240 seconds]
<jackdaniel>
sunshavi: yes, ecl supports theads on armv7h
<jackdaniel>
same goes for ccl
<jackdaniel>
you may prefer ccl for development though (it produces more performant code)
<jackdaniel>
on the other hand I will be able to debug problems on McCLIM <-> ECL line (because I know both considerably well)
JuanDaugherty has quit [Quit: Ex Chat]
dddddd has joined #lisp
Quetzal2 has joined #lisp
pierpal has joined #lisp
aleamb has joined #lisp
pierpal has quit [Ping timeout: 240 seconds]
makomo has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
hjek has joined #lisp
Karl_Dscc has joined #lisp
pierpal has joined #lisp
mingus` has joined #lisp
f1gurehead has joined #lisp
ghostyy has quit [Read error: Connection reset by peer]
ghostyy has joined #lisp
troydm has joined #lisp
lnostdal has quit [Ping timeout: 260 seconds]
energizer has quit [Disconnected by services]
energizer has joined #lisp
figurehe4d has quit [Ping timeout: 240 seconds]
Oddity has quit [Ping timeout: 240 seconds]
mingus has quit [Ping timeout: 240 seconds]
White_Flame has quit [Ping timeout: 240 seconds]
milanj has quit [Quit: This computer has gone to sleep]
White_Flame has joined #lisp
v0|d has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
elfmacs has joined #lisp
energizer has quit [Remote host closed the connection]
panji has left #lisp [#lisp]
Oddity has joined #lisp
elfmacs has quit [Client Quit]
cpape` has quit [Remote host closed the connection]
schjetne has joined #lisp
fourier has quit [Ping timeout: 260 seconds]
Karl_Dscc has quit [Remote host closed the connection]
d4ryus1 is now known as d4ryus
pierpal has quit [Ping timeout: 248 seconds]
beach has left #lisp ["ERC Version 5.3 (IRC client for Emacs)"]
light2yellow has joined #lisp
damke has quit [Ping timeout: 264 seconds]
beach has joined #lisp
cpape has joined #lisp
damke has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 256 seconds]
markong has joined #lisp
t0adst00l has joined #lisp
fikka has joined #lisp
dtornabene has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
fikka has joined #lisp
davsebamse has quit [Ping timeout: 268 seconds]
wlemuel has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
schjetne has joined #lisp
fikka has joined #lisp
clintm has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
nirved has quit [Ping timeout: 256 seconds]
milanj has joined #lisp
ukari has quit [Quit: Leaving.]
ukari has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
ukari has quit [Read error: Connection reset by peer]
hjek has quit [Ping timeout: 260 seconds]
nirved has joined #lisp
rme has quit []
rme has joined #lisp
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
gendl has quit []
gendl has joined #lisp
ukari has joined #lisp
ukari has quit [Read error: Connection reset by peer]
fikka has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 240 seconds]
davsebamse has joined #lisp
random-nick has joined #lisp
tobel has quit []
tobel has joined #lisp
scymtym has quit [Ping timeout: 248 seconds]
f1gurehead has quit [Quit: Leaving]
pjb has quit [Remote host closed the connection]
ravi has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
schjetne has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
shwouchk has quit []
dtornabene has quit [Ping timeout: 260 seconds]
shwouchk has joined #lisp
python476 has joined #lisp
scymtym has joined #lisp
ukari has joined #lisp
wlemuel has quit [Quit: My Baby has gone to sleep. ZZZzzz…]
t0adst00l has quit [Ping timeout: 255 seconds]
scymtym_ has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
wlemuel has joined #lisp
wlemuel has quit [Client Quit]
scymtym has quit [Ping timeout: 240 seconds]
wlemuel has joined #lisp
wlemuel has quit [Client Quit]
fikka has quit [Ping timeout: 260 seconds]
wlemuel has joined #lisp
fikka has joined #lisp
Xof has joined #lisp
rann has quit []
rann has joined #lisp
varjag has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
SaganMan has quit [Ping timeout: 240 seconds]
ft has quit [Ping timeout: 264 seconds]
milanj has quit [Read error: Connection reset by peer]
milanj has joined #lisp
Oddity has quit [Ping timeout: 240 seconds]
ft has joined #lisp
fikka has joined #lisp
Oddity has joined #lisp
Oddity has joined #lisp
Oddity has quit [Changing host]
fikka has quit [Ping timeout: 264 seconds]
schjetne has joined #lisp
terrorjack has quit []
milanj has quit [Quit: This computer has gone to sleep]
terrorjack has joined #lisp
exit70 has quit []
exit70 has joined #lisp
damke_ has joined #lisp
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
SaganMan has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
pierpal has joined #lisp
rippa has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
schjetne has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
<oleo>
try (next (lambda ()) :type function) ?
<oleo>
a noop
fikka has quit [Ping timeout: 240 seconds]
<oleo>
or like TMA told (next nil :type (or null function))
<oleo>
hmmmm
<oleo>
second is better i think
cage_ has joined #lisp
<sunshavi>
jackdaniel: thanks. then i am going to install ccl for trying McCLIM
fikka has joined #lisp
emma has joined #lisp
emma has joined #lisp
emma has quit [Changing host]
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
Fare has joined #lisp
Satou has joined #lisp
FreeBirdLjj has joined #lisp
Fare has quit [Ping timeout: 268 seconds]
Fare has joined #lisp
palmtree has joined #lisp
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
pjb has joined #lisp
hjek has joined #lisp
schjetne has joined #lisp
ym has joined #lisp
fikka has joined #lisp
dddddd has quit [Remote host closed the connection]
pierpal has quit [Remote host closed the connection]
raynold has quit [Quit: Connection closed for inactivity]
fikka has quit [Ping timeout: 240 seconds]
<jmercouris>
sunshavi: what OS are you on?
kozy has joined #lisp
<jmercouris>
ArchLinux?
Fare has quit [Ping timeout: 260 seconds]
Fare has joined #lisp
puchacz has quit [Read error: Connection reset by peer]
kozy has quit [Remote host closed the connection]
light2yellow has quit [Quit: light2yellow]
damke has joined #lisp
puchacz has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
schjetne has quit [Ping timeout: 264 seconds]
solyd has joined #lisp
solyd has quit [Client Quit]
pierpal has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
warweasle has joined #lisp
palmtree has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ted_wroclaw has joined #lisp
fikka has joined #lisp
jmercouris has quit [Ping timeout: 248 seconds]
jmercouris has joined #lisp
johnvonneumann has quit [Ping timeout: 268 seconds]
johnvonneumann has joined #lisp
cage__ has joined #lisp
cage_ has quit [Read error: Connection reset by peer]
Oddity has quit [Ping timeout: 240 seconds]
fikka has quit [Quit: leaving]
fikka has joined #lisp
schjetne has joined #lisp
Oddity has joined #lisp
dxtr has quit [Ping timeout: 276 seconds]
Fare has quit [Ping timeout: 240 seconds]
jason_m has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
pierpal has quit [Ping timeout: 260 seconds]
dxtr has joined #lisp
hjek has quit [Ping timeout: 240 seconds]
wigust- has joined #lisp
jason_m has quit [Quit: Leaving]
wigust has quit [Ping timeout: 256 seconds]
schoppenhauer has quit [Ping timeout: 260 seconds]
wlemuel has quit [Quit: My Baby has gone to sleep. ZZZzzz…]
igemnace has quit [Read error: Connection reset by peer]
ted_wroclaw has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
aleamb has quit [Ping timeout: 264 seconds]
cage__ has quit [Ping timeout: 240 seconds]
ichigo_best_girl is now known as Duns_Scrotus
cage_ has joined #lisp
igemnace has joined #lisp
gz has quit []
alms_clozure has quit []
gz has joined #lisp
alms_clozure has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
fikka has joined #lisp
ravi has joined #lisp
libre-man has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
Fare has joined #lisp
libre-man has joined #lisp
Cthulhux has quit [Quit: ne praeteriverit priusquam obesa cantaverit]
Cthulhux has joined #lisp
Cthulhux has joined #lisp
Cthulhux has quit [Changing host]
fikka has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
malpas has quit [Quit: Leaving]
sunshavi has quit [Ping timeout: 268 seconds]
danlentz has quit []
danlentz has joined #lisp
mbrock_ has joined #lisp
fikka has joined #lisp
billstclair has quit []
billstclair has joined #lisp
schjetne has joined #lisp
jeremyheiler has quit []
jeremyheiler has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
XachX has quit []
XachX has joined #lisp
FreeBirdLjj has joined #lisp
mflem has joined #lisp
ted_wroclaw has joined #lisp
pierpal has joined #lisp
warweasle is now known as warweasle_afk
iqubic` has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
<ukari>
is cl-cont open source? i meet a wired warning which seems to tell that a argument's type is different from declared in cl-cont::lookup
<ukari>
the message: "Derived type of CL-CONT::LOOKUP is (VALUES CONS &OPTIONAL), conflicting with its asserted type (OR FUNCTION SYMBOL)"
cage__ has joined #lisp
mlf|2 has joined #lisp
Firedancer has quit [Ping timeout: 260 seconds]
Firedancer has joined #lisp
<Bike>
uh, probably. did you get it from quicklisp? quicklisp distributes source.
mflem has quit [Ping timeout: 240 seconds]
cage_ has quit [Ping timeout: 240 seconds]
Oddity has quit [Ping timeout: 240 seconds]
Petit_Dejeuner has quit [Ping timeout: 240 seconds]
<Fare>
Ukari, the license says LLGPL
<Fare>
Ukari, smells like a bug. Can you fix it?
<ukari>
let me find and try
schjetne has quit [Ping timeout: 240 seconds]
Oddity has joined #lisp
fikka has joined #lisp
scymtym_ has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
cage__ has quit [Quit: Leaving]
cage_ has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
scymtym has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
dddddd has joined #lisp
Kundry_Wag has joined #lisp
Kundry_W_ has joined #lisp
rumbler31 has joined #lisp
schjetne has joined #lisp
Kundry_Wag has quit [Ping timeout: 265 seconds]
milanj has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<foojin>
For some strange reason, I feel obliged to fix every bug I want to report.
<foojin>
Maybe it's about "having something to show instead of simply complaining", but in the end I find the submission/review process itself too difficult and apply the fix locally.
Pixel_Outlaw has joined #lisp
<shka_>
lol
<shka_>
feel free to train on cl-ds :P
Duns_Scrotus has quit []
Karl_Dscc has joined #lisp
Duns_Scrotus has joined #lisp
<phoe>
foojin: what do you mean by too difficult?
<phoe>
also, which projects have you found bugs in?
<phoe>
are they on some public git host somewhere?
<foojin>
shka_: Right now I don't know enough Lisp to do so.
fikka has joined #lisp
<foojin>
phoe: For example vim, tmux, giflib and texinfo.
<foojin>
I've left out some of the more obscure ones.
<jmercouris>
You've found patches for Vim? tmux? I'm a little bit skeptical
<fe[nl]ix>
foojin: are you a student ?
<phoe>
foojin: ouch. these may have complicated contribution processes.
Josh_2 has joined #lisp
<foojin>
Sometimes I just think I don't understand the codebase well enough to consider my solutions anything but hacks.
fikka has quit [Ping timeout: 264 seconds]
<foojin>
THe giflib one is most likely fixed by now, because it's about long filenames messing with an uninitialized structure field, which breaks the whole thing randomly.
damke_ has joined #lisp
Oladon has joined #lisp
<foojin>
fe[nl]ix: I was a student, but then some stuff happened, and now I'm no longer one.
damke has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
ted_wroclaw has quit [Ping timeout: 240 seconds]
nika has quit [Quit: Leaving...]
<pjb>
foojin: you're always a student, life-long student.
uint has joined #lisp
<foojin>
The thing is, I'm not proud of what I do. Seeing how everything is so brittle and poorly understood even by its creators makes it hard to be proud of my small contributions.
<pjb>
foojin: it's not the little student card a university temporarily gives you that makes you a student.
<pjb>
foojin: perhaps you would want to study some formal verification?
fikka has quit [Ping timeout: 240 seconds]
Ricci has joined #lisp
warweasle_afk is now known as warweasle
<foojin>
pjb: Yes, that way I could hopefully understand the issue from a mathematical perspective.
<foojin>
I'm also interested in learning type theory to gain some insight into what I (for a long time) thought is true: that all of mathematics has a computational content to it.
schjetne has quit [Ping timeout: 260 seconds]
<Bike>
yeah they're all about curry howard
<foojin>
Come to think of it, mathematics has already reached a level of complexity which can only be tackled by clever abstraction, so people _have to_ be clever about adding more to it.
<foojin>
But it doesn't help to harness the power of computers, to save oneself from mediocrity of not being able to intervene in, say, the process of interpreting someone's minified Javascript.
fikka has joined #lisp
energizer has joined #lisp
Fare has quit [Ping timeout: 260 seconds]
<foojin>
So I don't really know what to do in such a situation. BTW sorry for being off-topic and (possibly) being a nuisance.
fikka has quit [Ping timeout: 264 seconds]
<shka_>
no human being should be in position of trying to figure out JS code
fisxoj has joined #lisp
<foojin>
The point is, even after learning enough to be able to fix broken stuff around me, it still feels like I'm not flying above the surface, but merely crawling out of an underground cave. It takes time just to stay afloat.
fisxoj has quit [Client Quit]
fisxoj has joined #lisp
<foojin>
shka_: Yes, for a long time I thought that JS is actually a decent language. Not anymore, not after reading about its coercion rules and having stuff break silently because of _syntax errors_.
fisxoj has quit [Remote host closed the connection]
Ricci has quit [Ping timeout: 260 seconds]
pierpal has quit [Read error: Connection reset by peer]
schjetne has joined #lisp
Fare has joined #lisp
<fe[nl]ix>
foojin: I used to do that back when I used Gentoo
<fe[nl]ix>
had local patches for 30-40 packages on average, most of which I sent upstream
<fe[nl]ix>
now I dream of having that much free time
v0|d has quit [Read error: Connection reset by peer]
Kundry_W_ has quit [Remote host closed the connection]
fikka has joined #lisp
Kundry_Wag has joined #lisp
stacksmith has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Kundry_W_ has joined #lisp
stacksmith has quit [Remote host closed the connection]
Kundry___ has joined #lisp
Kundry___ has quit [Remote host closed the connection]
Kundry_W_ has quit [Read error: Connection reset by peer]
EvW has joined #lisp
Kundry_Wag has quit [Ping timeout: 268 seconds]
<foojin>
fe[nl]ix: I'm going to install Gentoo for that very reason, but the last time I tried to switch I couldn't find a way to make emerge print dependencies in a sane way.
fikka has joined #lisp
warweasle has quit [Quit: Leaving]
svillemot has quit [Quit: reboot]
schjetne has quit [Ping timeout: 240 seconds]
<fe[nl]ix>
Gentoo definitely makes it easy to carry local patches
<fe[nl]ix>
although you can do it almost as easily using OBS (build.opensuse.org)
fikka has quit [Ping timeout: 260 seconds]
Kundry_W_ has joined #lisp
<Josh_2>
Gentoo is lit
<foojin>
Digging around in ebuilds just to understand why it installs X along with Y isn't fun. I think a package manager should do it for me, so I'll try it for real when I get around to patching it.
<Josh_2>
There are other tools for that
<Josh_2>
equery does what you want
warweasle has joined #lisp
jason_m has joined #lisp
<foojin>
By the way, what do you guys think about Guix? It looks like someone finally tries to make a "uniform" (configuration language-wise) distro for people who aren't afraid of programming.
svillemot has joined #lisp
fikka has joined #lisp
<foojin>
Josh_2: Like for every dependency, print a USE flag that pulls it in?
<foojin>
Josh_2: Assuming I haven't installed the package yet.
Mutex7 has joined #lisp
<Josh_2>
Best ask in #gentoo they will certainly know
<fe[nl]ix>
foojin: Guix is also for people with lots of free time. you might like it
<Josh_2>
Equery is how you see all the dependencies and descriptions of use flags etc
fikka has quit [Ping timeout: 256 seconds]
<foojin>
Josh_2: Then I'll try asking there when I get around to installing it again.
<foojin>
fe[nl]ix: The worst thing is that it's most likely true. "A distro for people with an \"optimal\" amount of free time to make it work like they want" looks like an unattainable ideal.
<foojin>
fe[nl]ix: Your milage about the amount of free time may also vary.
Kundry_W_ has quit [Remote host closed the connection]
<foojin>
*mileage*
fikka has joined #lisp
jealousmonk has joined #lisp
SaganMan has quit [Ping timeout: 256 seconds]
paul0 has joined #lisp
iqubic has joined #lisp
u0_a183 has left #lisp ["WeeChat 2.1"]
Kundry_W_ has joined #lisp
random-nick has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
fikka has quit [Ping timeout: 248 seconds]
raynold has joined #lisp
SaganMan has joined #lisp
random-nick has joined #lisp
<foojin>
And that brings me to the main question: how to balance mediocrity (lack of control) and theoretical enlightment with perfect tuning and doing boring stuff like reading someone's C code / autoconf output / minified JS?
shka_ has quit [Ping timeout: 256 seconds]
schjetne has joined #lisp
fikka has joined #lisp
<foojin>
TLDR: being proud of one's creations vs. making life easier and solving problems.
<fe[nl]ix>
adjust your expectations and learn to be proud of imperfect solutions
fikka has quit [Ping timeout: 268 seconds]
igemnace has quit [Read error: Connection reset by peer]
warweasle has quit [Remote host closed the connection]
warweasle has joined #lisp
energizer has quit [Quit: Leaving]
energizer has joined #lisp
fourier has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
brandonz has joined #lisp
<foojin>
fe[nl]ix: Seems like the way to go. The question of having the right to do so is best asked somewhere else anyways.
<foojin>
Sorry for exploding all over the place with something completely unrelated to the topic.
<foojin>
If I didn't make everyone sick already, I have a programming language-related question that I've been pondering for a while.
fikka has quit [Ping timeout: 256 seconds]
EvW has quit [Ping timeout: 260 seconds]
<foojin>
(this time I *will* get that patch upstream for sure)
addsub has quit [Ping timeout: 260 seconds]
fisxoj has joined #lisp
fikka has joined #lisp
schjetne has quit [Ping timeout: 240 seconds]
ChrisOei has quit [Ping timeout: 248 seconds]
warweasle has quit [Remote host closed the connection]
eli_oat has joined #lisp
Kundry_W_ has quit [Remote host closed the connection]
ChrisOei has joined #lisp
Kundry_Wag has joined #lisp
zxcvz has quit [Quit: zxcvz]
eli_oat has quit [Client Quit]
Kundry_Wag has quit [Remote host closed the connection]
Ryan_Burnside has joined #lisp
Kundry_W_ has joined #lisp
Ryan_Burnside has quit [Client Quit]
Kundry_W_ has quit [Remote host closed the connection]
random-nick has quit [Read error: Connection reset by peer]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Tristam has quit [Ping timeout: 240 seconds]
python476 has quit [Ping timeout: 268 seconds]
<phoe>
foojin: well, ask it
schjetne has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
ebzzry has joined #lisp
dvdmuckle has quit [Quit: Bouncer Surgery]
Oladon has joined #lisp
dvdmuckle has joined #lisp
python476 has joined #lisp
<foojin>
I was AFK for a bit. Trying to make it shorter at the moment.
Tristam has joined #lisp
Kundry_Wag has joined #lisp
Kundry_W_ has joined #lisp
schjetne has quit [Ping timeout: 264 seconds]
minion has quit [Remote host closed the connection]
ravi has quit [Remote host closed the connection]
minion has joined #lisp
ravi has joined #lisp
nightfly has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 264 seconds]
nightfly has joined #lisp
cage_ has quit [Quit: Leaving]
ChrisOei has quit [Ping timeout: 260 seconds]
ChrisOei has joined #lisp
<foojin>
What features can make programs written in a (hopefully not hypothetical) language easier to extend, given that
<foojin>
(1) the authors don't know in advance what would need to be extended,
<foojin>
(2) the user is able to run his own scripts (think Emacs)
<foojin>
(3) the extensions should take advantage of further upstream improvements by augmenting existing things, not reimplementing them.
<foojin>
According to the history of Emacs, Stallman admitted to having used dynamic scoping for this very reason.
Oddity has quit [Ping timeout: 240 seconds]
<TMA>
foojin: treat every interaction between parts of a system as an extension point; do not use the extension points internally
<foojin>
Lexical scoping is immensely useful, but anyone, who "fixed" a chunk of closure-heavy JS with a so-called "userscript", would surely admit to having had a hard time working around them.
dddddd has quit [Ping timeout: 260 seconds]
<phoe>
foojin: use CLOS wherever possible for your basic functionality
<phoe>
CLOS itself is insanely extensible with its BEFORE/AROUND/AFTER methods and ability to define subclasses and new methods on same generics
<phoe>
and other, more complicated parts.
<TMA>
foojin: a concrete representation of my advice is: use CLOS, but do not use :before, :around or :after methods yourself to let them be available as the extension points
<phoe>
^
Oddity has joined #lisp
eli_oat has joined #lisp
<foojin>
phoe, TMA: I've heard a lot about CLOS and MOP, they're the main reasons (besides Scheme's lack of libraries) I once again picked up "On Lisp". But what about a more "fundamental" data type, functions?
<foojin>
What do you think about an operator that creates a function F as if it was defined where another function G (given as a value) is (yes, it will impede compilation and possibly hold onto objects that no one will ever use).
dddddd has joined #lisp
<foojin>
That could solve the problem of people stashing too much stuff inside closures, making their functions "unwrappable".
<Bike>
what? 'where' it's defined?
<foojin>
Bike: That is, in the same lexical context, to make it possible to replicate any closure.
<Bike>
so it would require having the point at which any function is defined have its entire lexical environment saved along with the function?
<Bike>
and what does that even have to do with CLOS
vlatkoB has quit [Remote host closed the connection]
<theemacsshibe[m]>
Hello
<foojin>
Nothing. I do think that CLOS is a more proncipled and general solution, so the last question isn't related to that.
<foojin>
*principled
<phoe>
instead of saving all the state in a lexical closure, save that state in a CLOS instance and use methods instead of functions
<phoe>
the "fundamental" data type that you describe will give you more PITA than a CLOS-oriented approach.
DemolitionMan has joined #lisp
cibs has quit [Ping timeout: 260 seconds]
thijso has quit [Ping timeout: 260 seconds]
schjetne has joined #lisp
<foojin>
phoe: I see. That seems to even take care of what's in scope, so that whatever the original author used would still be available for the extension code.
doanyway has quit [Remote host closed the connection]
<DemolitionMan>
hi
<MichaelRaskin>
foojin: well, if you are ready to do partial recompilation, and to use a powerful enough code walker…
nightfly has quit [*.net *.split]
energizer has quit [*.net *.split]
Mutex7 has quit [*.net *.split]
Fare has quit [*.net *.split]
Fade has quit [*.net *.split]
runejuhl has quit [*.net *.split]
djh has quit [*.net *.split]
Mandus has quit [*.net *.split]
eagleflo has quit [*.net *.split]
Posterdati has quit [*.net *.split]
Kaisyu7 has quit [*.net *.split]
giraffe has quit [*.net *.split]
thinkpad has quit [*.net *.split]
jibanes has quit [*.net *.split]
trn has quit [*.net *.split]
DGASAU has quit [*.net *.split]
theBlackDragon has quit [*.net *.split]
jxy has quit [*.net *.split]
crsc has quit [*.net *.split]
[df] has quit [*.net *.split]
Aritheanie has quit [*.net *.split]
nuxdie_ has quit [*.net *.split]
<DemolitionMan>
any cl-influxdb user?
kori has quit [*.net *.split]
<aeth>
I personally see CLOS as *too* general and flexible of a solution
<foojin>
phoe: And the original author would have to deal with "undercomposition", if someone's extension requires their code to expose a particular point.
<aeth>
Nearly every time I started out with my own defgeneric/defmethod (as opposed to defining some method to fit someone else's API) I wound up converting it into a defun later.
jealousmonk has quit [Quit: Leaving]
Karl_Dscc has quit [Remote host closed the connection]
thinkpad has quit [Max SendQ exceeded]
thijso has joined #lisp
cibs has joined #lisp
nuxdie_ has joined #lisp
eli_oat has quit [Quit: Leaving.]
<aeth>
(I'm obviously excluding the methods that are generated automatically in defclass, of course)
<foojin>
MichaelRaskin: What's a code walker?
<Bike>
what does not using defgeneric have to do with being "too general"
<Bike>
i thought you were going to talk about method combinations or something, not the part everyone uses
giraffe has joined #lisp
<MichaelRaskin>
A tool that allows to traverse the code after it has been written, and maybe even make some changes
giraffe is now known as Guest43927
energizer has quit [Disconnected by services]
energizer has joined #lisp
thinkpad has joined #lisp
nightfly has joined #lisp
kori has joined #lisp
eli_oat has joined #lisp
Faed has joined #lisp
<aeth>
Bike: I think a lot of the time CLOS just offers flexibility where none is needed.
<p_l>
MichaelRaskin: sounds like Smalltalk rule-based refactoring
Fare has quit [Ping timeout: 240 seconds]
djh_ has joined #lisp
Mutex7 has quit [Ping timeout: 240 seconds]
Fade has quit [Ping timeout: 240 seconds]
djh has quit [Ping timeout: 240 seconds]
<Bike>
i don't think "i thought i needed methods, but actually i didn't" is a very interesting story
milanj_ has joined #lisp
<Bike>
like if nothing else you should elaborate on the particular circumstances or something
<Bike>
object oriented programming is kind of big now
<foojin>
MichaelRaskin: So it's a interface which can be used by the program to modify itself, relying on the compiler to keep everything available?
Mutex7 has joined #lisp
<foojin>
MichaelRaskin: Or did you mean a particular kind of editor that people use interactively?
milanj has quit [Ping timeout: 240 seconds]
eli_oat has quit [Client Quit]
<Bike>
a code walker is a program that operates on code while understanding lisp semantics
<Bike>
a compiler can be understood as a kind of code walker
<aeth>
Bike: Idk, I think a lot of modern styles (some of which Lisp could do before CLOS even existed) could probably be described as "post-OOP" styles.
<MichaelRaskin>
Bike: full semantics is not really needed for a code walker, but understanding the general Lisp code structure is a must
<Bike>
yes, i mean like, special operator syntax and stuff
damke has joined #lisp
<aeth>
Bike: If anything, I think we might be at the point where OOP is underused in places where it could be used, as a reaction to its earlier overuse.
<aeth>
(At least in new software.)
<Bike>
i thought i needed methods but i didn't, but also maybe we need more methods?
z3r0d5y[m] has joined #lisp
<aeth>
I'm replying to "object oriented programming is kind of big now"
damke_ has quit [Ping timeout: 264 seconds]
<aeth>
Most of the "big" hype in languages these days seems to be people trying to copy and paste Haskell into JavaScript or the JVM.
<Bike>
in a way that directly contradicts what you seemed to be saying before?
Quetzal2 has quit [Read error: Connection reset by peer]
<foojin>
MichaelRaskin: With this definition in mind, would Emacs+Paredit qualify?
<Bike>
no
<MichaelRaskin>
Paredit doesn't understand let as something special
<MichaelRaskin>
I think
<MichaelRaskin>
And definitely not advanced macros
<Bike>
i mean, it balances parentheses
<aeth>
Bike: It's not a contradiction because I was talking about my own personal overuse of a CLOS feature before, and now I'm talking about what trends I've observed in programming language hype.
<Bike>
it doesn't know anything particular about lisp
<theemacsshibe[m]>
Why not rainbow parentheses?
<theemacsshibe[m]>
When you do )))))))))) it makes a rainbow.
<MichaelRaskin>
foojin: I would imagine — in Lisp terms — a custom readtable that leads to every form being wrapped in a macro that expands to what was originally written (by default)
<aeth>
theemacsshibe[m]: Why would I want to do manual parentheses matching?
<aeth>
Even with a visual aid?
<MichaelRaskin>
But then a user can request some override or ask to inject some code somewhere
<theemacsshibe[m]>
Fair enough
<theemacsshibe[m]>
I've just never got the hang of editors adding them for me.
<MichaelRaskin>
Because rainbows are pretty?
<aeth>
I prefer highlighting key words (not keywords!), not background noise, personally.
<theemacsshibe[m]>
Also that.
fisxoj has quit [Quit: fisxoj]
<foojin>
MichaelRaskin: So it's not just a refactoring tool, it also works at runtime?
schjetne has quit [Ping timeout: 255 seconds]
nowhere_man has quit [Remote host closed the connection]
<MichaelRaskin>
Compile-time, hopefully
<Bike>
maybe it would help to actually use one
<Bike>
i think you have a serious misperception
nowhere_man has joined #lisp
<MichaelRaskin>
Or maybe it is better to say «load-time, doing some compiling»
<foojin>
Bike: I do, since it's the first time I've heard about it.
<Bike>
raskin wrote one, i forget what it's called though
Kundry_W_ has quit [Remote host closed the connection]
rumbler31 has quit [Remote host closed the connection]
<MichaelRaskin>
Agnostic-Lizard
jmercouris has quit [Ping timeout: 276 seconds]
rumbler31 has joined #lisp
<MichaelRaskin>
And in the repository, there is an example of the crazy wrap-everything trick
nullman has quit [Ping timeout: 264 seconds]
nullman has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
<foojin>
MichaelRaskin: I'll check it out.
Oladon has quit [Quit: Leaving.]
<foojin>
I see. It basically allows one to run arbitrary queries against the source code, check assumptions ... like Coccinelle, which kernel folks use, but for Lisp?
<Bike>
"program matching and transformation engine" yeah sounds about right
<Bike>
i mean it's intended for basically arbitrary operations
<foojin>
BTW I wanted to learn Coccinelle to hack on tmux, but there's not much in the way of resources besides a language grammar and kernel-related checks.
<foojin>
I thought it would make reasoning about C easier, but it turned out to be a PITA in its own right.
<MichaelRaskin>
Agnostic Lizard is quite limited
<MichaelRaskin>
It just goes through the code and calls callbacks
<Bike>
well, that's pretty much whart code walkers do...
varjag has quit [Ping timeout: 240 seconds]
<MichaelRaskin>
(in the process it macroexpands stuff)
<MichaelRaskin>
Well, it doesn't for example, come with a built-in variable renamer
<foojin>
Can it write out the transformed result with indentation intact?
fikka has quit [Ping timeout: 260 seconds]
<MichaelRaskin>
It doesn't know the input indentation — it gets just the Lisp forms
<theemacsshibe[m]>
fun fact: symbolics went defunct 22 years ago
<MichaelRaskin>
(also, it expands most macros, so old indentation is not always even applicable)
<Bike>
the lisp printer can remake the indentation, but it shouts
<Bike>
foojin: in lisp we don't usually deal with source code as text/character sequences. metaiconicity and all that shit
<MichaelRaskin>
I guess some tools from SICL or Second Climacs (primarily by Robert Strandh) could be applied, those do care about text-code correspondence
<Bike>
homoiconicity. mixing up some shit
<foojin>
Bike: It would come in handy to automatically enforce guidelines, like those used in kernel development. Is it a good idea to make additional context information available for cases like this?
<Bike>
What kind of context information?
fikka has joined #lisp
doanyway has joined #lisp
<foojin>
Say, the indentation level and type, like ((spaces 2) (tabs 3) (spaces 1)). If it's too granular, provide functions to assemble a textual representation based on those cues.
<Bike>
syntax stuff? that's not really the point of a codewalker
Kundry_Wag has joined #lisp
<foojin>
It would work just fine as-is, for checking code before trying to commit it, but large-scale refactoring would leave a mess instead of formatted code.
EvW has joined #lisp
<Bike>
you're thinking in terms of text. text is pretty much a separate question from what a code walker does.
<MichaelRaskin>
Well, for large-scale refactoring you could format from scratch
<aeth>
Comments are the real problem. Most CL code can be restored with *print-case* set to :downcase
<aeth>
And if you use fancier features so that isn't true then you probably already violate good style
fisxoj has joined #lisp
schjetne has joined #lisp
<foojin>
aeth: In other words it's not a problem, since there is such a thing as _the style_, which this *print-case* is aware of and everyone is encouraged to use?
<Bike>
not so much as there's a "the style", as that you can write a program that prints code as text in whatever style you want
<aeth>
Well, my original point is that you can theoretically restore everything but comments easily
<aeth>
Assuming you lower-case all of your symbols, as is usual
sjl has quit [Ping timeout: 268 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
fisxoj has quit [Quit: fisxoj]
<foojin>
Bike: Which in turn could make use of the code walker to distinguish forms based on their meaning. I didn't think of that.
Kundry_Wag has joined #lisp
<Bike>
you could. i think emacs is dumber, but still usually works
<Bike>
beach has a lot of stuff in mind for a really smart editor that uses that kind of knowhow
<Bike>
er, robert strandh.
Kundry_W_ has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
<foojin>
Come to think of it, there are actually people out there who make Emacs parse all those programming languages, probably reimplementing sizable chunks of existing parsers.
<foojin>
I'm still uncomfortable with paredit just reindenting the whole thing after an operation. The author even admits to the shortcomings of this approach in a comment before paredit-convolute-sexp.
Fare has joined #lisp
epony has joined #lisp
Pixel_Outlaw has quit [Quit: Leaving]
<foojin>
By the way, why do Lispers use ^L in their programs, if not to take advantage of Emacs' narowing/moving functions?
<p_l>
foojin: it's not narrowing, it's page breaks
<p_l>
so you'll find it in some really old code
jmercouris has joined #lisp
nowhere_man has quit [Remote host closed the connection]
nowhere_man has joined #lisp
pierpal has joined #lisp
<foojin>
p_l: I almost thought the reason would be to use it with some kind of tool that expects it. Maybe in Elisp world this is about consistency, seeing as it's used in Paredit, which doesn't seem too old.
<p_l>
foojin: ^L predates GNU Emacs, and afaik by itself gets hooked into "next/prev-page" commands
<p_l>
so in a sense, poor man's micro outliner for source code?
<p_l>
Whether the general idea happened first in Emacs is hard to say