kozy has quit [Remote host closed the connection]
fittestbits has joined #lisp
wigust has quit [Ping timeout: 256 seconds]
Kyo91 has quit [Ping timeout: 240 seconds]
kozy has joined #lisp
<megachombass> removed the read for strings
<megachombass> from*
<ebrasca> pjb: I have accident delete 2 times some code by trying to copy it ...
<megachombass> no worries ebrasca, just contrl+a control+c and just paste it in emacs
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
<megachombass> pjb: so yeah, as said before, only request are is to have a VM that reads compiled fibo and fact
<megachombass> must use registers, cant be stack based
<pjb> ok.e
ym has joined #lisp
<megachombass> from there, if you have sugestions
<ebrasca> It only copy "-" to my emacs ...
<ebrasca> megachombass: Make good parentesis in your functions.
<megachombass> ebra
<pjb> megachombass: as I said a few days ago, my suggestions are here: http://informatimago.com/articles/usenet.html#Compilation
<megachombass> ebrasca: yep im about to reindent
<pjb> megachombass: in particular, Toy Language Byte Code Compiler. https://groups.google.com/forum/#!msg/comp.lang.lisp/QMakibYYZRg/fgQulr5b4BwJ shows both a compiler to lap assembler, a lap assembler to VM byte code, and the VM.
<pjb> megachombass: Compile to a simple VM https://groups.google.com/forum/#!msg/comp.lang.lisp/HqV4B5aoj-c/yI4_av1C6KUJ is another example.
<pjb> megachombass: notice at the bottom of the post, how a call to (assemble (compile-program …)) --> #(0 0 6 0 42 0 0 1 4 25 0 2 0 0 2 4 21 0 1 6 5 0 2 6 5 0 3 6 0 4 6 7)
<pjb> megachombass: the VM called by execute interprets this byte code.
<megachombass> hum
<megachombass> i see plus or less
<megachombass> but kinda imposible for me to implement that in 23 hours remaining
<pjb> I gave those links several days ago.
<megachombass> knowing that i would need to translate that bytecode for my vm to read it
<pjb> Well, at this point it's probably wiser to only make cosmetic changes, if any.
<megachombass> pjb: i know, and seems several days im still on the VM xD
<megachombass> thats why i think the best is to have a "perfect VM" atleast
eivarv has quit [Quit: Sleep]
<pjb> No problem. Define "perfect".
rotty has joined #lisp
<megachombass> well, by perfect in my case is : " does essentially the same as the already existing code, but without beeing the existing code. make a change to the (move (loc - 1 0) :RO) that does weird operations with the FP that i cant explain myself. maybe do some functionallity changes on the VM, that can still load and execute the asm code without changing the asm code given as param (exept for the loc thing))"
borei has quit [Quit: Leaving.]
<megachombass> pjb: btw, i will never be thankfull enough for the help you giving me. really, my university career depends on this, and having people really passionated of progamming, whiling to spend their time on newbies like me, its beatifull
<megachombass> hope one day, when i will be senior dev, i will always have an irc open to do the same
<megachombass> right now i cant teach much xd
<pjb> You ust need to become passionate about programming yourself.
<pjb> j
<megachombass> i am, but i tend to abandonate quickly when i dont understand something
<megachombass> when well explained, i understand everything
<pjb> So you only need to explain it to yourself well, so you may understand it.
<pjb> Use google, read, learn, and give yourself a good explanation!
<megachombass> thats what i usually do
<megachombass> but with >"old technologies"< that i cant find handy examples , its hard
<pjb> I don't know what you're refering to here.
<ebrasca> I like someone explain me how to port mezzano to POWER9 cpu architecture and talos II.
<pjb> In the case of lisp since it exists since 60 years, there are a lot of handy examples!
<ebrasca> I have never write any assambly.
<megachombass> for me lisp is like from another era
<pjb> megachombass: how many of those tutorials have you read? https://www.cliki.net/Online%20Tutorial
<ebrasca> For me is lisp is new and fun.
<pjb> megachombass: how many of those books have you read? https://www.cliki.net/Lisp%20Books
<megachombass> specially ive been acepted on a internship in japan for this summer, where i will work on some android dev and web services based on REST
<pjb> And basically, they're only about Common Lisp, we've not started a list about Lisp in general!
<pjb> megachombass: great. Learn Japanese well, so you may be able to read robotics and AI papers!
<megachombass> im already learning it! among the 100000 things im learning atm
<megachombass> but to go to japan, imma need to pass the VM assignment xd
<pjb> megachombass: well read at least those two posts I linked above.
<megachombass> he told us friday that the most important was to have a compiler that compiles fibo and fact. i told him "we" only had a VM he said well, you're kinda fked, and that we had untill sunday to send him our work
<megachombass> i guss that if the VM is perfect,i will get atleast a 10/20
<pjb> You need that you still have to write the compiler?
<pjb> s/need/mean/
<megachombass> not exactly
<megachombass> i told him "we have a fraction of compiler"
pierpa has joined #lisp
<megachombass> i could make the compiler and send him
varjag has quit [Ping timeout: 256 seconds]
<megachombass> thats not ilegal
<megachombass> but how on earth imma build a fact fibo compiler that fits my VM in 1 day
<megachombass> if i take it from internet i would be fked as they have anticheat tools
<pjb> Oh, the compiler must run in the VM?
<megachombass> must run in A vm
openupsky has joined #lisp
<megachombass> not specially the one we've been twering around
<megachombass> but must fit in a vm with registers
<pjb> Yes. So your VM must be a lisp VM, not just an arithmetic VM.
<megachombass> yes, must be a lisp vm
ebzzry has joined #lisp
<pjb> Yes, you will need more instructions and data types.
smurfrobot has joined #lisp
<pjb> This is not a lisp VM. Here is one: https://clisp.sourceforge.io/impnotes/bytecode.html
<megachombass> yes, its not a lisp vm. we have to do a vm + or - like that one
damke_ has joined #lisp
varjag has joined #lisp
<megachombass> well wait, going to give you another link
damke has quit [Ping timeout: 265 seconds]
<megachombass> nvm i have lost it
<megachombass> let me check your links
<pjb> So you need a specification of the lisp VM; So you write in lisp a compiler that compiles lisp to lap assembler. Then you write an assembler that assembles the lap assembler to the lisp VM bytecode. And you need to implement the lisp VM. Then you can compile everything with CL. Then once you have a running VM, you compile your compiler with the compiler you compiled in CL, thus obtaining your compiler in lap assembler. You asse
<pjb> it, and you load it in the lisp VM. then you can run it on itself.
<megachombass> ye, he told us the ultimate goal was to be able to "compile the compiler"
<pjb> Anyways, as I said earlier, your current VM can't be used to run the compiler on itself, since it has no instruction to deal with things like (move (loc -1 0) :r0). The instructions it has are only move, incr, decr, add, sub, mult, div, jmp, cmp, jg, jge, jeq, jl, jle, jne, jsr, push pop rtn.
<pjb> It doesn't even have I/O, so you cannot implement a lisp reader.
varjag has quit [Ping timeout: 248 seconds]
hhdave has quit [Quit: hhdave]
<pjb> megachombass: you're not there at all.
<megachombass> wait a sec, the vm does handle (move (loc -1 0) :r0)
<megachombass> it have the functions in it
<megachombass> for that case
<pjb> Write in assembler a program that will generate move instructions!
<megachombass> well, the ASM for fibo does have moves :(MOVE (:DIESE 2) :R0)
<pjb> Write in assembler a program that takes two arguments a and b will generate for example, the binary code for a function that takes 1 argument x and computes a*x+b.
<megachombass> puts constant 2 into register RO
<pjb> (funcall (generate-line-function 3 2) 1) --> 5
<pjb> (generate-line-function 3 2) --> #<ccl:compiled-lexical-closure (:internal generate-line-function) #x3020060BE8FF>
<pjb> In lisp: (defun generate-line-function (a b) (lambda (x) (+ (* a x) b)))
marusich has quit [Quit: Leaving]
<megachombass> hum, just lacking lambda?
<megachombass> all is base on this guy work : https://github.com/thibaudcolas/clisp-compiler-vm
<pjb> It should be called this way: (move (:diese 3) :r0) (push :r0) (move (:diese 2) :r0) (push :r0) (jsr (@ generate)) (move (:dieze 1) :r1) (push :r1) (jsr :r0)
Rawriful has quit [Quit: WeeChat 1.4]
<megachombass> and why whould the VM right cant handle those moves?
<megachombass> right now*
turkja has joined #lisp
<pjb> the problem is in what @generate will return in :r0
<pjb> What will you compute and put in :r0?
<megachombass> in my understadning, jsr will go to the generate function, does not specially put something in :R0
<pjb> the generate function must return a new function (more precisely, a closure). Let's say that it returns it in the register :r0. What will you put there?
<pjb> What can you compute with the instructions of the VM to be stored in r0?
<pjb> Jotice that I use (jsr :r0) next. So what should r0 contain?
<pjb> s/J/N/
<megachombass> th result of generate?
<pjb> Which is WHAT?
<megachombass> and i add his adress to the stack?
<pjb> the address to WHAT?
<megachombass> we dont know yet, as we have to execute the generate function to know
<pjb> No, you have to WRITE the function generate.
<pjb> I'm trying to show you that it is IMPOSSIBLE to write a function generate that does what is required!
<megachombass> hum
<pjb> The function generate will return the address of the generated function.
<megachombass> could we modify the VM to actually take this into account?
babalua has joined #lisp
<pjb> When we run (jsr :r0), the PC will be loaded with the content of r0. Now the question is what should be stored at this address? Ie, at the address of the generated function?
babalua has left #lisp [#lisp]
<megachombass> it should be the entry of the function, aka the defun part
<megachombass> like at the adress of pc returned by R0, it should contain (defun generate)
<megachombass> or something like this
pmc_ has joined #lisp
<dmiles> in a WAM VM it might have (trust generate) :P
<pmc_> Why do I get a warning in SBCL when I type at the toplevel: (setf x 'a) ?
<dmiles> (means that the next instruction promises to be the trustworthy code of generate :P
fikka has quit [Ping timeout: 240 seconds]
<pjb> megachombass: the memory cell at that address must contain (entreefonction). How do you write a function such as @generate, to store (entreefonction) in memory?
<Bike> pmc_: cos you haven't told it what x is. doesn't it say something like that? "undefined variable" maybe?
<pjb> megachombass: you have move :dieze, add sub mul div cmp to do it!
* dmiles apologizes )
<pjb> megachombass: notice that load-vm is written in Common Lisp, not in assembler. You cannot write load-vm in your VM assembler!
<pmc_> bike: oh, so I have to do (defparameter x 'a) ?
<pjb> megachombass: you have two alternative: either you move your VM toward your assembly, adding data types and instructions to deal with Sexp in the VM, or you must write an assembler that converts the sexps into numbers and only numbers.
<Bike> pmc_: something like that, yes.
<pjb> and run-vm must only deal with numbers, since that's all that your VM can process!
<megachombass> i believe its better to move VM towards assembly
<pmc_> bike: thanks
<megachombass> it will add more functionalities to the VM (as i have not added much code to the actual vm......)
damke has joined #lisp
<pjb> megachombass: if you choose the later option, you should notice that if you want to use the same compiler generating the same assembler, you will need to implement in your VM that works only with numbers, a lisp VM, ie. you will have to implement functions such as CONS, CAR, CDR, NULL, INTERN, READ, etc…
<pjb> megachombass: this is what is done by what we call "native lisp compilers".
<pjb> megachombass: if you choose the earlier option, then you can keep most of the current compiler and assembler, since you have a lisp VM. This is similar to the clisp "lisp byte code compiler".
smasta has quit [Ping timeout: 268 seconds]
markong has quit [Ping timeout: 256 seconds]
<megachombass> defintivly option 1
<megachombass> if i had time, option 2 would be great
<pjb> megachombass: in either case, we're not talking about 0.2 BTC. It's rather something like 20,000 BTC, to find somebody with a time machine to send you back last month.
<megachombass> well
presiden has quit [Ping timeout: 256 seconds]
<megachombass> and what can be done
<megachombass> for cheap
<megachombass> in the remaining time i have
damke_ has quit [Ping timeout: 264 seconds]
<pjb> (assuming 20 million USD is what it takes for a 1-month time travel, but I could be wrong, it could be 200 million or 2 billions).
<megachombass> im willing to pay for something half decent i cant send to teacher tomorrow
<pjb> megachombass: You have barely the time to write the specifications and a design sketch for your system.
presiden has joined #lisp
damke_ has joined #lisp
rotty has quit [Ping timeout: 252 seconds]
<megachombass> thats why im basing on https://github.com/thibaudcolas/clisp-compiler-vm
<pjb> megachombass: Have you heard about Ariane 5?
<megachombass> the rocket?
<megachombass> isnt that one who blow up
<megachombass> coz of a byte error?
<pjb> Basically because they used a module without reading the specifications.
<pjb> The interface between modules is not performed at the level of the API. It's performed at the level of the specifications.
Folkol has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 264 seconds]
<megachombass> well, thanks god im not trying to make a rocket
<megachombass> and in my case, if it explodes mid air, aint a big deal
<megachombass> right now it barely takes off xD
pmc_ has quit [Quit: Leaving]
smasta has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
<aeth> megachombass: How much time do you have?
<megachombass> untill tomorrow midnight
<pjb> less than 22 hours.
heurist` has joined #lisp
wmannis has joined #lisp
heurist has quit [Ping timeout: 265 seconds]
smurfrobot has quit [Remote host closed the connection]
<aeth> How many of those hours can you spend on this project?
<megachombass> well
<megachombass> i have to sleep
<megachombass> so 22-8
<megachombass> 14h
<aeth> I'm guessing only 10-12 productive hours in that period, at most.
rotty has joined #lisp
<megachombass> y
<megachombass> knowing im a pure garbage in lisp
<megachombass> i will , by myself , do 2 tiny mods in 12h
pagnol has quit [Quit: Ex-Chat]
<aeth> Imo, anticipate the worst case and schedule a way to try and finish the project in 8-9 hours.
<megachombass> by myself i cant
<ebrasca> megachombass: Good luck
Chream_ has joined #lisp
<megachombass> all significative changes have been done by pjb
<pjb> design and implement a VM able to run self modifying programs. Design and implement the assembler and compiler so that it can be targetted to that VM.
damke has quit [Ping timeout: 264 seconds]
<megachombass> like in 1 hour he has done more than me in a week
<pjb> Basically, you have to know that very well, you have to know lisp very well, and you have to start from scratch.
fikka has joined #lisp
<megachombass> exactly, and i know the vm comme ci comme ca, im a dumbass in lisp, and if i start from sracth i will do nothing in the remaining time
<pjb> I would say, there would be a 0.6 probability I could do it in 22 hours, but I would ask form more than 2 BTC, and even with the money I'm not sure I'm motivated to do it. And unfortunately, I'd have to sleep too, so…
openupsky has quit [Ping timeout: 260 seconds]
<pjb> So this is where the lesson is taught. Start your projects early!
<megachombass> and i clearly dont have 2 btc
<megachombass> beeing a stundent xd
<megachombass> THEREFORE, i cant maybe purchase a couple of hours of your time to work on whats already been done?
<megachombass> i could*
<pjb> Happily, you don't need a user interface or a debugger!
<megachombass> like 1 hours of yours is 1 week of mine
Chream_ has quit [Read error: Connection reset by peer]
<ebrasca> megachombass: Everyone need to lear some day.
<aeth> You need to (1) understand the subject, (2) be comfortable in the language being used, and (3) have written something similar before.
<ebrasca> megachombass: I am doing mi fat32 XD.
<aeth> In order to do it in a day.
<megachombass> yep
<megachombass> pjb meets like all the requirements
<megachombass> almost wondering if he is not my teacher xd
Chream_ has joined #lisp
<aeth> The problem is that the only people who meet the requirements are people who won't do people's homework, especially not for free.
<Bike> if you're worried about being kicked out of university, paying someone to do your homework seems like a bad move to me
<megachombass> well actually noone will never know that i purchased it
<aeth> (and if you want to find some shady Internet figure to pay, doing it in a public channel is not a good idea)
<Bike> the perfect crime
<megachombass> as if he makes the code, it wont be on the internet
<aeth> This isn't a major language, you probably won't be able to find anyone.
<ebrasca> What if he get your money and don't make any code?
<aeth> ebrasca: Then megachombass can issue a chargeback on the BTC
<aeth> oh wait
<ebrasca> Yea
<megachombass> well, in this case i will be scammed and kicked of the university
<megachombass> double fked
<megachombass> but atleast i would've tried
<zazzerino> good thing you're not on the internet right now
<megachombass> zazzerino: why you say so?
<ebrasca> megachombass: Pay me now what you can , I can make your code trust me.
<megachombass> ebras
<megachombass> ebrasca: :P
<ebrasca> Yea trust some random guy in some IRC.
<zazzerino> megachombass: He's trying to rip you off. I'll do it for just 1 BTC
<aeth> The thing is, programmers can make a lot of money with their talents without having to resort to shady internet deals.
<megachombass> pjb: common, just a couple hours of your time! you save my life, and you earn some money
<megachombass> really, im fking desesperate
<aeth> At this point, the best you can do is partial credit, and try to write as much as possible and do as much as possible.
<aeth> Buy coffee, go for a walk, think about how to implement as much as you can in 8-10 hours of work. Keep in mind that a sleep break will probably make you more productive, so don't pull an all-nighter.
<megachombass> aeth:
<megachombass> the thing is i dont really know what and how to implement from my VM
<megachombass> right now, adding just a couple functionalities to the VM, make the code nicier would be enough
<aeth> You need to follow a strict schedule right now. Break up the issue into features. Estimate the time. Find out what you think you can do in 8-10 hours. Prioritize on getting it as complete as possible. Ignore polish. Any optimizations or polish can just be commented in a note that you could update later, when you have time, if you need to use that program later.
<aeth> Don't think about nicer, just think about crossing items off of a checklist.
smurfrobot has joined #lisp
<aeth> #lisp will tell you the proper, idiomatic way of doing things. That is nice. That will save you time maintaining the code and make your code readable to the community. What you need, though, is a giant mess of spaghetti as long as you can get it done.
<megachombass> well, in any case, im off to sleep now
<megachombass> will come back tomorrow for more begging xd
<ebrasca> megachombass: good nigth
jonh has left #lisp ["WeeChat 0.4.2"]
<zazzerino> megachombass: Good luck with your assignment. Keep in mind the more effort you put into this, the more people will be willing to help you.
<ebrasca> Someone like to read my fat32 code?
<ebrasca> Here link : http://termbin.com/n7qs
Karl_Dscc has joined #lisp
<ebrasca> I like to make 1 function from 3 : read-dir-from-cluster , remove-dir-from-cluster and write-metadata.
<ebrasca> They are almost equal , but I can't find how to unifi them.
megachombass has quit [Ping timeout: 260 seconds]
<aeth> Oh, and for the record, my advice (create technical debt! just meet the features!) is only applicable when you have less than a day to do more than a week's worth of work. It's terrible advice under normal circumstances.
<aeth> If you do this for most projects you'll find that it's easier to rewrite it than to improve it. And that's a really bad thing.
<ebrasca> aeth: I understand I have 3 similar functions in mi code and don't know how to refactor them.
smurfrobot has quit [Remote host closed the connection]
<aeth> Oh, and lots of coffee helps for the last day of an impossible deadline.
<aeth> (Unless you already drink too much coffee.)
smasta has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 264 seconds]
<aeth> Oh, and don't make panic coding huge projects at the last minute a habit, though. Not only do you create terrible programs, you also can only get away with this a few times in your life.
EvW has quit [Ping timeout: 265 seconds]
<aeth> (It's very unhealthy.)
fikka has joined #lisp
<ebrasca> Here working link : http://termbin.com/dxcn
<aeth> ebrasca: woah
<aeth> megastruct
<ebrasca> aeth: ???
<aeth> That's the largest struct I've seen in CL
<aeth> ebrasca: what do you need help with?
<ebrasca> aeth: Do you think I can make 1 function from read-dir-from-cluster , remove-dir-from-cluster and write-metadata?
smasta has joined #lisp
<aeth> If it has a lot of common structure, but that structure is a wrapper around a body that's different, it looks like you might want a macro
<aeth> i.e. the functions remain different, but the common, duplicated part is removed from the functions
<aeth> The common part is a loop, so just glancing at it, it looks like the do-foo macro pattern might be a good idea.
<ebrasca> I have read 1 time do-prime in practical common lisp.
damke has joined #lisp
wigust- has quit [Ping timeout: 264 seconds]
<ebrasca> With last refactoring read file changed from someting like 2 million bytes consed to 217,376 bytes consed. XD
<aeth> careful, eliminating consing can be addictive
damke_ has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
<ebrasca> aeth: This time it is side effect of making it more readable.
damke has quit [Ping timeout: 264 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<ebrasca> mmm it is [03:21] here
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
fluke` has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
smurfrobot has joined #lisp
<ebrasca> aeth: I think someting like do-prime can work. Thanks you and good nigth.
wmannis has quit [Quit: wmannis]
fikka has joined #lisp
zazzerino has quit [Remote host closed the connection]
d4ryus3 has joined #lisp
smasta has quit [Ping timeout: 276 seconds]
d4ryus2 has quit [Ping timeout: 240 seconds]
damke_ has quit [Ping timeout: 264 seconds]
dented42 has joined #lisp
smurfrobot has quit [Remote host closed the connection]
king has joined #lisp
igemnace has joined #lisp
windblow has quit [Quit: windblow]
ebzzry has quit [Ping timeout: 256 seconds]
damke_ has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
pillton has joined #lisp
cromachina has joined #lisp
fikka has joined #lisp
cromachina_ has quit [Ping timeout: 240 seconds]
omilu has quit [Ping timeout: 260 seconds]
troydm has joined #lisp
thinkpad has quit [Quit: lawl]
smurfrobot has joined #lisp
smasta has joined #lisp
smasta has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
warweasle has joined #lisp
<beach> Good morning everyone!
<warweasle> Good morning...or as we call it here, almost midnight.
<warweasle> Well now I feel silly.
<beach> No need to feel silly.
oleo has joined #lisp
<pjb> ebrasca: yes, it looks like you have a common loop in those functions. You could put it in a high order function to which you would pass the body as a closure.
fikka has quit [Ping timeout: 240 seconds]
<cryptomarauder> I just want to thank the entire lisp community for NOT using camelCase. There are a few exceptions but generally that schizophrenic code style hasn't infected the holy order of the knights of lambda calculus. *tips hat*
<warweasle> cryptomarauder: That's only possible because of lisp itself. That whole '-' sign being a math thing and all...
<pjb> ebrasca: something like: (map-cluster (lambda (i name …) …) cluster) or (docluster ((i name) cluster) …)
fikka has joined #lisp
<warweasle> Only lisp could transend mathematics itself.
smurfrobot has quit [Remote host closed the connection]
adolf_stalin has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
<cryptomarauder> warweasle: that's true. I think I was lead to sensible style when I read the style guide of the Linux kernel. Ill admit, im a bit of a Torvalds fanboy. But really that's because hes nearly always right which is rare. Rare like Theo de Raadt being wrong.
_whitelogger has joined #lisp
Oladon has quit [Quit: Leaving.]
fikka has quit [Ping timeout: 264 seconds]
smasta has joined #lisp
fikka has joined #lisp
daniel-s has joined #lisp
smasta has quit [Ping timeout: 260 seconds]
<aeth> Proper camelCase in CL would be worse than camelCase in most languages.
<aeth> you'd have to write fooBar like |fooBar|
<aeth> otherwise it just becomes FOOBAR
smurfrobot has joined #lisp
JonSmith has joined #lisp
<warweasle> aeth, That would be FOOBAR
<warweasle> Programming question: In your favorite language, write a program to make a string all upper case....
<aeth> I would argue, though, that if you're going to start escaping things, might as well use real spaces instead of camelCase. (defclass |foo bar factory| ...)
<aeth> Only Common Lisp can scale to truly long class names. Java has nothing on CL here.
<beach> warweasle: (string-upcase string)
<pjb> aeth: (setf (readtable-case *readtable*) :preserve) (DEFUN fooBar (noNeedForEscapes noneedForesCapes) (+ noNeedForEscapes noneedForesCapes)) (fooBar 1 2) --> 3
JonSmith has quit [Ping timeout: 256 seconds]
<pjb> aeth: there's even the :invert option, but I prefer :preserve.
<aeth> pjb: (1) I wouldn't want to program in a project that requires doing that to the readtable. (2) You'd have to have a lower case alias for everything or you just made your program even more unreadable than merely using camelcase
<aeth> But, yes, valid
<aeth> I shouldn't have said "you'd have to write", I should have said "you would probably write"
<pjb> aeth: actually case sensitivity is nice. C uses it. Modula-2 uses it. Most languages use it.
<pjb> Anyways, good night!
<aeth> CL has a lot less of a need for case-sensitivity because of its many namespaces for things afaik.
smurfrobot has quit [Remote host closed the connection]
<aeth> pjb: good night
karswell has quit [Remote host closed the connection]
schoppenhauer has quit [Ping timeout: 240 seconds]
karswell has joined #lisp
pjb has quit [Ping timeout: 240 seconds]
schoppenhauer has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has quit [Ping timeout: 240 seconds]
pierpa has quit [Quit: Page closed]
dented42 has joined #lisp
fikka has joined #lisp
igemnace has quit [Quit: WeeChat 2.0.1]
warweasle has quit [Quit: Leaving]
pjb has joined #lisp
smasta has joined #lisp
smasta has quit [Ping timeout: 260 seconds]
zmt00 has quit [Read error: Connection reset by peer]
zmt00 has joined #lisp
papachan has quit [Quit: WeeChat 2.0.1]
gglitch has joined #lisp
gilez has quit [Ping timeout: 256 seconds]
vap1 has joined #lisp
vaporatorius has quit [Ping timeout: 256 seconds]
<dmiles> does anyone know where i can get the lisp version of this function https://gitlab.com/ivargasc/ecl/blob/develop/src/c/compiler.d#L2737 ?
<dmiles> i assume its left the repository some time ago
solyd has joined #lisp
<Bike> alexandria has a few functions for parsing lambda lists.
<dmiles> right on.. there are just a few .lsp files that depend on it.. so i started writing it by hand and relized it must already exist
fikka has quit [Ping timeout: 240 seconds]
* dmiles started realizing how many he is ending up writting by hand
<dmiles> i almost
* dmiles didnt have a complete thought there just an acidently bump of an <eter> key
gglitch has quit [Ping timeout: 252 seconds]
solyd has quit [Quit: solyd]
fikka has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
nika has joined #lisp
<asarch> Where could I learn about the "standard library" of Common Lisp?
<asarch> In the sense of, "this function is for..., that function is for..."?
<|3b|> ^ is (more or less) the standard
<|3b|> for example http://www.lispworks.com/documentation/HyperSpec/Body/f_cons.htm tells you what CONS does
* |3b| isn't sure if that is exactly what you are looking for or not
damke has joined #lisp
safe has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
solyd has joined #lisp
<asarch> Well, if this was C, the description of all the functions in <string.h> for example
<beach> clhs 16
dddddd has quit [Quit: Hasta otra..]
<beach> asarch: ↑
<asarch> Thank you
<asarch> Thank you very much guys
Bike has quit [Quit: Lost terminal]
<asarch> I was reading the chapter 2 from "Land of LISP: Learn to Program in Lisp, One Game at a Time!" book and I found the flet command
<beach> clhs flet
<beach> asarch: Try to use the right terminology. Common Lisp doesn't have any "commands". FLET is a "special operator".
<asarch> D'oh! :'-(
<asarch> The book uses the term "command"
<beach> I am sorry to hear that.
<asarch> You can check the sample chapter in Amazon
<asarch> That book is a lie!
<beach> I don't think I would like that book.
* |3b| thinks it is an OK simplification if it succeeds at its goal of making it interesting to get started
<asarch> Ah, touche!
Pixel_Outlaw has quit [Quit: Leaving]
smasta has joined #lisp
oleo has quit [Ping timeout: 265 seconds]
solyd has quit [Quit: solyd]
* |3b| has the impression it tries to present (lisp) programming as "interesting/fun thing you might want to investigate more on your own" as opposed to "boring/difficult thing that must be pounded into your head by authority figures", which seems like a good goal :)
smasta has quit [Ping timeout: 240 seconds]
<|3b|> hopefully those it convinces would then be motivated to go beyond the simplifications
<beach> I am not saying the book is bad. I am saying I personally don't like that style.
<beach> It is perhaps a generational kind of thing.
<beach> Just the cover makes me not want to open it.
fikka has quit [Ping timeout: 256 seconds]
<whoman> why is it so expensive ?
<whoman> it is a great book
<beach> whoman: So that the publishing company can become rich at the expense of the author.
<whoman> the art style is personal, very well done. its inspired realm of racket but i havent seen that
<whoman> $750?
<|3b|> because amazon :/
<beach> 37 UKP
<asarch> If a book would cost, for example, $100 USD. How much exactly do you earn from every book?
<beach> 40 € at amazon.fr
<|3b|> does .mx have some different interpretation of $ ? prices seem odd there in general if interpreted as USD
<beach> I think you are right about that.
<beach> asarch: A few $ at most.
<asarch> 40 € for every book?!!!
<|3b|> randomly clicking around front page, razor blades for $99
<asarch> Wow!!!
<asarch> That's great!
<beach> asarch: The author makes a few $ at most.
<asarch> ~10%
<beach> I was quoting the price of the book in different countries.
<asarch> D'oh! Sorry
<beach> asarch: That is why I use self publishing instead. The margin is higher, and I can set the price myself (it has to be higher than the printing cost).
<asarch> It seems that nowadays is more profitable to become a YouTuber than a writer :-(
<|3b|> ok, apparently peso uses $ also :/
<beach> |3b|: That's what I was guessing.
<asarch> $1USD = ~$20MXP
<|3b|> ok, that makes sense then :)
solyd has joined #lisp
<asarch> "Programming languages teach you not to want they cannot provide" —Paul Graham, ANSI Common Lisp
<asarch> The best quote I ever read!
<beach> It is also ungrammatical.
<asarch> s/to want/to what what/
quazimodo has quit [Ping timeout: 240 seconds]
<whoman> what
<asarch> Yeah, a typo. Sorry
<asarch> Programming languages teach you not to want what they cannot provide
fikka has joined #lisp
<asarch> Sorry, sorry
<whoman> aha
<beach> There is definitely some truth to that.
solyd has quit [Client Quit]
<beach> That looks like an illegal copy.
<asarch> "(defun addn (n) #'(lambda (x) (+ x n))). What does addn look like in C? You just can't write it"
<beach> Correct, you can't write it.
vlatkoB has joined #lisp
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<asarch> Anyway. Thank you very much guys
<asarch> Have an excellent and a great day :-)
<asarch> See you later
asarch has quit [Quit: Leaving]
gglitch has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
Chream_ has joined #lisp
dieggsy has joined #lisp
gglitch has quit [Ping timeout: 265 seconds]
adolf_stalin has quit [Quit: Leaving...]
dieggsy has quit [Ping timeout: 252 seconds]
malcom2073 has quit [Quit: No Ping reply in 180 seconds.]
malcom2073 has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
smasta has joined #lisp
thinkpad has joined #lisp
fikka has joined #lisp
nika has quit [Quit: Leaving...]
nika has joined #lisp
smasta has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 276 seconds]
__|--|__ has joined #lisp
nika has quit [Quit: Leaving...]
thinkpad has quit [Quit: lawl]
thinkpad has joined #lisp
thinkpad has quit [Client Quit]
__|--|__ has quit []
thinkpad has joined #lisp
damke_ has joined #lisp
thinkpad has quit [Client Quit]
damke has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
thinkpad has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
rippa has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
_mjl has joined #lisp
smasta has joined #lisp
fikka has joined #lisp
smasta has quit [Ping timeout: 256 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mishoo has joined #lisp
fluke` has quit [Remote host closed the connection]
fluke` has joined #lisp
arbv_ has joined #lisp
arbv has quit [Ping timeout: 260 seconds]
arbv_ is now known as arbv
loli has quit [Quit: WeeChat 2.0.1]
loli has joined #lisp
mlf has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
arbv has quit [Ping timeout: 252 seconds]
arbv has joined #lisp
fluke` has quit [Remote host closed the connection]
arbv has quit [Ping timeout: 248 seconds]
arbv has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
gglitch has joined #lisp
fluke` has joined #lisp
gglitch has quit [Ping timeout: 252 seconds]
Murii has joined #lisp
flak has joined #lisp
ikopico has quit [Ping timeout: 248 seconds]
anaumov has quit [Ping timeout: 248 seconds]
dim has quit [Ping timeout: 248 seconds]
SaganMan has joined #lisp
rippa has quit [Ping timeout: 248 seconds]
oleo has joined #lisp
ikopico has joined #lisp
dim has joined #lisp
vlatkoB has quit [Quit: No Ping reply in 180 seconds.]
hvxgr has quit [Ping timeout: 260 seconds]
vlatkoB has joined #lisp
damke has joined #lisp
dim has quit [Ping timeout: 248 seconds]
hvxgr has joined #lisp
heurist` has quit [Ping timeout: 248 seconds]
<dmiles> hrrm echolisp used to do.. (in-package 'system)
<dmiles> ecolisp*
<dmiles> was that never legal?
damke_ has quit [Ping timeout: 264 seconds]
<dmiles> (due to in-package being a macro?)
<phoe> dmiles: (QUOTE CL-USER) is not a string designator
<dmiles> right!
<phoe> I mean
<phoe> (QUOTE SYSTEM)
<phoe> in-package is a macro and accepts #1=a string designator, not something that evals to #1#
fikka has joined #lisp
<dmiles> just weird that ecolisp used to let itself get away wiuth that.. sinc ei swear i have seen at least one other lisp do that as well
<dmiles> some lisps nowadays if they want to do that will do (%in-package 'system)
saki has quit [Quit: saki]
<dmiles> (defmacro in-package (name) `(eval-when (:compile-toplevel :load-toplevel :execute) (%in-package ,(string name))))
<dmiles> anyhow i just updating the 1995 files to use #:system instead of 'system
<phoe> dmiles: maybe don't update the files
Folkol has joined #lisp
<phoe> if you're interpreting another lisp dialect, maybe just shadow IN-PACKAGE
<phoe> with something that implements it as a function.
BitPuffin has joined #lisp
<dmiles> LarKC, CYC which used their own lisp dialects do impl as a function.. and a few years later 2001 when renamed to ECL.. it started doing "SYSTEM"
<dmiles> (EcoLisp that is)
saki has joined #lisp
<dmiles> I am using EcoLisp to bootstrap my WAM-CL lisp as back in the old days EcoLisp had not C-ified everyhting yet the way ECL has
<dmiles> "back when things were much simpler" :)
nirved has joined #lisp
<dmiles> I think what happens is a developer will convert a .lisp function to .c .. get tired of converting that every build and start improving it from C while erasing the original .lisp
solyd has joined #lisp
<dmiles> so even if you grep the source repostiory the .lisp function is way behind the improvments maintained in C
solyd has quit [Client Quit]
Folkol_ has joined #lisp
solyd has joined #lisp
Folkol has quit [Ping timeout: 256 seconds]
heurist` has joined #lisp
parjanya has quit [Remote host closed the connection]
solyd has quit [Quit: solyd]
shrdlu68 has joined #lisp
<shrdlu68> Good afternoon, fellow sentient beings!
<phoe> GOOD MORNING, FELLOW HUMAN.
<shrdlu68> I've been messing around with compression, and I'm pleased that I've written something that appears to beat gzip in terms of compression ratio. It's based on a simple binary arithmetic coder.
shifty has joined #lisp
nika has joined #lisp
Tobbi has joined #lisp
smurfrobot has joined #lisp
knicklux has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
smasta has joined #lisp
Tobbi has quit [Client Quit]
smurfrobot has quit [Ping timeout: 276 seconds]
smasta has quit [Ping timeout: 256 seconds]
shrdlu68 has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
milanj has joined #lisp
Amplituhedron has quit [Read error: Connection reset by peer]
<Folkol_> Sounds good, shrdlu68! Did you try different gzip compression levels? How do they compare in speed?
Folkol_ is now known as Folkol
<stylewarning> Hey folks
<stylewarning> Is there a WAM implemented in CL?
shka_ has joined #lisp
chiyosaki has joined #lisp
<dmiles> the only one i have heard of
saki has quit [Ping timeout: 260 seconds]
<stylewarning> sjl is really becoming a star Lisp coder
<stylewarning> (Not to be confused with a *Lisp coder)
<stylewarning> I’ve been interested in donating money to a pool to restore and modernize old Lisp projects from the 70s–90s.
solyd has joined #lisp
<stylewarning> There’s so much useful but bitrotted code.
solyd has quit [Client Quit]
nowhere_man has quit [Ping timeout: 256 seconds]
<stylewarning> For instance, I discovered Yale Haskell, which seems to have CL compatibility. Would love to see it run again.
<dmiles> the AI-ish programs of those eras especially?
<stylewarning> Yes
<dmiles> I'd like to see people put such programs together using a common blackboard (to share overlapping datastructures)
<dmiles> a 700 million dollar project called CYC was started to do that
<stylewarning> What would a “common blackboard” give to anyone
<dmiles> its allows SHRDLU to move arround MUD objects and not just blockworld
<dmiles> it allows DAYDREAMER to use SWALEs data which daydreamer was designed for but never got a chance
<dmiles> allows PAM and SAM to work togethere
<stylewarning> I think that’s maybe too optimistic. (:
<dmiles> Plan applier mechanism and Script applier mechanism
<dmiles> such a system got built and is now currated by Cycorp
groovy2shoes has quit [Ping timeout: 246 seconds]
<stylewarning> I don’t buy the “got built” part in the sense you’ve described
<stylewarning> AFAIK they built some huge DB of common knowledge with some reasoning skills
<dmiles> you are correct not even as employees has been allowed to combine any of the above systems :P
shrdlu68 has joined #lisp
<dmiles> those *some* systems did get put in.. such as SHOP2 + a charniac parser or two
<dmiles> those/though
<dmiles> bit those systems are bitrotting even in Cyc
fikka has quit [Ping timeout: 256 seconds]
<dmiles> (as most of the new employees are into machine learning)
visof has joined #lisp
visof has joined #lisp
visof has quit [Changing host]
<dmiles> here is a chanriac like output (to see what i am talking about ... https://docs.google.com/document/d/1rdI_f-2YnX0e2RD6rGAY57YAqzLj2xHsk36m5HT6SoM/edit )
safe has quit [Read error: Connection reset by peer]
<dmiles> erm sorry a HSPG parser
<dmiles> such a program can and shold be combined with a bl;ackboard
fikka has joined #lisp
<stylewarning> Idk maybe maybe not
<stylewarning> What I want is far more humble: make old code work again
<dmiles> "AFAIK they built some huge DB of common knowledge with some reasoning skills" <- very close.. what they built was a Knowledge Representation language that was ideal for how programs would share data
<dmiles> (of course along with what you said.. they just dont promote that part of the project.. which btw was the only reason for funding)
* dmiles is just very irritated at cycorp right now
<stylewarning> dmiles: I’m irritated with a big bag of companies!
Amplituhedron has joined #lisp
shka_ has quit [Quit: Konversation terminated!]
quazimodo has joined #lisp
shka has joined #lisp
random-nick has joined #lisp
gglitch has joined #lisp
randomstrangerb has quit [Ping timeout: 240 seconds]
gglitch has quit [Ping timeout: 246 seconds]
randomstrangerb has joined #lisp
<dmiles> anyhow that has been my lifes mission for a long time.. to combine those old AI programs into a Inference engine
<dmiles> just recreating what i've used at various publicly funded projects
Tobbi has joined #lisp
Tobbi has quit [Client Quit]
<dmiles> (i used the word "recreation" only so to say that there is not much technological innovation required)
anaumov has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
knicklux has quit [Quit: Leaving]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
smurfrobot has joined #lisp
eivarv has joined #lisp
markong has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
zaquest has quit [Quit: Leaving]
zaquest has joined #lisp
_mjl has quit [Ping timeout: 260 seconds]
megachombass has joined #lisp
<megachombass> hello to all! the help beggar is back again for a final round!
milanj has quit [Quit: This computer has gone to sleep]
Murii has quit [Quit: WeeChat 1.4]
king has quit [Quit: 离开]
shrdlu68 has quit [Ping timeout: 240 seconds]
thinkpad has quit [Quit: lawl]
thinkpad has joined #lisp
Murii has joined #lisp
visof has quit [Ping timeout: 256 seconds]
<stylewarning> Ask away
<megachombass> well, i want my code to do the same thing, but written in different way: https://codeshare.io/GkwJYA
<megachombass> i want to add redundancies and things like that
<stylewarning> That loads an ad on mobile but doesn’t load any code
shrdlu68 has joined #lisp
varjag has joined #lisp
<megachombass> well one sec
chiyosaki has quit [Ping timeout: 248 seconds]
<stylewarning> Definitely rough around the edges
random-nick has quit [Ping timeout: 256 seconds]
ym has quit [Quit: Leaving]
saki has joined #lisp
shrdlu68 has quit [Ping timeout: 260 seconds]
<megachombass> want to modify it as much as posible
milanj has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
Karl_Dscc has joined #lisp
EvW has joined #lisp
eivarv has quit [Quit: Sleep]
Folkol_ has joined #lisp
Folkol has quit [Ping timeout: 264 seconds]
heurist` has quit [Ping timeout: 256 seconds]
heurist` has joined #lisp
random-nick has joined #lisp
<jackdaniel> why?
Folkol has joined #lisp
Folkol__ has joined #lisp
Folkol_ has quit [Ping timeout: 260 seconds]
Folkol has quit [Ping timeout: 252 seconds]
<phoe> to make the professor not notice that this is not original contentf
kolko has joined #lisp
scymtym has joined #lisp
gglitch has joined #lisp
<megachombass> exactly
Bike has joined #lisp
random-nick has quit [Remote host closed the connection]
<megachombass> so here i call to your originality to add some useless but fancy things in it
gglitch has quit [Ping timeout: 246 seconds]
solyd has joined #lisp
random-nick has joined #lisp
<jackdaniel> so basically you ask us to help you cheating?
<phoe> yes, he was
fikka has quit [Ping timeout: 256 seconds]
saki has quit [Quit: saki]
wxie has joined #lisp
smurfrobot has joined #lisp
markong is now known as supernaut
supernaut is now known as suprnaut
suprnaut is now known as markong
smurfrobot has quit [Ping timeout: 248 seconds]
<megachombass> not really cheating, just to be creative
<Shinmera> It's still derivative and thus likely prohibited.
<Shinmera> Not to mention morally objectionable in any case.
smurfrobot has joined #lisp
quazimodo has quit [Ping timeout: 276 seconds]
random-nick has quit [Remote host closed the connection]
Tobbi has joined #lisp
random-nick has joined #lisp
visof has joined #lisp
visof has joined #lisp
visof has quit [Changing host]
wigust has joined #lisp
random-nick has quit [Remote host closed the connection]
ft has quit [Ping timeout: 255 seconds]
random-nick has joined #lisp
_whitelogger has joined #lisp
fikka has joined #lisp
pjb has joined #lisp
<megachombass> pjb: hi!
fikka has quit [Ping timeout: 248 seconds]
milanj has quit [Quit: This computer has gone to sleep]
wxie has quit [Remote host closed the connection]
ebzzry has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
_mjl has joined #lisp
ft has joined #lisp
dieggsy has joined #lisp
<pjb> megachombass: hi!
<pjb> megachombass: you know, nowadays, you just cannot copy anything or get help from any programmer without the teacher being able to EASILY and trivially know it.
<megachombass> well, he cant know what ive done by myself and what not
<megachombass> right now, i wont add more functionalities
<megachombass> just code it propelly
<megachombass> whats wrong with this let syntax (let (vm (make-vm 1000)) (vm2 (make-vm 1000)) fibo1 fibo2 fact1 fact2)
<pjb> megachombass: current DNA-research, machine learning and artificial intelligence techniques exist to easily 1- match source code with other source code to determine their common ancestor, whatever the transformation you make on it (notably, renaming, things you can do with replace-regexp, are completely transparent), and 2- identify the AUTHOR of a chunk of code!
<megachombass> +, teacher got absolutly no idea what is our coding level, even wonder if he know who i am
<pjb> megachombass: basically, if your teacher cares, he will run the program on the code, and he will know, line by line, who wrote it, what git repo it comes from, etc.
<_death> you should also know that the lisp community isn't that big, that some professors reside here, and that this channel's log is publicly available
fikka has joined #lisp
<pjb> megachombass: nothing is wrong in the syntax of: (let (vm (make-vm 1000)) (vm2 (make-vm 1000)) fibo1 fibo2 fact1 fact2)
warweasle has joined #lisp
<pjb> megachombass: now for the semantics, it probably doesn't try to do what you think.
<megachombass> then i fked up somewhere ,let me recheck
<pjb> megachombass: it means: create a variable named VM, bind it to NIL. create a variable named MAKE-VM, bind it to 1000. Call the function vm2, with as argument the result of the call of the function make-vm with as argument 1000. Ignore the result. Evaluate a free variable fibo1. Ignore the result. Evaluate a free variable fibo2. Ignore the result. Evaluate a free variable fact1. Ignore the result. Evaluate a free variable fact
<pjb> Return its value.
EvW has quit [Ping timeout: 246 seconds]
EvW has joined #lisp
<pjb> Even on compiled code, of course.
_mjl has quit [Ping timeout: 246 seconds]
<megachombass> hum
<megachombass> but we've changed alot of things
<pjb> megachombass: so, seriously, remember the first thing we told you: write it yourself!
<pjb> Nothing!
<megachombass> i have like what, 9 h left xd
fikka has quit [Ping timeout: 240 seconds]
<megachombass> and if i try to rewrite from scrath, 100% i end up doing the same thing
<pjb> megachombass: just time to write an essay explaining what you've done, what problem you have, and make a planing indicating how much time you'd need to implement the project.
<_death> oh, and don't forget the panopticon.. it's easy to forget about the panopticon
<pjb> _death: what do you mean?
<megachombass> if i send him an essay
<megachombass> without code
<megachombass> ill get a nice and gentle 0/20
<pjb> megachombass: oh, true, if I was a lisp teacher, obviously I would already be on all the lisp irc channels, the lisp newsgroups, the lisp forums, and they'd be logged.
<pjb> megachombass: notice how beach routinely ask people whether their new in #lisp, and check them in his logs…
<megachombass> in any case its specified i couldn't get help tho
random-nick has quit [Quit: quit]
random-nickname has joined #lisp
random-nickname is now known as random-nick
<megachombass> and to avoid banhammer, i will clearly specified (thanks to pjb for his help on this project, without him this wouldnt exist)
anaumov has quit [Ping timeout: 248 seconds]
theBlackDragon has quit [Remote host closed the connection]
theBlackDragon has joined #lisp
<pjb> megachombass: but seriously, at this point if you want to save your skin, writing a project report explaining the failure, how it occured, and what you could do to recover and complete the project (whatever time you'd need), is IMO the best option.
fikka has joined #lisp
<megachombass> wich failure?
<pjb> You didn't complete the project, implementing a VM able to run the compiler.
<ebrasca> Good afternoon.
smurfrobot has quit [Remote host closed the connection]
visof has quit [Ping timeout: 240 seconds]
<megachombass> actually is not that
<megachombass> actually is i didnt implement a compiler that produces code for the vm
thinkpad has quit [Quit: lawl]
<ebrasca> pjb, aeth : Finally I have refactor to this : http://termbin.com/wgsm
thinkpad has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
gglitch has joined #lisp
<_death> ebrasca: there is still some duplication that can be factored
gglitch has quit [Ping timeout: 252 seconds]
<pjb> ebrasca: are you sure? I had the impression the then branch of the if #x0f was common?
Ven`` has joined #lisp
<beach> I have to agree with _death. There is a lot of duplication.
daniel-s has quit [Read error: Connection reset by peer]
dddddd has joined #lisp
rumbler31 has joined #lisp
shifty has quit [Ping timeout: 248 seconds]
shrdlu68 has joined #lisp
fluke` has quit [Remote host closed the connection]
fluke` has joined #lisp
smurfrobot has joined #lisp
ebzzry has quit [Ping timeout: 264 seconds]
shrdlu68 has quit [Ping timeout: 248 seconds]
saki has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Rawriful has joined #lisp
milanj has joined #lisp
Oladon has joined #lisp
milanj has quit [Client Quit]
<ebrasca> _death: Here 1 with less duplication : http://termbin.com/mqrl .
ebzzry has joined #lisp
rumbler31 has joined #lisp
igemnace has joined #lisp
eminhi has joined #lisp
smurfrobot has quit [Remote host closed the connection]
quotation_ has joined #lisp
smurfrobot has joined #lisp
warweasle has quit [Quit: Leaving]
smurfrobot has quit [Ping timeout: 256 seconds]
asarch has joined #lisp
Chream_2 has joined #lisp
Chream_ has quit [Ping timeout: 268 seconds]
knicklux has joined #lisp
anaumov has joined #lisp
<phoe> FLET ADD is not really readable for me. The function name ADD sounds like mathematical addition to me.
smurfrobot has joined #lisp
<phoe> Also in (defmacro do-cluster (fat32 cluster finally if-t &body if-nil) ...)
<phoe> The lambda list seems weird. IF-T is a single form but IF-NIL is a &body.
<phoe> ;; Read long name
<phoe> This should be a separate function.
Rawriful has quit [Quit: WeeChat 1.4]
Chream_2 has quit [Read error: Connection reset by peer]
quotation_ has quit []
Chream_ has joined #lisp
knicklux has quit [Quit: Leaving]
Chream_ has quit [Read error: Connection reset by peer]
EvW has quit [Ping timeout: 252 seconds]
<beach> ebrasca: You have blank lines in mysterious places.
<pjb> :-)
smurfrobot has quit [Remote host closed the connection]
Chream_ has joined #lisp
<beach> ebrasca: Your LOOP clauses are not correctly indented. I suggest you use the slime-indentation contribution to get them right.
rumbler31 has quit [Remote host closed the connection]
<ebrasca> beach: What do you mean with slime-indentation contribution?
<beach> In my .emacs I have: (slime-setup '(slime-fancy slime-tramp slime-asdf slime-indentation))
<beach> I mean the last item on that list.
<ebrasca> beach: What do you mean with "You have blank lines in mysterious places." ?
<beach> In Common Lisp code, there is usually one blank line between each top-level form and no blank lines anywhere else.
<beach> So you have several blank lines in places that are not between top-level forms.
<beach> And I don't see why you have them there, so they are mysterious.
<ebrasca> I think it help to understand better my code.
jonh has joined #lisp
<beach> ebrasca: Perhaps, but the problem is that you are submitting it for others to read. So then, you should make it such that it is easier for THEM to read, and the best bet is then to follow established conventions.
Amplituhedron has quit [Read error: Connection reset by peer]
<beach> Oh, and the indentation of the arguments to MAP is wrong in one place.
<ebrasca> I try to follow established conventions.
<beach> I am sure you do.
<beach> And I am just pointing out a few places where you aren't right now.
<pjb> ebrasca: basically, if you need to insert a blank line in a function, it means you should refactor it, calling smaller functions.
<pjb> ebrasca: then, you can also find a smart comment to insert on those blank lines ;-)
<pjb>
<beach> ebrasca: COND has a value, so you can do (setf name (cond ((string= ...)...)))
pagnol has joined #lisp
<beach> ebrasca: STACK is a list of things, right?
<beach> Then use '() to initialize it. NIL means either the Boolean value false, or some default value. Not the empty list.
<beach> ebrasca: '() is the empty list 'nil is the symbol NIL, () is the empty parameter list, and NIL, like I said, is a Boolean or a default value.
gglitch has joined #lisp
<beach> On a deeper level, I find it confusing the way your macro introduces variables, such as NAME that then occur without context when the macro is called. It suggests that the macro does not correspond to a very good abstraction.
milanj has joined #lisp
Folkol__ has quit [Read error: Connection reset by peer]
gglitch has quit [Ping timeout: 252 seconds]
<ebrasca> beach: I don't understand your last sentence . what context?
broccolistem has quit [Read error: Connection reset by peer]
Chream_ has quit [Read error: Connection reset by peer]
broccolistem has joined #lisp
<ebrasca> beach: My loops lock better with slime-indentation.
Chream_ has joined #lisp
zazzerino has joined #lisp
<asarch> How would you run a system command from Lisp?
Kevslinger has joined #lisp
moei has joined #lisp
<ebrasca> asarch: You can use trivial-shell.
fikka has quit [Ping timeout: 248 seconds]
<asarch> Thank you
<asarch> Thank you very much ebrasca :-)
fisxoj has joined #lisp
<ebrasca> Here link of full archive : http://termbin.com/gkvi
smurfrobot has joined #lisp
<pjb> ebrasca: so you do read-only? No write-file?
heurist`_ has joined #lisp
<ebrasca> pjb: There is some write opetations done.
<ebrasca> pjb: I am working now on write operations for FAT32.
heurist` has quit [Ping timeout: 252 seconds]
<ebrasca> pjb: You can write , resize and delete with some limitations.
Chream_ has quit [Read error: Connection reset by peer]
Chream_ has joined #lisp
_mjl has joined #lisp
khisanth__ has quit [Ping timeout: 264 seconds]
heurist`_ has quit [Read error: Connection reset by peer]
heurist`_ has joined #lisp
<pjb> ok.
<pjb> THanks.
<beach> ebrasca: I guess I can be more specific after you put in comments describing what each function and macro does. That way, I can more easily tell whether they represent good abstractions.
Folkol has joined #lisp
fikka has joined #lisp
<ebrasca> read-dir-from-cluster return all files/directories in directory.
<ebrasca> remove-dir-from-cluster write byte #xE5 to all segments of one file/directori.
<ebrasca> #xE5 idicate it is deleted.
<ebrasca> write-metadata write some metadata like file-size , last-write-date to file/directory.
<ebrasca> beach: ^
khisanth__ has joined #lisp
<beach> OK, I am looking for a more detailed description. Like the type and role of each parameter, especially those of do-cluster. And I am looking for a kind of contract for it. Obviously it seems like it introduces variables such as NAME, CHECKSUM, etc. How does the body (bodies?) use those variables. What are their values, in each iteration. What is FINALLY, IF-T, IF-NIL and why are they named that way? etc, etc, etc.
Chream_ has quit [Read error: Connection reset by peer]
<beach> It looks like sort-name is only available in IF-NIL. Why?
<beach> What is it? etc, etc.
<ebrasca> beach: IF-T is for what is diferent in if if it is t
<ebrasca> IF-NIL is sort-name of FAT32 files/directories
<beach> I am not looking for a one-liner here in the channel. I am looking for a comment or a docstring, or both, that I can compare with the code.
Chream_ has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
<beach> Oh, so IF-T and IF-NIL are FAT32-defined names?
<beach> That doesn't sound right to me.
<beach> Anyway, I need to go. Time to go cook dinner for my (admittedly small) family.
Chream_ has joined #lisp
rumbler31 has joined #lisp
<beach> It seems I have a few more minutes. I have no idea what you mean by "IF-T is for what is diferent in if if it is t"
<beach> "in if", in what "if"?
<beach> You mean the IF inside the macro body?
<beach> like the (if (= #x0F ...) ...?
<ebrasca> yea
<beach> If that is the case, I am now convinced thet do-cluster is not a good abstraction. Abstractions should be possible to understand by reading the name and the parameters (and the comments to those parameters), not what is inside it.
Chream_ has quit [Read error: Connection reset by peer]
<ebrasca> Maybe better names are : long-dir-name-diff dir-name-diff .
<beach> So, you are basically saying "Hey, macro user, in order to know how to use this macro, you need to read the code for it. In fact, you need to read the code for it just in order to understand why the parameters are named the way they are".
milanj has quit [Quit: This computer has gone to sleep]
<beach> I don't know. I would have to wait for your docstrings and comments to tell.
fikka has quit [Ping timeout: 240 seconds]
Chream_ has joined #lisp
milanj has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
fikka has joined #lisp
Chream_ has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
_mjl has quit [Ping timeout: 240 seconds]
Chream_2 has joined #lisp
Chream_2 has quit [Read error: Connection reset by peer]
asarch has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 246 seconds]
Chream_2 has joined #lisp
nowhere_man has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Chream_2 has quit [Read error: Connection reset by peer]
Chream_ has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Chream_3 has joined #lisp
Chream_3 has quit [Read error: Connection reset by peer]
Chream_ has quit [Ping timeout: 248 seconds]
BitPuffin has quit [Remote host closed the connection]
Chream_ has joined #lisp
<ebrasca> beach: Now with better comments : http://termbin.com/ypdb
eivarv has joined #lisp
Amplituhedron has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
gilez has joined #lisp
scymtym has quit [Ping timeout: 246 seconds]
<ebrasca> beach: Is it more easy to understand now?
Oladon has quit [Quit: Leaving.]
randomstrangerb has quit [Ping timeout: 240 seconds]
randomstrangerb has joined #lisp
Pixel_Outlaw has joined #lisp
solyd has quit [Quit: solyd]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
scymtym has joined #lisp
dim has joined #lisp
smurfrobot has quit [Remote host closed the connection]
nika has quit [Quit: Leaving...]
megachombass has quit [Ping timeout: 260 seconds]
Oladon has joined #lisp
TMA has quit [Ping timeout: 265 seconds]
TMA has joined #lisp
Kyo91 has joined #lisp
warweasle has joined #lisp
gglitch has joined #lisp
eivarv has quit [Quit: Sleep]
gglitch has quit [Remote host closed the connection]
gglitch has joined #lisp
vlatkoB has quit [Remote host closed the connection]
Chream_ has quit [Read error: Connection reset by peer]
gglitch has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
EvW has joined #lisp
Chream_ has joined #lisp
d4ryus3 is now known as d4ryus
saki has quit [Ping timeout: 256 seconds]
saki has joined #lisp
turkja has quit [Ping timeout: 256 seconds]
drewc_ has joined #lisp
eivarv has joined #lisp
dieggsy has quit [Remote host closed the connection]
drewc has quit [Ping timeout: 240 seconds]
randomstrangerb has quit [Ping timeout: 256 seconds]
dieggsy has joined #lisp
randomstrangerb has joined #lisp
<ebrasca> beach: Are you here?
orivej has joined #lisp
TMA has quit [Ping timeout: 256 seconds]
<beach> It is too late for me. I need to go spend time with my (admittedly small) family. I'll look tomorrow morning (UTC+1).
TMA has joined #lisp
<ebrasca> beach: Ok
gglitch has joined #lisp
gglitch has quit [Ping timeout: 246 seconds]
gilez has quit [Ping timeout: 248 seconds]
Mon_Ouie has joined #lisp
rumbler31 has joined #lisp
drewc_ is now known as drewc
mlf has joined #lisp
libreman has quit [Ping timeout: 248 seconds]
rumbler31 has quit [Ping timeout: 252 seconds]
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
gglitch has joined #lisp
Amplituhedron has quit [Read error: Connection reset by peer]
libreman has joined #lisp
fisxoj has quit [Quit: fisxoj]
eivarv has quit [Quit: Sleep]
gglitch has quit [Ping timeout: 276 seconds]
Chream_ has quit [Ping timeout: 256 seconds]
Rawriful has joined #lisp
Chream_ has joined #lisp
minion has quit [Remote host closed the connection]
specbot has quit [Remote host closed the connection]
fikka has joined #lisp
igemnace has quit [Quit: WeeChat 2.0.1]
damke has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
damke_ has quit [Ping timeout: 264 seconds]
<aeth> ebrasca: From a previous conversation here on docstrings, I came up with this rule for my projects: "Docstrings for functions and methods should mention the inputs, the outputs, and the side effects."
<aeth> so e.g. your read-file currently says "Return data buffer of file", but that's only the outputs part (except, I guess it mentions the variable file?)
<aeth> In particular, it's unclear what the variable fat32 does.
dieggsy has quit [Ping timeout: 255 seconds]
Amplituhedron has joined #lisp
<ebrasca> aeth: It is fat32 partition data.
<ebrasca> aeth: How to manage multi line docstrings , or make 1 line docstrings?
<aeth> I think multi-line docstrings are usually just indented poorly.
gilez has joined #lisp
<aeth> The ones I've seen usually have the first line line up with the function indentation and then the rest aren't indented.
<pjb> the problem is that the string itself is indented. SO when multiline, I usually start it with a newline (and end it similarly).
<ebrasca> pjb: What do you mean?
ym has joined #lisp
<aeth> ebrasca: " RET type your documentation RET type your documentation RET type your documentation RET "
<aeth> (I think.)
<ebrasca> mmm all lines start in column 0
attila_lendvai has joined #lisp
<ebrasca> aeth: do you mean that for multiline docstrigs? ^
fikka has joined #lisp
<ebrasca> aeth: What are side effects ?
<aeth> ebrasca: Here's an elaborate example of what pjb's style is, from pjb's own code: https://gitlab.com/com-informatimago/com-informatimago/blob/51d8149b18cdce4626c1d795181d9232c465c883/rdp/rdp-macro.lisp#L48-208
groovy2shoes has joined #lisp
<aeth> Notice that the first " lines up with the source indentation and then the rest start at column 0
<aeth> ebrasca: Side effects would be on something like format, where what format t does depends on *standard-output*
eivarv has joined #lisp
<aeth> Side effects would also be if you modify an input data structure.
<aeth> like e.g. map-into
fikka has quit [Ping timeout: 240 seconds]
<ebrasca> mmm there is more docstring than code ...
fikka has joined #lisp
<ebrasca> I have read good code is better than documentation.
<phoe> no.
<aeth> Okay, I'm actually not sure if interacting with an outside global is a side effect or an input, actually.
<phoe> people want to know what your library does without reading the code.
rumbler31 has joined #lisp
<aeth> I think setting it might be a side effect, but reading it might be an input. So my format example might be bad.
<aeth> But I guess FORMAT does interact in a non-functional way with that variable.
drcode has quit [Read error: Connection reset by peer]
<aeth> ebrasca: In some sense, "good code is better than documentation" is true, but not in the way you think it is. I think it applies more to comments than to docstrings. If you have to comment some part of your code heavily, you can probably just write it better and not have to comment that part.
<aeth> But you can't really do that with variable names themselves unless you make their names very long and ugly.
drcode has joined #lisp
Sauvin is now known as Lupinity
drcode has quit [Remote host closed the connection]
Lupinity is now known as Sauvin
<ebrasca> aeth: How much is very long?
drcode has joined #lisp
<aeth> There is nothing stopping you from writing a mini-hyperspec in docstrings, complete with examples, etc. People would probably like that. You would probably need some markup convention for that, though. e.g. Python uses reStructuredText and Java uses JavaDoc
<oleo> evening
<aeth> What I gave is the minimum documentation you need to give in a docstring, not the maximum.
<aeth> Doing something equivalent to docstrings in variable names would (1) capture only the minimum part, (2) look ugly, (3) violate CL style guidelines
pjb has quit [Ping timeout: 256 seconds]
<aeth> ebrasca: Well, some programmers in other programming languages used concise conventions so they could have their self-documenting variable names while not greatly lengthening their variable names. e.g. https://en.wikipedia.org/wiki/Hungarian_notation
<aeth> And it's quite possibly the most hated coding style you can use.
<aeth> (And it doesn't give anywhere near as much information as a well-written docstring.)
puchacz has joined #lisp
<puchacz> hi, in CFFI, how do I define something like this pls?
<puchacz> void(*)(void*)
<puchacz> I don't know C so I don't even know what it means
<puchacz> like here: void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*));
acolarh has joined #lisp
<puchacz> I can see in SQLITE source code it is defined as
<puchacz> typedef void (*sqlite3_destructor_type)(void*);
igemnace has joined #lisp
<puchacz> #define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1)
<Bike> it's the type of pointers to functions of one void* argument with return type void.
borei has joined #lisp
<puchacz> Bike, okay, so is SQLITE_TRANSIENT a function?
<Bike> it's uh... -1 cast to a function pointer.
<Bike> that's pretty weird.
<oleo> a define directive is for c-style macros not ?
<puchacz> oleo, yes, text based
<oleo> ok
<puchacz> Bike, so I am not sure what argument to pass to sqlite_result_text using CFFI
<ebrasca> aeth: I need to document small functions?
<Bike> puchacz: a callback
<borei> hi all
<oleo> and typedef is like an alias
<puchacz> Bike: so defcalback first, and it should take :pointer as an argument and return :void, right?
<borei> lisp doesn't like my type specifier in method definition
<Bike> think so, yes.
<borei> (r '(simple-array double-float (4)))
<puchacz> Bike: so where's the -1 coming into play?
<Bike> borei: you mean, you tried to use this as a specializer? in the defmethod lambda list?
<borei> yep
<Bike> puchacz: i am honestly not sure how to do that in cffi
<borei> (defmethod (setf translate) ((r '(simple-array double-float (4))) (transform transform-3d)) ..... )
<puchacz> Bike: and direct fli in lispworks?
<Bike> borei: point one, don't quote it. point two, not all types are specializers. that type is not a specializer.
<aeth> ebrasca: You have to have docstrings for every exported function in most styles. For the other functions, it depends on the style.
<Bike> puchacz: i know even less about that, but you should have support available.
<aeth> ebrasca: Small functions should have small docstrings, though. At least in general.
<Bike> borei: defmethod deals with classes and eql specializers.
<aeth> ebrasca: You can probably fit everything on two lines for small functions.
<puchacz> Bike: ok, thanks. I will mail them
<ebrasca> aeth: But i think some names are self explanatori.
<ebrasca> aeth: like check-boot-jmp or first-data-sector .
Intensity has joined #lisp
minion has joined #lisp
<aeth> Something like a make-foo could possibly be documented in one line: "Returns a newly allocated foo based on the filename file and the number number"
<aeth> If it's not complicated, no need to make the documentation complicated.
specbot has joined #lisp
<aeth> If you had a formal style for your docstrings, it would probably make them take up several lines at a minimum.
<ebrasca> Documentation is hard , don't say it is not hard.
hel-io has joined #lisp
<ebrasca> But I sometimes don't remember what output some of my functions ...
<aeth> The output is the most important part! (at least in CL)
<aeth> A lot of the tile you might say things like "the number number" in your docstring because your variable name for the input is perfectly named. Sometimes people capitalize the names to make it look a little better, i.e. "the number NUMBER"
<aeth> s/tile/time/
flak has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<aeth> But the output can definitely be surprising.
<ebrasca> I don't like my fat32 implementation.
raynold has quit [Quit: Connection closed for inactivity]
Oladon has quit [Quit: Leaving.]
<puchacz> Bike: FYI, changing the argument type from :pointer to :int of sqlite3-result-text lets me pass -1 and it seems to work.....
<puchacz> C is really relaxed about types :)
<Bike> more like cffi has no way to say no
smurfrobot has quit [Remote host closed the connection]
<puchacz> but it seems that C code is passing -1, straight integer there
<oleo> since it was textual ?
<oleo> verbatim -1 ?
<puchacz> yes
<oleo> hmmm
gilez has quit [Ping timeout: 256 seconds]
<puchacz> I think "casting" to function pointer does not do anything in C to actual bitpattern of data in memory..... but I may be wrong, as I don't know C
<oleo> erm, afaik the layouts from lisp to C types are very different
<puchacz> but -1 is translated in CFFI
<oleo> other than that....C side itself is pretty complicated....
<oleo> no idea
fikka has quit [Ping timeout: 248 seconds]
nowhereman_ has joined #lisp
smasta has joined #lisp
pjb has joined #lisp
<Bike> puchacz: you are correct, that cast doesn't really have to do with the actual value.
<Bike> also, you can ignore oleo.
quotation_ has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
markong has quit [Ping timeout: 260 seconds]
<puchacz> Bike: which means then that I really can just pass -1 :-)
<Bike> yes.
<puchacz> (as you are confirming casting is really no-op at runtime)
<Bike> that particular cast is.
papachan has joined #lisp
smurfrobot has joined #lisp
smasta has quit [Quit: WeeChat 2.0.1]
<pjb> ebrasca: yes: basically all that you put in the docstring, you could put it in a declare.
eivarv has quit [Quit: Sleep]
<pjb> ebrasca: you only have to invent a language and declaim the declarations ;-)
random-nick has quit [Remote host closed the connection]
zazzerino has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
<ebrasca> pjb: I have never read about declare function.
<pjb> declare is not an operator.
<ebrasca> ???
gglitch` has joined #lisp
mishoo has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
<Bike> declare is a syntax thing. it only looks like an operator.
<ebrasca> I have remember it is for safety , speed and types.
zazzerino has joined #lisp
hel-io has quit [Remote host closed the connection]
hiroaki has joined #lisp
<pjb> ebrasca: it is for whatever you want.
eivarv has joined #lisp
<pjb> You just need to declare the declarations you use.
<pjb> Then of course, it may be useful to write tools processing those declarations…
gglitch` has quit [Ping timeout: 252 seconds]
hel-io has joined #lisp
dieggsy has joined #lisp
<TMA> ebrasca: the main thing is that you can ignore most (if not all) of the declarations except for (declare (special ...))
zazzerino has quit [Remote host closed the connection]
<_death> TMA: not really, an implementation can ignore them, not a programmer
zazzerino has joined #lisp
<Bike> yeah, a programmer can ignore anything they want. free will, baby
<_death> I expected that comeback ;)
<Bike> special is the only one with a straightforward semantic effect though
acolarh has quit [Ping timeout: 256 seconds]
puchacz has quit [Quit: Konversation terminated!]
fikka has quit [Ping timeout: 256 seconds]
<ebrasca> I don't like someone to ignore my commands less some PC.
fikka has joined #lisp
Folkol has quit [Read error: Connection reset by peer]
smurfrobot has quit [Remote host closed the connection]
jmercouris has joined #lisp
Amplituhedron has quit [Read error: Connection reset by peer]
hiroaki has quit [Ping timeout: 252 seconds]
damke_ has joined #lisp
hiroaki has joined #lisp
eivarv has quit [Quit: Sleep]
pilfink has joined #lisp
igemnace has quit [Quit: WeeChat 2.0.1]
damke has quit [Ping timeout: 264 seconds]
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mgsk has quit [Ping timeout: 248 seconds]
minion has quit [Remote host closed the connection]
specbot has quit [Remote host closed the connection]
easye has quit [Read error: Connection reset by peer]
<pjb> This is why it's important to also write the tools that will interpret your custom declarations.
<pjb> Then you can call them automatically in your build process, and fail when there are errors.
<pjb> For example, those pre- and post-condition can be used to generate assertions and use them in tests or in the compiled code.
damke has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
markong has joined #lisp
smasta has joined #lisp
<ebrasca> pjb: I don't know hot to make someting like this.
minion has joined #lisp
specbot has joined #lisp
<ebrasca> pjb: Thanks for your tips.
shka has quit [Ping timeout: 256 seconds]
papachan has quit [Read error: Connection reset by peer]
<pjb> ebrasca: for example, see common-lisp/lisp/stepper-functions.lisp:678
papachan has joined #lisp
Murii has quit [Quit: WeeChat 1.4]
<pjb> I use the stepper declaration to disable the stepper in some functions that cannot be stepped (eg. the functions that are called from the stepper itself or that are too much of a bore to step into).
CrazyEddy has quit [Ping timeout: 248 seconds]
zazzerino has quit [Ping timeout: 256 seconds]
borei has quit [Quit: Leaving.]
<pjb> ebrasca: elsewhere, I've used declare to declare commands (interactive functions). In emacs lisp, (interactive) is a declaration. In CL You write (declare (interactive)).
<pjb> ebrasca: (of course, you can also use a macro such as defcommand in those cases, sometimes it's easier than to process declarations).
damke_ has joined #lisp
fluke` has quit [Read error: Connection reset by peer]
smurfrobot has joined #lisp
damke has quit [Ping timeout: 264 seconds]
fluke` has joined #lisp
mgsk has joined #lisp
oleo has quit [Ping timeout: 265 seconds]
caffe has joined #lisp
damke has joined #lisp
randomstrangerb has quit [Ping timeout: 256 seconds]
zazzerino has joined #lisp
randomstrangerb has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
raynold has joined #lisp
smurfrobot has quit [Remote host closed the connection]
hel-io has quit []
<stylewarning> hello friends
<jmercouris> hello
<stylewarning> jmercouris: how is nEXT going
<jmercouris> stylewarning: Going pretty good, thank you for asking!
<jmercouris> GTK release is out, working on a lot of internal stuff, and a new blog
<stylewarning> neat, lmk when the blog is up
<jmercouris> Will do!
warweasle has quit [Quit: Leaving]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
nirved has quit [Quit: Leaving]
isBEKaml has joined #lisp
<aeth> If someone was going to add a contract system to CL it would be nice for the type part of it to use type declarations in SBCL and any other CL that uses similar semantics and check-type for the majority of implementations.
pagnol has quit [Ping timeout: 256 seconds]
<mgsk> jmercouris: seeing weird behaviour of tabs in gtk. Sometimes C-x b doesn't show any tabs, and C-[ shows empty pages. Aware of that?
<aeth> (I'm assuming a contract system in CL would do both runtime type checking and compile time type checking.)
<jmercouris> mgsk: I'm aware the GTK port is a huge hack :D
<mgsk> jmercouris: dang!
Karl_Dscc has quit [Remote host closed the connection]
<jmercouris> mgsk: That specific behavior I only knew parts of
<jmercouris> I'm working on it, don't worry :)
<jmercouris> Thank you for your report
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
vaporatorius__ has joined #lisp
<mgsk> jmercouris: :)
<jmercouris> mgsk: as a quick aside, if c-x b doesn't show any tabs, type space, and then backspace, it'll refresh the table view, usually :D
<mgsk> jmercouris: omg it works!
<jmercouris> Lol yeah, stupid listener functions not getting invoked
Ven`` has joined #lisp
<mgsk> jmercouris: after that, it goes the whole frame goes blank. No errors/warnings
<jmercouris> Hmm, that is very mysterious
vap1 has quit [Ping timeout: 240 seconds]
Ven`` has quit [Read error: Connection reset by peer]
<mgsk> I wonder if it is my window manager? I will try with something normal like gnome
<jmercouris> I don't think that should have an effect, though the stupidity of GTK has surprised me quite a bit :D
<isBEKaml> "normal like gnome" :D
<jmercouris> I was testing in i3 WM
<mgsk> jmercouris: ah, so that won't be it then
Ven`` has joined #lisp
<mgsk> Also C-x C-c isn't doing anything
<jmercouris> Should be calling (gtk:leave-gtk-main)
<jmercouris> maybe it is getting blocked by some other signal
<jmercouris> it's too bad you don't have a mac, works like a dream on cocoa
<mgsk> I do... with linux installed
<jmercouris> except for using the legacy webkit wrappers on cocoa, hopefully with a new ffigen replacment that can be fixed
<mgsk> :3
<jmercouris> hahah nice :D
<isBEKaml> "Hackinux"
<jmercouris> I tried installing BSD on my macbook for dual boot, I ended up in tears from frustration
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
<isBEKaml> Surely, you shouldn't have problems installing any BSD on a Mac? Because Mac is derived from BSD?
<caffe> more likely bootloader problems
* isBEKaml is currently reading through Loving Lisp online and is bored
<jmercouris> caffe: Correct
<jmercouris> Plus a whole slew of driver issues
<isBEKaml> Ah, bootloader issues. Just use BSD straight up... :D
<jmercouris> darwin has diverged quite a bit from straight bsd, at least apple isn't freely handing out kexts
<isBEKaml> Probably - I have never used a mac, too poor to own one
<p_l> isBEKaml: The "BSDs" that most people recall aren't MacOS ancestors
<p_l> OSX is derived from OPENSTEP which was derived from NEXTSTEP which is most closely related to OSFMK which is related to original "Mach Unix" in turn related to BSD4
smurfrobot has joined #lisp
gglitch` has joined #lisp
damke has joined #lisp
<jmercouris> hence the NS prefix everywhere
wigust has quit [Quit: ZNC 1.6.5 - http://znc.in]
<jmercouris> these days though, technically a Mach kernel, I believe they use shared memory for IPC, which technically disqualifies it
<jmercouris> I guess it is a "hybrid" kernel, whatever that means
<p_l> jmercouris: it's Mach
<jmercouris> I've heard arguments that it is not "pure" enough
<p_l> also, Mach used shared memory for IPC since the very start
<p_l> it's part of how it got a bad rep
<jmercouris> Did it? I thought there was a different mechanism
<jmercouris> some sort of strange message passing buffer or something
<caffe> 'hybrid' as in mach 2.5 vs mach 3
<caffe> mach 3 is a true microkernel
<p_l> jmercouris: message passing over bits of memory that were shared and unshared using MMU
damke_ has quit [Ping timeout: 264 seconds]
<p_l> caffe: Mach hybridized further in later versions
gglitch` has quit [Ping timeout: 265 seconds]
<caffe> i think you mean XNU
<caffe> which is based on mach 2.5
fikka has quit [Ping timeout: 240 seconds]
<p_l> OSFMK is sorta an amalgamation of Mach 3 and 4 by now, and that's the basis of XNU
<caffe> no, 2.5 is
<p_l> caffe: Apple seems to disagree
<p_l> (they explicitly mention OSFMK 7.3 as basis)
randomstrangerb has quit [Ping timeout: 256 seconds]
<p_l> and while osfmk might have started on mach 2.5, it didn't stay there
<isBEKaml> p_l: I didn't really read much into the MacOS (X) divergence. I knew there was NextStep somewhere in its heritage, but NS was derived from BSD line. I don't recall reading about OSFMK -- I'll look that up, thanks
fikka has joined #lisp
randomstrangerb has joined #lisp
<caffe> well 3 is certainly not hybrid
<p_l> isBEKaml: NS was derived from Mach, and cross-pollinated with OSF/1 mostly, which was BSD-oriented "counter" to AT&T SysV
<caffe> there is also no "mach 4"
<caffe> so...
<caffe> XNU still is a lot closer to 2.5 in design
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<p_l> there's actually a Mach 4, because development didn't end when CMU released 3.0. OSFMK which started on 2.5, continued to take code from 3.0 and later projects, including a lot of contribution of their own. Mach 4.0 created also official interface for "colocation" i.e. starting servers in kernel space
<caffe> take code, sure
jfb4 has quit [Ping timeout: 248 seconds]
zazzerino has quit [Remote host closed the connection]
<caffe> still, i can't help but see it as a fork of 2.5
<p_l> after Mach 3, the research work turned towards more hybrid approaches, especially as Mach IPC security... was problematic for performance
damke_ has joined #lisp
<p_l> caffe: well, it did start out as one, and never went full retard^W3.0
jfb4 has joined #lisp
<p_l> anyway, the closest BSD relationship that OSX has is OSF/1
<caffe> i'm not sure a drop-in microkernel was ever a good fit for unix to begin with
<p_l> down to using common kernel codebase (though I believe Apple changed a lot since then)
jmercouris has quit [Remote host closed the connection]
<caffe> which is why 2.5 ended up being more influential than 3
damke has quit [Ping timeout: 264 seconds]
pagnol has joined #lisp
<p_l> yes
<p_l> I think nobody except for GNU went seriously about creating "pure" Mach 3 system
<p_l> OSFMK was a "pragmatic" system that didn't discard syscalls etc. and incorporated things from newer research, while post-CMU Mach4 project reintroduced formal apis for colocation
<p_l> lol
<p_l> sorry, wrong window :D
eminhi has quit [Quit: leaving]
Oladon has joined #lisp
beach` has joined #lisp
isBEKaml has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Remote host closed the connection]
Pixel_Outlaw has quit [Quit: Leaving]
gglitch` has joined #lisp
beach has quit [Ping timeout: 265 seconds]
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Ping timeout: 248 seconds]