freenode/#clasp - IRC Chatlog
Search
8:46:00
phoe
They don't say that Lisp can't be trusted. They simply favor Haskell and say nothing about Lisp other than mentioning that it had 3/8 of Haskell's dev time and performed decently in their benchmarks.
8:48:02
beach
To me that means, "If they had taken time to write documentation, it would not have been this low, so we can't trust this result"
8:49:59
phoe
It's possible to quickly hack something in Lisp that works but is hard to understand afterwards. It takes skill to immediately write Lisp that does not look like a hack.
8:52:29
beach
Look phoe, I already said that I don't interpret the result of this paper as a statement about the productivity of the languages in the test.
8:53:39
beach
I specifically said that I interpret the result as a statement about the potentially huge difference in productivity for different languages RELATIVE TO A PARTICULAR TASK. The order may change when the task changes.
8:54:45
beach
When I present this paper in one of my talks to industry, I just emphasize that you should not choose a language based on whether you already have programmers how know it, because you can then be wrong by an order of magnitude.
8:55:14
beach
Because the paper shows that it takes very little time to learn a new language sufficiently well to be fairly productive.
8:55:48
beach
And it shows that the difference in productivity between a language adapted to the task and one that isn't can be as high as a FACTOR 20.
8:56:39
heisig
The whole paper is extremely questionable. Fun fact: It contains the word 'Lisp' only 5 times, compared to 12 occurrences of 'Ada' and 40 occurrences of 'Haskell'.
8:57:00
beach
Now, even if you don't believe it is that much, even if it is only a factor 1.2 (i.e. 20%, which seems modest in view of the results) then that means that a 5 year project can be done in 4 years, if you change the language, leaving you 1 year to train your staff. And then you have staff that know one more language.
8:58:13
beach
heisig: Also, they fully admit that it is not good enough to provide scientific evidence for a particular language.
8:58:38
heisig
beach: Sure. Just interesting to see how some people completely fail to cloak their bias.
8:59:16
beach
Yeah, well. They are Haskell people after all. That was the point of the paper, i.e. show how good Haskell is.
9:06:13
heisig
jackdaniel: You are right. The paper nevertheless saddens me - how shall we ever reach consensus on programming methodology when no one is willing to question his own position. (Says the hardcore Common Lisp programmer :) )
9:07:52
beach
heisig: It is psychologically extremely difficult to question one's position, when it has taken years or decades to establish.
9:09:20
beach
It has to contain several different types of projects, several different levels of staff training, etc.
9:09:55
beach
The projects have to be non-trivial and must require several developers and several years of development.
9:10:37
beach
Until someone is willing to do that, we won't have any real idea of the difference between languages.
9:12:17
jackdaniel
I think I've read a paper at some point of time, where independent teams were implementing the same specification in parallel
9:14:24
heisig
I had an idea for a comparison technique recently: You always consider two languages A and B. Then you take a small group of experts of A and experts of B. The B experts spend 2-5 years learning and using A and vice versa. In the end both teams have to solve the same complex task. Finally, they discuss their experiences and write them town together.
12:07:28
drmeister
Does anyone know how to write debugging output from slime that doesn't interfere with its regular communication?
12:11:55
drmeister
I'm putting print statements into clasp.lisp and they appear to be messing up slime and causing it to segfault.
12:12:55
drmeister
For instance, I add ... (format *trace-output* "Raw backtrace length: ~a ~%" (length (core:clib-backtrace-as-list))
12:14:37
drmeister
I assume printing to *trace-output* is causing some kind of weird interference with the swank protocol
12:15:58
jackdaniel
you may cause an error in error printer, what leads to new errors, which invoke error printer, what leads to new errors, which invoke error printer, what leads to new…
12:17:57
drmeister
printing to +process-standard-output+ now sends the output to *inferior-lisp* but it still crashes the same way - grrrrrr.
12:20:00
drmeister
Ok - I made a mistake in where I put the statement - I'm debugging not fully awak.
12:24:05
drmeister
jackdaniel: Thank you - I can generate debugging info without interfering with swank - I can debug this now.
12:53:24
drmeister
There aren't any fundamental problems. I think it's that the build system has changed and the demos haven't kept up.
12:53:54
drmeister
I have a site visit from the Department of Defense next Tuesday and so I won't be able to look at it until after that.
12:54:31
drmeister
I would really like to get gsl exposed as well as the Bloomberg graphing widgets within the Jupyter notebook interface that we have developed.
12:55:27
drmeister
I'd like to turn Clasp/Cando into something better than SciPy, NumPy, Matlab - with all of the scientific code exposed but accessible from a fully compiled programming language.
13:03:17
drmeister
Merging info from clib backtrace/backtrace_symbols, a Common Lisp shadow stack and information captured from the JIT engine.
13:25:25
Kevslinger
Kevin has been wanting to create tests to find some sort of objective metric across languages
13:25:49
Kevslinger
That way, by the time he’s ready to retire, he’ll know which programming language he should’ve been learning his whole life :-)
13:30:01
Shinmera
In my opinion helping people in giving up on pointless things, or in the very least helping them turn something pointless into something worthwhile is a good idea.
13:31:44
Kevslinger
Shinmera: I agree completely. I was only kidding (I have very little desire to be the one who coordinates some sort of tests for that) :)
14:51:39
drmeister
Well, that didn't take long before I swamped the Jupyter notebook communication channel.
14:55:41
drmeister
This underscores why I'm putting so much work into Cando and a compiled dynamic language - I don't want to work with tools that really just toys.
14:59:07
Selwyn
https://en.wikipedia.org/wiki/Free_energy_perturbation drmeister is this the technique that you mentioned in marbella?
15:03:07
drmeister
With GPU acceleration it's been demonstrated to be useful for guiding drug discovery in the pharmaceutical industry.
15:14:28
drmeister
dvssa: Last summer a colleague asked me if we could build atomic level structures of DNA origami with Cando and of course I said "Yes!". He had a postdoc who was interested in doing that - so we taught him Common Lisp and Cando and he wrote a parser for CadNano 1.0 files.
15:15:25
drmeister
I hacked together rigid body refinement code that I've added to our regular molecular mechanics geometry refinement code because I saw all sorts of uses for it.
15:16:26
drmeister
A couple of months ago someone expressed an interest in the origami code and so I thought I should clean it up before I dump it in her lap. So I spent a couple of days cleaning it up and fixing bugs and wouldn't you know it - the thing works.
15:16:51
drmeister
It also gave me ideas about how to use the code to design molecular Lego nanostructures.
15:17:26
drmeister
So I'm getting the code to a point where it will be useful to the DNA origami community.
15:18:01
dvssa
Ah I see, interesting stuff :) I look forward to hearing some of the ideas you have w.r.t molecular Lego.
15:18:02
drmeister
In the last couple of days I had an epiphany on how to handle large origami's - so I'm implementing those ideas now.
15:19:10
drmeister
I mean - I've always had a plan - but the plan was "get Cando working reasonably well and then figure out how to design big molecules with it".
15:20:27
drmeister
Excellent - I hope to have something that illustrates the approach by then. But programming... it's a bit haphazard.
15:21:20
dvssa
I am worried about getting my passport returned in time though. My visa was approved a few weeks back but I still have not had my passport returned to me... Lets not get me started on South African service delivery...
15:22:03
dvssa
I did fortunately get a message a few minutes ago saying it has been dispatched for delivery so hopefully it will be here by Monday.
15:23:28
drmeister
Overall the whole Cando/macromolecular design plan has been something like: "Descend into this valley and fight your way through the swamp and then climb up that mountain on the other side - then I think I should see a clear path to Shangri-La".
15:27:51
drmeister
Yeah - so I'll probably never make a single DNA origami - but it would tickle me to no end to have the entire DNA origami community use Cando to design them.
15:57:01
Bike
i recompile part of thecompiler,then compile something else,and somehow this is a crash
15:58:35
drmeister
We could turn on the memory guards, switch to the workbench and conditionally turn on inlining.
15:59:18
drmeister
That's what I would do - get a stable environment to work from and then start torturing the code that is giving us problems.
16:02:49
drmeister
To debug those I wrote a dtrace script that dumps a backtrace for every invocation of __cxa_throw or __cxa_rethrow.
16:02:52
dvssa
drmeister: Unfortunate about the flight, I was also hoping it would be in San Fran, I've always wanted to go. w.r.t the DNA origami that would be quite the achievement, hopefully they arn't as scared of learning lisp as most are.
16:05:00
drmeister
When you are running clasp - in a separate window run: ./profile_throw <pid-of-clasp> /tmp/throw.user_stack
16:05:22
drmeister
Then when it crashes you can go to the last backtrace and see what was on the stack when the unhandled exception was thrown.
16:06:10
drmeister
It might be something stupid like a boost::format with the wrong number of arguments and boost::format is crashing intermittently - I've seen that happen.
16:08:23
drmeister
dvssa: I'm getting push back from chemistry colleagues about learning anything new. Programming terrifies people. So I'm going to have them use a simple scripting grammar for those who don't want to deal with anything that looks like programming. If they want to do something more sophisticated - Common Lisp or C++ will be there.
16:08:25
dvssa
drmeister: So you want to go the DSL route? But half the fun is learning Common Lisp ;)
16:09:31
drmeister
Language means loops and conditionals and stuff - that's what Common Lisp is there for.
16:09:57
Bike
my src/profiler directory does not seem to have anything called profile_throw, in either dev or cst.
16:10:46
drmeister
There are plenty of programming languages for beginners - we have one for wizards.
16:12:05
drmeister
Wait - no - it's here: https://github.com/clasp-developers/clasp/blob/dev/src/profiler/scripts/profile_throw
16:13:24
drmeister
We need to get more comfortable with dtrace - and incorporate it into our thinking about debugging. It is an amazing tool that makes easy things that are really hard without it.
16:17:08
drmeister
Michele said I should check something with you about your summer employment situation.
16:17:58
drmeister
And I sent an email to the provost thanking them for approving your travel grant.
16:18:42
drmeister
I can't get dtrace to work with iclasp-boehm - that is a frustration. It works great with cclasp-boehm.
16:34:03
drmeister
cracauer: Are you online? Do you ever generate backtraces with dtrace? The output is full of stack frames followed by a number. Does that number mean the number of identical backtraces that were generated sequentially?
16:42:30
Selwyn
@drmeister the availability of the scipy/numpy stack lulls many scientists into a state of complacency regarding programming i think. regrettable but not easy to fix
16:43:11
Selwyn
i am attempting to port 'gsll' to clasp starting from this https://common-lisp.net/project/gsll/
16:43:49
Bike
the stack has cc_landingpadUnwindMatchFrameElseRethrow,then __cxa_rethrow, then __terminate
16:43:50
drmeister
And what scipy and numpy do is somewhat make up for the intolerably slow performance of loops in Python.
16:44:25
drmeister
Bike: Ok, that's our problem - there is an UNWIND that is not finding its target.
17:07:24
drmeister
Clasp has lots of support for weak pointers - I used to use them a lot - but not much these days.
17:08:21
drmeister
They are supported with both garbage collectors. The Common Lisp interface is identical. The underlying machinery is quite different.
17:10:08
drmeister
Currently there is only a weak-key-strong-value hash table - but others are possible
17:11:07
Selwyn
i am thinking of porting trivial-garbage, which is a portable library for manipulating weak pointers and other things. it is a dependency of GSLL.
17:14:40
drmeister
Clasp has finalizers now - you could finish clasp support for trivial-garbage by adding finalizers if you have time.
17:52:42
phoe
drmeister: goodness, this progress that you mention looks like you have reinvented abacus