GassaFM / interpr

Toy language to learn parallel computing
MIT License
5 stars 4 forks source link

Fix incorrect examples #45

Closed MaximilianYan closed 3 months ago

MaximilianYan commented 3 months ago

Solves #43

MaximilianYan commented 3 months ago

Added namesakes examples and documentation according to #47.

GassaFM commented 3 months ago

ну и смысл в разных namespace (пространство имён), а не в одинаковых namesake (тёзка)

MaximilianYan commented 3 months ago
  1. Мы ещё не выяснили даже, баг это или фича.

Извините, я подумал, что вот это —

In the current version of the language, there are two variable types: int64 and array of int64. In the current implementation, these two are kept in separate namespaces, see struct Context at https://github.com/GassaFM/interpr/blob/master/source/runner.d#L65-L72 and around. The rationale is that the type can be uniquely determined at site of usage, so why bother distinguishing?

So, what are the benefits and the drawbacks, and what should be done about it, if anything?

— это указание на то, что переменные-тёзки — это намеренное (возможно не намеренное, но, как минимум, корректное и последовательное) явление в языке.

MaximilianYan commented 3 months ago

ну и смысл в разных namespace (пространство имён), а не в одинаковых namesake (тёзка)

Да, явление возникает из-за изолированных пространств имён под капотом языка, но для пользователя это выглядит как две переменные с идентичными именами, которые можно различить только подобно различению перегруженных функций в c++. Я подумал, что явление подобной перегрузки переменной будет интуитивно назвать переменными-тёзками.

MaximilianYan commented 3 months ago

2. Даже если это фича, отдельный вопрос — стоит ли она лишнего абзаца в readme — который занимает время при рассказе на паре.

Вопрос очень тонкий. Он, казалось бы, тонкий, он очень противный, этот вопрос. С одной стороны, очевидно, на паре это рассказывать не нужно. С другой стороны, это важная часть языка, она должна быть задокументирована.

Я могу предложить два решения: либо добавить в конец readmi раздел "Нюансы и интересные особенности языка", который на парах будет игнорирован и оставлен на откуп любопытству, либо создать ещё одно место с документацией, что-то вроде "Language support guide", и туда документировать более энциклопедично, чем публицистически.

GassaFM commented 3 months ago

В любом случае — этот коммит по другому поводу. Важно оставаться в рамках объявленной темы и не тащить с собой не связанные улучшения. Нужно его отсюда убрать, за-merge-ить остальное, а его при необходимости сделать отдельным PR.