freenode/#lisp - IRC Chatlog
Search
21:34:13
aeth
galdor: You can probably use a portability libraray for that. Even if you stay on CCL, at least that library will hopefully be able to be portable across different versions of CCL if it does change.
21:45:09
pjb
galdor: you have to be careful with errno. In C, it's not a variable, but a macro that expands to some thread-specific data access.
23:52:53
dlowe
there's a library called libfixposix that binds C functions to all those weird values. The iolib library depends on it
3:14:30
Fare
the great parts are the lispiness: good interactivity (not as good as Lisp, much better than other blub languages), dynamic language with semi-decent introspection (including eval) and higher-order functions.
3:16:20
Fare
appalling: an API full of continuation-passing style, but no proper tail-calls!!!!!!! Also, completely different module systems for the browser and the command-line, both of which get in the way of interactivity. Still lack of bignums (on Firefox at least). Lots of "WAT" (see same named talk).
3:20:04
Fare
anyway, next week, I'm giving a talk at LambdaConf on the general purpose parts of our OCaml runtime, and I'm not ready at all.
3:28:00
Fare
oh, Javascript. Well, the mozilla docs are decent, as long as you're looking for simple API help.
3:30:52
ck_
I was about to type "I'll keep it in mind", but I won't. So I've marked the conference into my calendar
3:41:48
Fare
My javascript code so far: https://github.com/AlacrisIO/alacrity/tree/master/examples/rps-demo
3:50:11
Fare
the common thing with require and module.exports is the standard used by nodejs for years.
3:51:03
Fare
the eczema 6 thing has lots of export and import statements, and is newer, and standardized relatively recently.
3:56:40
ck_
yeah that's always the tradeoff isn't it. great technical flexibility, but you need to infuse everything in buzzword-of-the-day because the money tap is labelled with it
4:03:20
Fare
as far as buzzword-of-the-day, we might have erred on the not-buzzwordy-enough side :-(
5:18:48
Fare
jeosol, this was raw JS, not a pretty interface, just enough to survive and demo the rest of the code
5:29:23
jeosol
I learnt JS in the past to small things here and there. Every now then I ask my front-end friends what is the JS framework to use for certain tasks and (of course) the frameworks changes all the time.
5:36:45
jeosol
Very cool. My tests with CL are small examples and I render html on server-side and just re-load the whole page.
5:52:36
jeosol
I think there is parenscript, not sure of the others. However, the JS frameworks my friends said where angular, react, and vue. Tried angular, it was a pain.
5:59:11
Fare
angular is the older one. I'm told react is vastly better. I've heard of vue, but know nothing about it.
6:19:49
ck_
Ok, so I've asked about some progress on the slime repository in #slime around 24 hours ago, and nobody has said anything since. That channel seems to be in hibernation.
6:20:21
ck_
Does anybody here know about that repository? Is the maintainer still ... stassats, I think his name was?
6:47:03
LdBeth
If I have a CL implementation without a compiler, and COMPILE-FILE only reads input and write the output as is (maybe with syntax check), does it conform the ANSI Spec?
6:55:41
beach
I see. Well, you can then do what I have decided to do for SICL, namely I convert the source code to an "abstract syntax tree" which is like the source code, but with macros expanded, and it is more structured.
6:56:44
beach
The output looks like this for (defclass t () () (:metaclass built-in-class)) http://metamodular.com/t-defclass.fasl
6:59:13
beach
LdBeth: What is your reason for writing a new implementation? Is it going to have any characteristics that existing implementations don't have? Or is this just for fun?
7:05:38
LdBeth
beach: It seems the ANSI CL makes some assumptions on how the language is implemented
7:29:44
asarch
Does anyone know what does "got error The function NET.ASERVE::WEBACTION-COOKIE-DOMAIN is undefined." error mean?
7:39:02
LdBeth
In a more particular case, it means you've installed the dependency but it could be a wrong version
7:45:07
beach
LdBeth: What language are you planning to use for writing this new implementation of yours?
7:59:07
LdBeth
beach: probably Haskell, I'd use something like parser generator rather than reimplement READ function
8:02:23
no-defun-allowed
Odds are the parser generator would output something very close to the Lisp reader algorithm though.
8:03:15
LdBeth
Yes, but meanwhile one can utilize the parser generator interface in the new implementation
8:06:07
no-defun-allowed
It would also be easier to write a compiler to Common Lisp than Haskell for most languages.
8:08:15
LdBeth
I guess ANSI CL gets the problem because they assume people will implement CL with Lisp
8:11:16
beach
It sounds to me like your current plan will create a lot of work for you, but maybe the purpose is not to minimize the amount of work you put in.
8:14:57
beach
Clearly, large parts of the language are ideally implemented in the language itself, like defining the function CADR to use CAR and CDR.
8:15:26
MichaelRaskin
Fare: I wonder if you still care about Gerbil (never got around to implementing anything nontrivial for the Gerbil daemon in my system, everything went to Common Lisp one)
8:15:30
beach
But I would think that, for the base language, many implementations have chosen to use some other language, like C or C++.
8:27:54
beach
LdBeth: Right. And the core is not unique, which is why I declined to define such a thing for SICL.
8:32:17
MichaelRaskin
beach: Does HIR define a core set of operations needed for a SICL target in some sense?
8:33:33
beach
MichaelRaskin: Calling a function, accessing the slots of a CONS or a standard object. Fixnum arithmetic.
8:33:46
no-defun-allowed
Pretty sure Racket was worked into a language-writing-theory language at some point.
8:34:58
no-defun-allowed
Which is why it has Scribble and Datalog on the website (and partial ALGOL60 and Java implementations not on the website).
8:35:01
beach
MichaelRaskin: Binding a special variable, establishing dynamic contexts for BLOCK, TAGBODY, UNWIND-PROTECT.
8:54:14
White_Flame
LdBeth: if one of your custom reader macros itself implements backtracking, then it would have to somehow capture & restore the input stream state
8:55:41
White_Flame
why are you so concerned with backtracking and the reader? the reader performs transformations that are basically context-free
8:57:18
beach
LdBeth: You can avoid writing a new reader entirely. Eclector can adapt to the implementation.
8:59:42
White_Flame
the "context" that affects the reader are externalities like the default float format, disabling #. etc
9:01:14
beach
LdBeth: Since you can define your own reader macro functions, the reader can call arbitrary Common Lisp code.
9:01:43
White_Flame
yeah, just consider #. which can read and execute an entire major program just to read a single term
9:02:15
beach
LdBeth: Seriously, I think you are going to have to spend a lot of energy trying to turn a reader written in something other than Common Lisp into a conforming one.
9:03:04
White_Flame
personally, I which CL had some sort of higher level lexer tools in the reader, ending up more declarative. But this ideas don't sound like a step forward
9:04:00
White_Flame
it generally is best to stick with Lisp syntax, in terms of breaking punctuators and spaces
9:04:40
White_Flame
beyond that, the reader does a bit of parsing, but not to the level that most programming languages do
9:09:41
LdBeth
White_Flame: ideally I wish to make the program as close to the grammar defined in the spec as possible
9:10:29
White_Flame
and the only reason to really upgrade the reader is if you want to embed DSLs that don't use Lisp syntax
9:10:48
White_Flame
because currently existing reader tools are useful for prefixing new additions uniquely
9:14:19
White_Flame
for me, it would simply be a nicety if the reader would simply scan forward to the next breaking punctuation and give you a substring that bounded your term.
9:15:04
aeth
White_Flame: no need to fix Lisp syntax, someone already did that. https://github.com/y2q-actionman/with-c-syntax
9:15:10
White_Flame
but I assume many reader macros reuse existing READ calls and thus don't have to worry about bounding much
9:17:04
White_Flame
aeth: heh, but yeah that's not a tool to let you write reader macros in a different way, which is what we're talking about
9:17:37
aeth
White_Flame: I guess I should have directed it at LdBeth more than you, but yes, you're right