fare / acmart

Racket Scribble package for the 2017 ACM Master Article Template
Other
5 stars 1 forks source link

Some computers do not build? #2

Open LeifAndersen opened 7 years ago

LeifAndersen commented 7 years ago

Apparently @mfelleisen can't build documents using acmart on his computer.

I cannot duplicate this on my computer with a clean install, both of Racket, of Video, and Racket's config directories.

I suspect that this is a problem that happened when he updated, but I'm not sure what broke.

fare commented 7 years ago

Any logs so we can have a hint of what went wrong?

Does it now work for him?

Is it a naming conflict of some kind? I admit I still don't understand how installation works.

LeifAndersen commented 7 years ago

No, not really. Can you pull and see if it breaks for you?

Supposedly its because I have the racket files offset by an extra directory, but even after doing a fresh build it still seems to work fine for me. :/

fare commented 7 years ago

Aha! Upgrading acmart from 436879f1 to e3df1fa2 caused the following error to happen trying to compile my asdf2017 paper at 9b197f4c, with the following error message:

time scribble --dest-name asdf2017.pdf --pdf asdf2017.scrbl
standard-module-name-resolver: collection not found
  for module path: scribble/acmart/lang/reader
  collection: "scribble/acmart/lang"
  in collection directories:
   /home/fare/.racket/6.8/collects
   /nix/store/xna495ijg0mr8rd67blalc8varww766a-racket-6.8/share/racket/collects
   ... [156 additional linked and package directories]
  context...:
   show-collection-err
   standard-module-name-resolver
   [repeats 1 more time]
   loop
   ...cket/cmdline.rkt:179:51
   /nix/store/xna495ijg0mr8rd67blalc8varww766a-racket-6.8/share/racket/pkgs/scribble-lib/scribble/run.rkt: [running body]
Command exited with non-zero status 1
0.29user 0.04system 0:00.34elapsed 99%CPU (0avgtext+0avgdata 71320maxresident)k
24inputs+0outputs (0major+20461minor)pagefaults 0swaps
make: *** [Makefile:28: asdf2017.pdf] Error 1
LeifAndersen commented 7 years ago

Cool. Thank you. This gives me something to work with

LeifAndersen commented 7 years ago

Can you send me a copy of asdf2017.scrbl?

fare commented 7 years ago

It's at https://github.com/fare/asdf2017 (you'll need a few ancillary files included in the git repo) — it hasn't changed in over a month (error experienced 13 days ago), still at 9b197f4c, but I may tweak it a bit based on the reviewers' feedback (it was accepted, yay!)

LeifAndersen commented 7 years ago

That is awesome. Congrats. <3

~Leif Andersen

On Mon, Mar 13, 2017 at 6:03 PM, François-René Rideau < notifications@github.com> wrote:

It's at https://github.com/fare/asdf2017 (you'll need a few ancillary files included in the git repo) — it hasn't changed in over a month (error experienced 13 days ago), still at 9b197f4c, but I may tweak it a bit based on the reviewers' feedback (it was accepted, yay!)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fare/acmart/issues/2#issuecomment-286258014, or mute the thread https://github.com/notifications/unsubscribe-auth/AARc5iwyn1Vl0zk20BC65_arYWQxd1azks5rlb0mgaJpZM4MOsUv .

mfelleisen commented 7 years ago

Why are you still using CL when Scrbl/Racket is so much better :-)

On Mar 13, 2017, at 6:54 PM, Leif Andersen notifications@github.com wrote:

That is awesome. Congrats. <3

~Leif Andersen

On Mon, Mar 13, 2017 at 6:03 PM, François-René Rideau < notifications@github.com> wrote:

It's at https://github.com/fare/asdf2017 (you'll need a few ancillary files included in the git repo) — it hasn't changed in over a month (error experienced 13 days ago), still at 9b197f4c, but I may tweak it a bit based on the reviewers' feedback (it was accepted, yay!)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fare/acmart/issues/2#issuecomment-286258014, or mute the thread https://github.com/notifications/unsubscribe-auth/AARc5iwyn1Vl0zk20BC65_arYWQxd1azks5rlb0mgaJpZM4MOsUv .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

fare commented 7 years ago

Dear Matthias,

you are right Racket is so much better in so many dimensions; it is notably far ahead of competition in the "language to define language" category; but I am under the impression that there are still many dimensions in which it lags behind other languages and Common Lisp (CL) in particular.

1- The Common Lisp Object System (CLOS) has multiple-inheritance, multi-methods, method combinations, introspection and extensibility via the MOP, generic functions that work on builtin classes, support for dynamic instance class change (change-class, update-instance-for-changed-class) and class redefinition (defclass, update-instance-for-redefined-class), a semi-decent story for combining parametric polymorphism and ad hoc polymorphism (my own lisp-interface-library), etc. Racket seems to still be playing catch-up with respect to ad hoc polymorphism, and is lacking a set of good data structure libraries that take advantage of both functional and object-oriented programming (a good target is Scala's scalaz and its rival cats).

2- While the ubiquity of global side-effects in CL is very bad, the facts that all objects that matter are addressable by a path from some global namespace and that live redefinition is actively supported makes debugging and maintaining long-lived systems with in-image persistent data more doable (see again CLOS's update-instance-for-redefined-class). This is in contrast with the Racket IDE which drops live data when you recompile the code, which is fine for student exercises, but probably wrong for live systems. CL is one of the few languages that takes long-term data seriously (though not quite as seriously as Erlang).

3- Speedwise, SBCL still produces code that runs noticeably faster than Racket (as long as you don't need full delimited control, which would requires a much slower CL-to-CL compiler). This difference may be reduced as Racket adopts the notoriously fast Chez Scheme as a backend (or not). Actually, the announcement of the new Racket backend really makes me eager to jump ship.

4- Startup latency for saved images is also pretty good in Common Lisp (tens of milliseconds on my laptop), making it practical to write trivial utilities for interactive use from the shell command-line with an "instantaneous" feel. Racket takes hundreds of milliseconds at startup which puts it (barely) in the "noticeable delay" category.

5- Libraries. CL seems to have much more libraries than Racket, and though the quality varies, these libraries seem to often have more feature coverage and more focus on production quality. From a cursory look, Racket libraries seem to often stop at "good enough for demo". An effort on curating libraries, homogeneizing namespaces, etc., could also help Racket (I consider CL rather bad in this respect, yet Racket seems worse). My recent experience with acmart, my first maintained Racket library, makes me think that writing libraries is even higher overhead in Racket than in CL, which is already mediocre.

These reasons, in addition to inertia (and a non-negligible code-base and mind-base), have made me stick to CL — for now. I think Racket is the future of Lisp (at least for me), I just haven't jumped ship right yet. If and when I do, I'll probably be working on some of these issues.

spdegabrielle commented 7 years ago

Swindle is a CLOS-like object system in Racket.