mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-25 04:55:04 +02:00
Faster constructor for record types
TODO: validate number of args passed to record type constructor
This commit is contained in:
parent
26b426c307
commit
734d40a44d
1 changed files with 13 additions and 13 deletions
|
@ -1957,19 +1957,19 @@
|
||||||
(,_type_slot_offset ,name ',(car f))))))
|
(,_type_slot_offset ,name ',(car f))))))
|
||||||
fields)
|
fields)
|
||||||
;; constructor
|
;; constructor
|
||||||
(,_define ,make
|
|
||||||
(,_let ((%make (,(rename 'make-constructor/args)
|
|
||||||
,(symbol->string make) ;(identifier->symbol make))
|
|
||||||
,name)))
|
|
||||||
(,_lambda ,make-fields
|
|
||||||
(%make ,@make-fields))))
|
|
||||||
; Possible alternate version that inlines make-constructor/args
|
|
||||||
;(,_define ,make
|
;(,_define ,make
|
||||||
|
; (,_let ((%make (,(rename 'make-constructor/args)
|
||||||
|
; ,(symbol->string make) ;(identifier->symbol make))
|
||||||
|
; ,name)))
|
||||||
; (,_lambda ,make-fields
|
; (,_lambda ,make-fields
|
||||||
; (,(rename 'vector)
|
; (%make ,@make-fields))))
|
||||||
; ',record-marker
|
; Alternate version that inlines make-constructor/args
|
||||||
; ,name
|
(,_define ,make
|
||||||
; (,(rename 'vector)
|
(,_lambda ,make-fields
|
||||||
; ,@make-fields))))
|
(,(rename 'vector)
|
||||||
|
',record-marker
|
||||||
|
,name
|
||||||
|
(,(rename 'vector)
|
||||||
|
,@make-fields))))
|
||||||
)))))
|
)))))
|
||||||
))
|
))
|
||||||
|
|
Loading…
Add table
Reference in a new issue